鱼C论坛

 找回密码
 立即注册
查看: 2274|回复: 4

汇编代码陷入了死循环

[复制链接]
发表于 2012-7-18 14:38:06 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 LLCK910 于 2012-7-18 15:23 编辑

   最近学习汇编卡在这里好几天了....汇编里面的多重循环,书上是说为了不让CX寄存器被混淆,可以将CX寄存器保存到内存或者寄存器和栈空间中.但是我调试书上的例题后自己修改了一点,就发现程序功能虽然正常的实现了,但是程序陷入了死循环.....

求鱼油们帮我分析下

assume cs:code,ds:data
data segment
db '....computer....'
db '....nobadaby...'
db '....supersta.......'
db '....continue.....'
data ends
code segment
start:mov ax,data
       mov ds,ax   ;内存中定义的数据和数据段进行关联
      
       mov si,0
       mov bx,0
       mov cx,4   ;外循环循环次数为4次
     s:mov dx,0        ;空操作外循环的返回地址
       mov cx,4   ;内循环循环次数为8次
       push cx  ;内循环次数压栈保存
    s1:mov al,ds:[bx+si+4]
       and al,11011111b
       mov ds:[bx+si+4],al  ;转换成大写字母
       inc si
       mov al,ds:[bx+si+4]
       or al,00100000b
       mov ds:[bx+si+4],al ;转换成小写字母
       inc si
       loop s1             ;返回到内循环的起始地址
       add bx,8h          ;外循环循环一次内循环循环8次 进入下一次循环
       pop cx             ;外循环的循环次数 出栈
       loop s              ;返回到外循环起始地址
       mov ax,4c00h
       int 21h             ;程序运行结束后,返回系统的领空
code ends
end start
      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-7-18 14:38:55 | 显示全部楼层
  我表示卡在这里好几天了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-18 15:07:29 | 显示全部楼层
表示看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-7-18 21:39:37 | 显示全部楼层
今天自己找到错误的原因了 ,很粗心的低级错误

QQ截图20120718214920.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-18 22:22:07 | 显示全部楼层
我还什么都不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-8 06:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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