汇编语言重写除零中断
生活随笔
收集整理的這篇文章主要介紹了
汇编语言重写除零中断
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近因為有個大作業要寫計算器,故考慮重寫除零中斷給予提示
DATA SEGMENT BUFFER1 DB 20 DUP(?) B1N DB 0 BUFFER2 DB 20 DUP(?) B2N DB 0 FORMULA DB 30DB ? CHAR DB 30 DUP('$')DB '$'WELCOME DB 'START TO ENTER THE FORMULA:',0AH,0DH,'$' WARN DB 'You are tring to divide 0!',0AH,0DH,'$' DATA ENDSSTACK SEGMENT STACK S DB 256 DUP(?) STACK ENDS ;換行回車宏 HHHC MACROMOV AH,2MOV DL,0DHINT 21HMOV AH,2MOV DL,0AHINT 21H ENDMCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK;重寫除0中斷************************************************************************ INT0 PROC FAR PUSH DX PUSH AXMOV DX,OFFSET WARN MOV AH,09H INT 21HPOP AX POP DX MOV AH,4CH INT 21H IRET INT0 ENDP ;*********************************************************************************** START: MOV AX,0 MOV ES,AX MOV DI,0 MOV AX,OFFSET INT0 CLD STOSW MOV AX,SEG INT0 STOSW ;將程序地址寫入中斷向量表 ;************************************************************************************ MOV AX,DATA MOV DS,AX MOV ES,AXMOV DX,OFFSET WELCOME MOV AH,09H INT 21HMOV DX,OFFSET FORMULA ;將輸入的式子放入FORMULA中,以CHAR的offset為首地址 MOV AH,0AH INT 21H ;各個運算符的ascii碼 '('-28h,')'-29h,'*'-2ah,'+'-2bh,'-'-2d,'/'2fhMOV DX,OFFSET CHAR;輸出剛才輸入的計算式 MOV AH,09H INT 21H HHHC;除零之后出現bug ;CALL INT0 ;除零測試:先放著最后再測試 MOV BL,0 DIV BLMOV AH,4CH INT 21HCODE ENDS END START總結
以上是生活随笔為你收集整理的汇编语言重写除零中断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言start标号的作用
- 下一篇: 大数据风控案例(总结他人)