汇编语言:两个2位的十进制数相乘,要求结果用十进制数输出,求助!

如题所述

你十进制数十已经知道捏 还是 还不知道
如果知道的话 直接转换成 十六进制 然后 开始乘法
程序 18乘以40 即 12H*28H
DATA SEGMENT
TAB DB 12H
TBB DB 28H
MAY DB 10 DUP(?),'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA SI,MAY
XOR AX,AX
XOR DX,DX
MOV AL,TAB
MOV CL,TBB
MUL CL
MOV BX,10
NEXT1:DIV BX
ADD DX,30H
MOV [SI],BYTE PTR DX
INC SI
XOR DX,DX
AND AX,AX
JNZ NEXT1
MOV CX,3
LEA SI,MAY
NEXT2:MOV DL,[SI+2]
MOV AH,2
INT 21H
DEC SI
LOOP NEXT2
MOV AH,4CH
INT 21H
CODE ENDS
END START
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-05
。小模型
。 STARTUP
。的CODE
MOV AH,1
INT 21H
MOV BH,AL
MOV AH,1
INT 21H
MOV BL,AL
地址BH,BL
DAA
MOV DL,BH
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
。退出

汇编语言如何将数值以十进制的形式输出到屏幕上
JNZ AGAIN:之后把SI所指向的字符串输出就OK了。

...2进制、8进制、10进制、16进制方式输出10进制的数的计算结果。_百度...
首先,通过`assume`语句定义代码段`code`和数据段`data`,以及堆栈段`stack`。数据段用于存放待转换的十进制数,堆栈段用于临时存储中间结果。接下来定义了转换函数`dtoc`,用于将十进制数转换为各种进制表示。函数中使用了子程序调用方式,首先将输入数和输出字符串地址传递给函数,并在函数内部进行转换逻...

[汇编]请问汇编语言中如何输出十进制计算结果?
1. 将AX中内容除以10000,得到的商是万位数,余数暂存起来。将所得的商转成ASCII码,输出显示。2. 将刚才的余数除以1000,得到的商是千位数,余数暂存起来。将所得的商转成ASCII码,输出显示。3. 将刚才的余数除以100,得到的商是百位数,余数暂存起来。将所得的商转成ASCII码,输出显示。4. 将...

用汇编语言将两个两位十进制数相加
'$' START: PUSH CS POP DS PUSH CS POP ES LEA DX,STR1 MOV AH,9 INT 21H

解释下面出来的结果,汇编语言知识
2,XOR 是“异或运算”(两个二进制数,每位异或的结果是,相同取0,不同取1),指令中的两个操作数分别是 00FFH,00F0H,异或的结果就是 000FH了;2,SHR2 意思应该是“右移两位”,50是十进制数,换成二进制就是 110010B,右移两位,结果就是 1100B了(前面不够16位的补0),也就是000...

单片机 汇编语言实现将2字节2进制数据转化为10进制
;41H40H: 二进制的0~65535 B_TO_D: CLR A MOV R5, A MOV R6, A MOV R7, A MOV R4, #16LP: MOV A, 41H ;保存高字节 RLC A MOV 41H, A MOV A, 40H ;保存低字节。 RLC A MOV 40H, A MOV A...

汇编语言两个十以内十进制数比较大小的菜鸟问题。。求指教
BUF DB 3 DB ?DB 3 DUP(?)DB '$'BUF1 DB 3 DB ?DB 3 DUP(?)DB '$'设置两个缓冲区吧,调用两次AH=0AH,然后比较输入的字符数显示大的。如果输入的字符数一样,就分别比较每一位,最后用AH=9来显示。

用汇编语言实现从键盘输入两个2位数并进行相加,最后输出结果
ADDA PROC NEAR ;实行加法运算子程序过程定义,属性为NEAR MOV DX,SI MOV BP,DI MOV BX,05 TRAN_HEX: SUB BYTE PTR[SI+BX-1],30H ;把ASCII码数转化为十六进制 SUB BYTE PTR[DI+BX-1],30H DEC BX ; BX减1,修改偏移量 JNZ TRAN_ HEX ; 如果BX未减到零,跳到TRAN_ HEX执行...

汇编语言,两数相加,结果大于10怎么显示十进制
DAA ;组合BCD码加法十进制调整指令,调整后,AL+06H=0DH+06H=13H MOV DL,AL MOV AH,2 INT 21H MOV AH,4CH INT 21H END START 加个指令就可以了,DAA,转换一下,如果有不懂的HI我 希望我的回答可以帮到你

...将这两位相加并用十进制显示输出…谢谢各大侠帮助
assume ds:data,cs:code data segment szstr db ?data ends code segment start:MOV AL,64h ADD AL,85H DAA MOV BL,AL MOV AH,AL MOV CL,4 SHR AH,CL MOV DL,AH ADD DL,30H MOV AH,2 INT 21H MOV AL,BL AND AL,0FH MOV DL,AL ADD DL,30H MOV AH,2 INT 21H MOV AH,4CH I...

相似回答