Codes of Coal
Codes of Coal
.MODEL SMALL
.STACK 64
.DATA
D1 DW 234DH,1DE6H,3BC7H,566AH
SUM DW ?
.CODE
MAIN PROC FAR
MOV AX,@DATA
MOV DS,AX
MOV CX,04
MOV DI,OFFSET (D1)
MOV BX,00
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
//Average Temperature
.MODEL SMALL
.STACK 64
.DATA
D1 DB +13,-10,+19,+14,-18,-9,+12,-19,+16
AVG DW ?
REM DW ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV CX,09
SUB BX,BX
MOV AX,00
MOV SI,OFFSET(D1)
CBW
ADD BX,AX
INC SI
;DEC CX
LOOP BACK
MOV AL,9
CBW
MOV CX,AX
MOV AX,BX
CWD
IDIV CX
MOV AVG,AX
MOV REM,DX
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
//UPPER TO LOWER
.MODEL SMALL
.STACK 64
.DATA
COUNT EQU 14
RESULT DB ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
mov cx,count
SUB AX,AX
CMP AL,61H
JB NEXT
OR AL,11011111B
INC SI
INC BX
DEC CX
JNZ AGAIN
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
//LOWER TO UPPER
.MODEL SMALL
.STACK 64
.DATA
COUNT EQU 14
RESULT DB ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
mov cx,count
SUB AX,AX
CMP AL,61H
JB NEXT
AND AL,11011111B
INC SI
INC BX
DEC CX
JNZ AGAIN
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
//No. of 1 in byte 16
org 100h
.MODEL SMALL
.STACK 64
DATA1 DB 77h
RESULT DB ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AL,DATA1
MOV CX,8
MOV BL,00
AGAIN:
SHR AL,1
JNC NOADD
INC BL
NOADD:
LOOP AGAIN
MOV RESULT,BL
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
;ASCII TO BCD UNPACKED 8 bit
.MODEL SMALL
.STACK 64
.DATA
DATA1 DB '123456'
RESULT DB ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV CX,6
MOV SI,OFFSET(DATA1)
MOV DI,OFFSET(RESULT)
LOOP:MOV AL,[SI]
AND AL,0FH
MOV [DI],AL
INC SI
INC DI
DEC CX
JNZ LOOP
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
.STACK 64
.DATA
DATA1 DB '123456'
RESULT DB ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV CX,3
MOV SI,OFFSET(DATA1)
MOV DI,OFFSET(RESULT)
LOOP:MOV AX,[SI]
AND AX,0F0FH
MOV [DI],AX
INC SI
INC SI
INC DI
INC DI
DEC CX
JNZ LOOP
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
DAA
ORG 100H
.MODEL SMALL
.STACK 64H
.DATA
DATA1 DB 47H
DATA2 DB 25H
DATA3 DB ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AL,DATA1
MOV BL,DATA2
ADD AL,BL
DAA
MOV DATA3,AL
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
.DATA
DATA1 DB 29H
RESULT DW ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AX,00
MOV AL,DATA1
MOV AH,AL
AND AX,0F00FH
MOV CL,4
SHR AH,CL
OR AX,3030H
XCHG AH,AL
MOV RESULT,AX
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIn
.MODEL SMALL
.STACK 64
.DATA
DATA1 DB '7'
DATA2 DB '5'
RESULT DW ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AL,DATA1
MOV BL,DATA2
ADD AL,BL
AAA
OR AX,3030H
MOV RESULT,AX
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
Ret
.STACK 64
.DATA
DATA1 DB '39'
RESULT DB ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV SI,OFFSET(DATA1)
MOV AX,[SI]
AND AX,0F0FH
XCHG AH,AL
MOV CL,4
SHL AH,CL
OR AL,AH
MOV RESULT,AL
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
.DATA
DATA1 DB 29H
RESULT DW ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AX,00
MOV AL,DATA1
MOV AH,AL
AND AX,0F00FH
MOV CL,4
SHR AH,CL
OR AX,3030H
XCHG AH,AL
MOV RESULT,AX
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
Highest Temp
; You may customize this and other start-up templates;
org 100h
.MODEL SMALL
.STACK 64
.DATA
DATA1 DB +13,-10,+19,+14,-18,-9,+12,-19,+16
LOWEST DB ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV CX,8
MOV SI,OFFSET(DATA1)
MOV AL,[SI]
BACK: INC SI
CMP AL,[SI]
JG LABEL
MOV AL,[SI]
MOV LOWEST,AL
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
Ret
Lowest temp
; You may customize this and other start-up templates;
org 100h
.MODEL SMALL
.STACK 64
.DATA
DATA1 DB +13,-10,+19,+14,-18,-9,+12,-19,+16
LOWEST DB ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV CX,8
MOV SI,OFFSET(DATA1)
MOV AL,[SI]
BACK: INC SI
CMP AL,[SI]
JLE LABEL
MOV AL,[SI]
MOV LOWEST,AL
MOV AH,4CH
INT 21H
MAIN ENDP
Display String
; You may customize this and other start-up templates;
; The location of this template is c:\emu8086\inc\0_com_template.txt
org 100h
.MODEL SMALL
.STACK 64
.DATA
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
CALL CLEAR
CALL CURSOR
CALL DISPLAY
MOV AH,4CH
INT 21H
MAIN ENDP
CLEAR PROC
MOV AX,0600H
MOV BH,07
MOV CX,0000
MOV DX,2479
INT 21H
CLEAR ENDP
CURSOR PROC
MOV AH,02
MOV BH,00
MOV DH,12
MOV DL,39
INT 10H
CURSOR ENDP
DISPLAY PROC
MOV AH,09
MOV DX,OFFSET(DATA1)
INT 21H
END MAIN
Ret
org 100h
.MODEL SMALL
.STACK 64
.DATA
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AH,02
MOV BH,00
MOV DH,12
MOV DL,39
INT 10H
MOV AH,09
MOV DX,OFFSET(DATA1)
INT 21H
INT 21H
MOV AH,01
INT 16H
JZ AGAIN
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIn
Ret
org 100h
.MODEL SMALL
.STACK 64
.DATA
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AH,09
MOV DX,OFFSET(DATA1)
INT 21H
AGAIN: MOV AH,02
MOV DL,07
INT 21H
MOV AH,01
INT 16H
JZ AGAIN
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
ret
.MODEL SMALL
.STACK 64
.DATA
DATA1 DB '7'
DATA2 DB '5'
RESULT DW ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AL,DATA1
MOV BL,DATA2
ADD AL,BL
AAA
OR AX,3030H
MOV RESULT,AX
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIn
ret