汇编实现简单“加减乘除”(无进位)

来源:互联网 发布:成都鼎桥 知乎 编辑:程序博客网 时间:2024/04/29 20:17

;xp masm环境下编译通过,代码写得很渣,汇编还没入门。。。
assume cs:code,ds:datadata segmentout1 db 0ah,0dh,"please input the first number:$"out2 db 0ah,0dh,"please input the second number:$"newline db 0ah,0dh,"$"data ends;输入两个数字,保存,运算,输出结果code segmentstart:mov ax,datamov ds,axmov dx,offset out1;lea dx,out1;入口参数为dx,显示第一条提示mov ah,9;使用9号功能调用,int 21h;执行中断mov ah,1;1号功能调用,输入一个字符int 21hmov bl,al;把第一个字符存入bl;save the input number lea dx,out2;显示第二条提示 mov ah,9 int 21h mov ah,1;输入第二个字符 int 21h  mov cl,al;将第二个字符存入cl lea dx,newline;回车换行 mov ah,9 int 21h    mov dl,bl;显示第一个字符 mov ah,2 int 21h mov ah,2;显示加号mov dl,'+'int 21h  mov dl,cl;显示第二个字符 mov ah,2 int 21h  mov ah,2;显示等号mov dl,'='int 21h;-----------------------加法运算<无进位>mov al,bladd al,claaa;加法调整or  ax,3030h;转换成ASCII码mov dl,almov ah,2int 21h;-------------------------lea dx,newline;换行mov ah,9int 21hmov dl,bl;显示第一个字符mov ah,2int 21h mov ah,2;显示减号mov dl,'-'int 21h  mov dl,cl;显示第二个字符 mov ah,2 int 21h  mov ah,2;显示等号mov dl,'='int 21h;------------------------减法操作<无进位借位>mov al,blsub al,claasor al,30hmov dl,almov ah,2int 21h;------------------------lea dx,newline;换行mov ah,9int 21h mov dl,bl;显示第一个字符 mov ah,2 int 21h mov ah,2;显示乘号mov dl,'*'int 21h  mov dl,cl;显示第二个字符 mov ah,2 int 21h  mov ah,2;显示等号mov dl,'='int 21h;-----------------乘法操作<无进位>sub bl,30hsub cl,30hmov al,blmul claamor al,30hmov dl,almov ah,2int 21hadd bl,30hadd cl,30h;-----------------lea dx,newlinemov ah,9int 21h mov dl,bl mov ah,2 int 21h mov ah,2mov dl,'/'int 21h  mov dl,cl mov ah,2 int 21h mov ah,2mov dl,'='int 21h;-----------------sub bl,30hsub cl,30hmov ax,bldiv clor ax,3030hmov dl,almov ah,2int 21h;-----------------mov ah,4chint 21hcode endsend start


0 0
原创粉丝点击