哪位高手帮帮忙,用汇编语言写个小程序
用汇编语言设计一个四则运算程序,计算两个个位数的和、差、商和积,其中四则运算分别用软中断实现,中断号码分别为60h,61h,62h,63h谢谢了啊...
用汇编语言设计一个四则运算程序,计算两个个位数的和、差、商和积,其中四则运算分别用软中断实现,中断号码分别为60h,61h,62h,63h
谢谢了啊 展开
谢谢了啊 展开
3个回答
展开全部
如果没人回答,先别删,我双休日帮你答,这几天要考试……
------------------------------------------------------
真是抱歉,我还是比较忙……下星期整个星期考试……
先帮你写了加法的,我有时间才把剩下的都写上吧。验证过的。其实减法、乘除法道理都相同的。
因为想要写得比较好看,所以比较长,输入输出都写了。
DATA SEGMENT
ANS DB 10,13,'Answer is:$'
MSG1 DB 10,13,'Input number 1:$'
MSG2 DB 10,13,'Input number 2:$'
NUM1 DW ?
NUM2 DW ? ;我用字而不是字节,比较好处理
DATA ENDS
STACK SEGMENT
DB 32 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE,ES:DATA
MAIN: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,STACK
MOV SS,AX
INTDEF: STI ;设置所有的中断向量
PUSH DS
MOV AX,SEG ADDPROC
MOV DS,AX
MOV AX,2560H
MOV DX,OFFSET ADDPROC
INT 21H
MOV AX,2561H
MOV DX,OFFSET SUBPROC
INT 21H
MOV AX,2562H
MOV DX,OFFSET MULPROC
INT 21H
MOV AX,2563H
MOV DX,OFFSET DIVPROC
INT 21H
POP DS
START: CALL INPUT
INT 60H
;INT 61H
;INT 62H
;INT 63H
MOV AH,07H
INT 21H
MOV AH,07H
MOV AH,4CH
INT 21H
INPUT: MOV AH,09H ;输入部分,原理很简单相信你懂。
MOV DX,OFFSET MSG1
INT 21H
MOV AH,01H
INT 21H
SUB AL,30H
MOV AH,0
MOV [NUM1],AX
MOV AH,09H
MOV DX,OFFSET MSG2
INT 21H
MOV AH,01H
INT 21H
SUB AL,30H
MOV AH,0
MOV [NUM2],AX
RET
ADDPROC: CLI
PUSH AX
PUSH DX
PUSH CX
MOV AH,09H
MOV DX,OFFSET ANS
INT 21H
MOV AX,[NUM1]
ADD AX,[NUM2]
AAA ;调整之后AH、AL分别是高低位
MOV DX,AX
PUSH DX
OR DH,30H
MOV DL,DH
MOV AH,02H
INT 21H
POP DX
OR DL,30H
MOV AH,02H
INT 21H
POP CX
POP DX
POP AX
STI
IRET
SUBPROC:
IRET
MULPROC:
IRET
DIVPROC:
IRET
CODE ENDS
END MAIN
------------------------------------------------------
真是抱歉,我还是比较忙……下星期整个星期考试……
先帮你写了加法的,我有时间才把剩下的都写上吧。验证过的。其实减法、乘除法道理都相同的。
因为想要写得比较好看,所以比较长,输入输出都写了。
DATA SEGMENT
ANS DB 10,13,'Answer is:$'
MSG1 DB 10,13,'Input number 1:$'
MSG2 DB 10,13,'Input number 2:$'
NUM1 DW ?
NUM2 DW ? ;我用字而不是字节,比较好处理
DATA ENDS
STACK SEGMENT
DB 32 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE,ES:DATA
MAIN: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,STACK
MOV SS,AX
INTDEF: STI ;设置所有的中断向量
PUSH DS
MOV AX,SEG ADDPROC
MOV DS,AX
MOV AX,2560H
MOV DX,OFFSET ADDPROC
INT 21H
MOV AX,2561H
MOV DX,OFFSET SUBPROC
INT 21H
MOV AX,2562H
MOV DX,OFFSET MULPROC
INT 21H
MOV AX,2563H
MOV DX,OFFSET DIVPROC
INT 21H
POP DS
START: CALL INPUT
INT 60H
;INT 61H
;INT 62H
;INT 63H
MOV AH,07H
INT 21H
MOV AH,07H
MOV AH,4CH
INT 21H
INPUT: MOV AH,09H ;输入部分,原理很简单相信你懂。
MOV DX,OFFSET MSG1
INT 21H
MOV AH,01H
INT 21H
SUB AL,30H
MOV AH,0
MOV [NUM1],AX
MOV AH,09H
MOV DX,OFFSET MSG2
INT 21H
MOV AH,01H
INT 21H
SUB AL,30H
MOV AH,0
MOV [NUM2],AX
RET
ADDPROC: CLI
PUSH AX
PUSH DX
PUSH CX
MOV AH,09H
MOV DX,OFFSET ANS
INT 21H
MOV AX,[NUM1]
ADD AX,[NUM2]
AAA ;调整之后AH、AL分别是高低位
MOV DX,AX
PUSH DX
OR DH,30H
MOV DL,DH
MOV AH,02H
INT 21H
POP DX
OR DL,30H
MOV AH,02H
INT 21H
POP CX
POP DX
POP AX
STI
IRET
SUBPROC:
IRET
MULPROC:
IRET
DIVPROC:
IRET
CODE ENDS
END MAIN
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询