鱼C论坛

 找回密码
 立即注册
查看: 1665|回复: 2

求助,为什么这个程序运行死循环

[复制链接]
发表于 2023-1-13 14:37:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
assume cs:code,ds:data

data segment
     dd 100001;0 1 2 3
         dw 100;4 5
         dw 0;6
data ends


code segment
     start:
         mov ax,data;
         mov ds,ax;
         mov ax,ds:[0];
         mov dx,ds:[0];
         div word ptr ds:[4];
         mov ds:[6],ax;
         mov ax,4c00h;
         int 21h;
code ends;
end start;
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-1-13 16:27:01 | 显示全部楼层
本帖最后由 jackz007 于 2023-1-13 16:51 编辑

          你根据什么说程序死循环了?代码里有循环吗?
  1. assume cs:code , ds:data

  2. stack segment para stack 'STACK'
  3.         dw 400h dup(0)
  4. stack ends

  5. data segment para public 'DATA'
  6.         dd 100001
  7.         dw 100
  8. buff01  db 20h dup(00)
  9. data ends

  10. code segment para public 'CODE'
  11. show_dec proc near
  12.         push bp
  13.         mov bp,sp
  14.         push ax
  15.         push cx
  16.         push dx
  17.         push si
  18.         push di
  19.         push ds
  20.         mov dx,[bp+4]
  21.         mov ax,[bp+6]
  22.         mov si,offset buff01
  23.         push si
  24.         mov cx,10
  25. dec01:  div cx
  26.         add dl,'0'
  27.         mov byte ptr ds:[si],dl        
  28.         inc si
  29.         xor dx,dx
  30.         or ax,ax
  31.         jnz dec01
  32.         mov byte ptr ds:[si],al
  33.         lea di,[si-1]
  34.         pop si
  35.         push si
  36. dec02:  cmp si,di
  37.         jae dec03
  38.         mov al,byte ptr[si]
  39.         xchg byte ptr[di],al
  40.         mov byte ptr ds:[si],al
  41.         inc si
  42.         dec di
  43.         jmp short dec02
  44. dec03:  pop si
  45.         mov ah,2
  46. dec04:  mov dl,ds:byte ptr[si]
  47.         or dl,dl
  48.         jz dec05
  49.         int 21h
  50.         inc si
  51.         jmp short dec04        
  52. dec05:  pop ds
  53.         pop di
  54.         pop si
  55.         pop dx
  56.         pop cx
  57.         pop ax
  58.         mov sp,bp
  59.         pop bp
  60.         ret 04
  61. show_dec endp
  62. main proc far
  63.         mov ax,data
  64.         mov ds,ax
  65.         mov ax, word ptr ds:[0]
  66.         mov dx, word ptr ds:[2]
  67.         div word ptr ds:[4]
  68.         xor dx,dx
  69.         push ax
  70.         push dx
  71.         call show_dec
  72.         mov ax,4c00h
  73.         int 21h
  74. main endp
  75. code ends
  76. end main
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-13 17:41:54 | 显示全部楼层
jackz007 发表于 2023-1-13 16:27
你根据什么说程序死循环了?代码里有循环吗?

就是在dosbox里运行无端循环出不来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-27 17:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表