0
TITLE
;--------------------------------------------------------------
.MODEL SMALL
.STACK 64
.DATA
MSGA DB 13, 10, "Input expression: ","$$$" ;asks the user input expression ie. 5+2
MSGADD DB 13, 10, "The sum is: ","$"
MSGSUB DB 13, 10, "The difference is :","$"
MSGMUL DB 13, 10, "The product is: " ,"$"
MSGDIV DB 13, 10, "The quotient is: ","$"
NUM1 db ?
NUM2 db ?
OP db ?
.CODE
MAIN PROC NEAR
MOV AX,@DATA
MOV DS,AX
LEA DX,MSGA
MOV AH,09H ;reads the user input
INT 21H
MOV AH,01H ; scan NUM1
INT 21H ;interruption
SUB AH,32
MOV NUM1,AH
MOV AH,01H ; also reads from the keyboard
INT 21H ; scan NUM2
SUB AH,32
MOV NUM2,AH
;MOV NUM2,AL
MOV AH,01H ; also reads from the keyboard
INT 21H ; scan OP
SUB AH,32
MOV OP,AH
CMP AX,'+'
je @ADD
CMP AX,'-'
;je @SUB
CMP AX,'*'
;je @MUL
CMP AX,'/'
;je @DIV
@ADD:
ADD AH,NUM1 ;add first number
ADD AH,NUM2
MOV NUM1,AH
ADD NUM1,32
LEA DX,MSGADD
MOV AH,09h
INT 21h
MOV DL,NUM1
MOV AH,02h
INT 21h
@DIV:
XOR AX,AX ;EXAMPLE ON THE BOARD
MOV AX,83H
MOV BL,2H
DIV BL
MOV AH,4CH ;for exiting purpose
INT 21H
@endif:
MAIN ENDP
;---------------------------------------------------------------
END MAIN
爲什麼我的代碼不工作的執行體現在哪裏?它不會給出一個數字,而是通常給出一個pi字符。使用匯編代碼
歡迎堆棧溢出!請不要只是要求我們爲您解決問題。我們展示如何_you_試圖自行解決問題,然後告訴我們_exactly_什麼結果,並告訴我們爲什麼你覺得它沒有工作。請參閱「[您嘗試過什麼?](http://whathaveyoutried.com/)」,以獲得一篇您最近需要閱讀的優秀文章。 –
@JohnSaunders對不起,我真的嘗試了所有我可以。我只是彙編語言的新手。這就是爲什麼我無望尋求幫助。 – user2562953
嘗試通過指令在調試器指令中逐步完成它。彙編語言很好,因爲所有東西都在你的眼前。 –