ASSEMBLY LANGUAGE PROGRAMMING

Wednesday, January 28, 2009

8086 Programming: TITLE subtraction PROGRAM .MODEL SMALL .STACK 100H .DATA MSG1 DB 'ENTER FIRST NUMBER;$' MSG2 DB 'ENTER DECOND NUMBER;$' msg3 db 'result is=$' NUM1 DB ? NUM2 DB ? .CODE MAIN PROC MOV AX,@DATA ;INITIALIZE DAS MOV DS,AX LEA DX,MSG1 ; DISPLAY PROMPT FOR FIRST NUMBER MOV AH,9H INT 21H MOV AH,01H ; READ FIRST NUMBER INT 21H MOV NUM1,AL CALL NEWLINE LEA DX,MSG2 ; DISPLAY PROMPT FOR FIRST NUMBER MOV AH,9H INT 21H MOV AH,01H ; READ SECOND NUMBER INT 21H MOV NUM2,AL CMP AL,NUM1 JG DISPLAY CMP AL,NUM1 JL DISPLAY1 DISPLAY: CALL SUB2 JMP GO DISPLAY1: CALL SUB1 GO: ADD AL,30H ;ASCII ADJUSTMENT CALL NEWLINE LEA DX,MSG3 ;RESULT DISPLAY PROMPT MOV AH,9H INT 21H MOV NUM1,AL MOV AH,02H ;DISPLAY RESULT MOV DL,NUM1 INT 21H MOV AH,4CH INT 21H MAIN ENDP NEWLINE PROC MOV AH,02H MOV DL,0DH INT 21H MOV DL,0AH INT 21H RET NEWLINE ENDP SUB1 PROC ;MOV DL,NUM2 ; FIRST VALUE IS GREATER MOV AL,NUM1 SUB AL,NUM2 RET SUB1 ENDP SUB2 PROC SUB AL,NUM1 ; FIRST VALUE IS LESS THAN RET SUB2 ENDP END MAIN

0 comments:

Visitors

PlugIn.ws - Free Hit Counter, Web Site Statistics, Traffic Analysis

  © Blogger template Leaving by Ourblogtemplates.com 2008

Back to TOP