fcdm_ 2021-12-07 14:19 采纳率: 100%
浏览 25
已结题

汇编程序debug成功但不能直接运行

王爽《汇编语言》实验10中的dtoc子程序,运行不了,但是单步调试可以通过并且结果正常,我的代码如下:

assume cs:code

data segment
    db 10 dup (0)
data ends

code segment
start:
    mov ax,12666
    mov bx,data
    mov ds,bx
    mov si,0
    call dtoc

    mov dh,8
    mov dl,3
    mov cl,2
    call show_str

    mov ax,4c00h
    int 21h

dtoc:
    ; (ax)=w data, ds:si=first address of str
    mov cx,5
    mov bx,10
    mov di,0
s0:
    div bx
    add dl,30h
    mov [di],dl
    inc di
    mov dx,0
    loop s0
    ret

show_str:
    ; (dh)=line_num (0~24), (dl)=column_num (0~79)
    ; (cl)=color, ds:si=source address
    mov ax,0b800h
    mov es,ax

    mov al,dh   ; calculate the address
    mov ah,0
    mov dh,80
    mul dh
    mov dh,0
    add ax,dx
    add ax,ax
    mov bx,ax
    
    mov al,cl   ; store the color

    mov cx,0
s:
    mov cl,[si]
    jcxz show_str_ret
    mov es:[bx],cl
    inc bx
    mov es:[bx],al
    inc bx
    inc si
    loop s
show_str_ret:
    ret
code ends
end start

单步调试正常:

img


但是直接运行就会卡住:

img

求助大佬!!😫

  • 写回答

2条回答 默认 最新

  • fcdm_ 2021-12-08 00:22
    关注

    知道原因了,dosbox除法溢出竟然不会引起中断。我在virtualbox的dos系统上试了试,结果提示了divide overflow,但是在dosbox上运行就是直接卡住。。。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 已采纳回答 12月8日
  • 创建了问题 12月7日

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型