鱼C论坛

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

详细求解实验9.2 帮下忙啦

[复制链接]
发表于 2011-4-7 11:55:57 | 显示全部楼层 |阅读模式

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

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

x
额    实验9.2  程序如下   (因为没办法截图 我就只能手打了)

  assume  cs:code
   code segment
   
     start:  mov  ax ,2000H
                mov  ds ,ax
                mov  bx, 0                                                  
            S:__________
               __________
               __________    ( 这里便是要填写的代码)
               __________
               jmp  short  s
          OK:mov  dx,bx
                mov ax,4c00h
                int   21h
code  ends
end  start                                
  
              好  首先呢  问题是  补全程序,利用jcxz指令, 实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。


          答案如下:  第一条:mov cl,[bx]
                                 第二条:mov ch,0
                                 第三条:jcxz  ok
                                 第四条:inc  bx  
     我的理解是  之所以将cl和ch归零 是因为能更好的让cx变成0  那么下一条  jcxz  ok   就是让cx为零时开始跳转到ok处   那么  能解释下  为什么最后要
把bx加1  
       小弟在线等答案   有劳各位了{:3_46:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-7 12:09:44 | 显示全部楼层
这位大哥,利用循环一个一个字节查找时,每次循环bx肯定要加1啊,不然怎么一个一个查找字符啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-7 12:16:15 | 显示全部楼层
inc bx是为了实现循环啊。
当cx等于0的时候。执行jcxz ok。跳过inc bx,执行ok处得代码。
当cx不为0的时候  jcxz ok不跳转。然后执行bx+1,执行jmp  short  s
  跳转到S处执行。这就形成了循环查找DS:[BX]处得值是否为0,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-7 12:17:18 | 显示全部楼层
你看代码。要把代码执行的顺序弄清楚。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-4-7 13:19:52 | 显示全部楼层
哦哦  有劳了  现在懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-18 18:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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