- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算术运算程序设计
dispc macro char
mov dl,char
mov ah,2
int 21h
endm
datas segment
x db ?
y db ?
c db ? ;保存运算符
datas ends
codes segment
assume cs:codes,ds:datas
go: mov ax,datas
mov ds,ax ;段填充
l1: call input;接收第1个数
mov x,al;保存第一个数
l2: mov ah,1
int 21h ;接收运算符
cmp al,+
je l3
cmp al,-
je l3
cmp al,*
je l3
cmp al,/
je l3
call error;如果不是合法的运算符就错误处理
jmp l2
l3: mov c,al ;保存运算符
call input;接收第2个数
mov y,al;保存第一个数
dispc =
cmp c,+
jne l5
mov al,x
add al,y ;加法运算
l4: aam
or ax,3030h
push ax
dispc ah
pop ax
dispc al
jmp l10
l5: cmp c,-
jne l7
mov al,x
sub al,y ;减法运算
cmp al,0
jge l6 ;带符号数比较,大于等于时转移
push ax
dispc -
pop ax
neg al ;负数求绝对值
l6: or al,30h
dispc al
jmp l10
l7: cmp c,*
jne l8
mov al,x
mul y ;乘法运算
jmp l4
l8: mov al,x
xor ah,ah;将AH清0
div y ;除法运算
or ax,3030h
mov bx,ax
dispc bl ;显示商
cmp bh,0
je l10
mov cx,6
l9: dispc .
loop l9 ;显示6个点
dispc bh ;显示余数
l10: dispc 0dh ;回车
dispc 0ah ;换行
jmp l1
input proc ;定义子程序接收数字
l11: mov ah,1
int 21h ;键盘输入并回显
cmp al,1bh ;判断是否为ESC键
jne l12
mov ah,4ch
int 21h ;退出
l12: cmp al,0
jae l14 ;若al=0,则跳转
l13: call error;非法数字符则错误处理
jmp l11
l14: cmp al,9
ja l13
and al,0fh;将数字符转换成数值
ret ;子程序返回
input endp
error proc
dispc 8 ;退格
dispc 20h ;空格
dispc 8 ;退格
ret
error endp
codes ends
end go
文档评论(0)