【发布时间】:2012-01-11 06:26:38
【问题描述】:
我正在尝试编写一个程序,它可以获取两个 6 位十进制数字并显示它们的相加,但使用 16 位 8086 我将数字定义为双字,并将 LO 放在 WORD 1 中,将 HO 放在字 2 中。类似于下面的代码 但我不知道下一步要做什么,任何人都可以建议我下一步操作的算法吗? 谢谢
x dd(?)
next_no:
mov cl,2
mov ch,4
two_bit:
getch
sub al,30h
mov bl,10
mul bl
mov di,ax
add word ptr x+2,di
dec cl
jnz two_bit
fourbit:
getch
sub al,30h
mov bl,10
mul bl
mov di,ax
add word ptr x,di
dec ch
jnz fourbit
在这个节目中 di 是存储通过循环生成的数字的地方 当用户输入数字时 di 将乘以 10 并且新数字将添加到 di 喜欢: 获得28的过程 di=0*10+2=2 di=2*10*+8=28
【问题讨论】:
标签: assembly x86-16 bigint 16-bit extended-precision