万千只cnm 发表于 2021-3-28 16:42:40

实验十 转化为十进制str

请问 执行到div 时怎么就出错了呀 无限循环了 csip跳到未知地方去了
assume cs:code,ds:data
data segment
db 100 dup(0)
dw 123,12666,1,8,3,38

data ends

code segment
start:
       mov ax,data
       mov ds,ax
      

    call convert
    mov ax,4c00h
    int 21h

convert:

    mov dx,0
    mov bx,0
    mov cx,6;几个数据
    mov dl,10
    mov si,100
s:
    push cx
    mov ax,
    s1:
            mov cx,0
            div bl;
            mov cl,al;检测商是否为0
            add ah,30h
            mov ,ah
            mov ah,0 ;商继续/10
            inc bx
    loop s1

    pop cx
    add si,2

loop s

ret

code ends

end start

jackz007 发表于 2021-3-28 17:24:40

本帖最后由 jackz007 于 2021-3-28 17:26 编辑

convert:
. . . . . .
    mov bx,0
. . . . . .
    div bl;
      看看你自己贴出来的 debug 图片,执行到 div bl 的时候,bx 的值是多少?
      原因就是,被零除了!

万千只cnm 发表于 2021-3-28 17:45:14

jackz007 发表于 2021-3-28 17:24
看看你自己贴出来的 debug 图片,执行到 div bl 的时候,bx 的值是多少?
      原因就是,被 ...

谢谢 我太粗心了

a83711140 发表于 2021-12-13 20:24:52

检测商是否为零的时候cl是要加一吧?记得loop好像是先把cx-1然后判断是否为零。
页: [1]
查看完整版本: 实验十 转化为十进制str