21,458
社区成员
发帖
与我相关
我的任务
分享
;ax = 12666 (十进制的) 下面的循环用于取得其中的商和余数,并将余数+30h 得到ASCII码
mov bx,10 ;除数
s:
div bx ;ax/10 余数放入dx 商放入ax
mov cx,ax ;将ax放入cx,便于后面的jcxz指令
jcxz overJmpByS
add dx,30h
mov ds:[si],dl ;将转换后的字符串放入 data
inc si
jmp short s
AX=04F2 BX=000A CX=04F2 DX=0036 SP=FFFE BP=0000 SI=0001 DI=0000
DS=0BC2 ES=0BB2 SS=0BC2 CS=0BC3 IP=002B NV UP EI PL NZ NA PO NC
0BC3:002B EBF2 JMP 001F
-t
AX=04F2 BX=000A CX=04F2 DX=0036 SP=FFFE BP=0000 SI=0001 DI=0000
DS=0BC2 ES=0BB2 SS=0BC2 CS=0BC3 IP=001F NV UP EI PL NZ NA PO NC
0BC3:001F F7F3 DIV BX
-t
Divide overflow
Program terminated normally
mov bx,10 ;除数
s:
xor dx, dx
div bx ;ax/10 余数放入dx 商放入ax
mov cx,ax ;将ax放入cx,便于后面的jcxz指令
jcxz overJmpByS
add dx,30h
mov ds:[si],dl ;将转换后的字符串放入 data
inc si
jmp short s