Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .MODEL SMALL
- .STACK 100H
- .DATA
- .CODE
- MAIN PROC
- ;INITIALIZE DS
- MOV AX,@DATA ; not sure this is really needed in model .small
- MOV DS,AX
- MOV AH,1 ;SCAN MSB
- INT 21H ;MSB IS NOW AT AH
- MOV BH,AL ;SAVE IT TO BH
- ;SCAN LSB
- MOV AH,1 ;LSB IS NOW AT AL
- INT 21H ;SAVE IT TO BL
- MOV BL,AL
- MOV AH,2 ;SINGLE CHAR PRINT
- MOV DL,0DH ;CARRIAGE RETURN
- INT 21H ;AL = 0DH
- MOV DL,0AH ;LINE FEED
- INT 21H ;AL = 0AH
- LOOP1:
- MOV DL,' ' ;SPACE
- INT 21H
- MOV DL,BH ;MSB
- INT 21H
- MOV DL,BL ;LSB
- INT 21H
- DEC BL ;DECREMENT LSB
- CMP BL,'0'-1 ;LET 70
- ;SO UPDATE O TO 9
- ;AND 7 TO 6
- JNE LOOP1 ;IF FALSE
- UPDATE_IT: ; IF LST was zero
- MOV BL,'9' ;TURN LSB O TO 9
- ;EXAMPLE 80 TO 79
- DEC BH
- CMP BH,'0'-1 ;BOTH MSB
- ;AND LSB ARE ZERO
- JNE LOOP1
- ;DOS EXIT
- EXIT_:
- MOV AH,4CH ;DOS EXIT FUNCTION
- INT 21H ;EXECUTE
- MAIN ENDP
- END MAIN
Add Comment
Please, Sign In to add comment