有没有会求两个两位数的乘积或者两个三位数的乘积
1条回答 默认 最新
- CSDN专家-黄老师 2021-07-02 09:00关注
DATAS SEGMENT ;此处输入数据段代码 x db 2 dup(?) y db 2 dup(?) z dw ? mess1 db 'Please enter two double digits, each ending with enter:',0ah,0dh,'$' mess2 db 0ah,0dh,'result=$' DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 ;只能支持两位数的乘法!!! input1 macro opr1 ;输入宏-X mov cx,1h mov si,0h let1: mov ah,1h int 21h cmp al,0dh je let2 sub al,30h mov opr1[si],al inc si jmp let1 let2: loop let1 endm input2 macro opr2 ;输入宏-Y mov cx,1h mov si,0h let3: mov ah,1h int 21h cmp al,0dh je let4 sub al,30h mov opr2[si],al inc si jmp let3 let4: loop let3 endm mulxy macro op1,op2,op3 ;运算宏 mov bx,0h mov al,op1[0] mov bl,op1[1] mov cl,0ah mul cl add ax,bx ;ax中存的是x的真值 push ax ;x暂存起来 mov ax,0h mov bx,0h mov al,op1[0] mov bl,op1[1] mov cl,0ah mul cl add ax,bx ;目前ax存放y的真值 mov bx,0h pop bx mul bx ;x*y运算结果放入ax中 mov z,ax endm output1 macro op ;输出宏 mov ax,0h mov bx,0h mov dx,0h mov cx,0h mov ax,op mov bx,0ah let5: div bx push dx ;存余数 mov dx,0h inc cx cmp ax,0h jnz let5 let6: mov ah,2h pop dx add dx,3030h int 21h loop let6 endm lea dx,mess1 ;提示信息 mov ah,9h int 21h input1 x input2 y mulxy x,y,z ;结果在Z中 lea dx,mess2 ;提示信息 mov ah,9h int 21h ;输出结果时是将运算结果除以十然后余数入栈 ;最后弹出余数调用dos系统2号功能依次输出结果 output1 z MOV AH,4CH INT 21H CODES ENDS END START
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 springboot接入微信支付SDK
- ¥50 大区域的遥感影像匹配 怎么做啊
- ¥15 求解答:pytorch跑yolov8神经网络受挫
- ¥20 Js代码报错问题不知道怎么解决
- ¥15 gojs 点击按钮node的position位置进行改变,再次点击回到原来的位置
- ¥15 计算决策面并仿真附上结果
- ¥20 halcon 图像拼接
- ¥15 webstorm上开发的vue3+vite5+typeScript打包时报错
- ¥15 vue使用gojs,需求在link中的虚线上添加方向箭头
- ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?