王爽书中的一个小问题,求大家进来指点!

yiruirui0507 2010-09-02 09:57:06
王爽汇编中的监测点9.2
补全编程,利用JCXZ指令,实现在内存2000H段中查找第一个值为0的字节,找到后将它的偏移地址存储在DX中。

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
相信大家都遇到过这个问题,答案是这样的;
从标号s处开始所要填写的四条指令依次如下:

第一条指令:mov cl,[bx]

第二条指令:mov ch,0

第三条指令:jcxz ok

第四条指令:inc bx
跟我想的不一样,我认为直接 mov cx,[bx]
jcxz ok
inc bx
就行了,它这里为什么要分cl,ch?还直接把ch=0了?匪夷所思,求高手指点一二,先说谢谢!
...全文
131 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiruirui0507 2010-09-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ldlihuanfa 的回复:]
楼主注意是查找第一个为0的字节地址。你那样写是找字为0的,假设某个字是为0022,那么按你就不会找到正确的地址了。而实际上程序是应该能找到0022中的那个00所代表的字节地址吧
[/Quote]

感谢华仔的回答,懂了,一切都懂了!谢谢!分数全给你了!
ldlihuanfa 2010-09-02
  • 打赏
  • 举报
回复
同为菜鸟,刚学完王爽的汇编语言,现在正在学习c语言,:)
ldlihuanfa 2010-09-02
  • 打赏
  • 举报
回复
楼主注意是查找第一个为0的字节地址。你那样写是找字为0的,假设某个字是为0022,那么按你就不会找到正确的地址了。而实际上程序是应该能找到0022中的那个00所代表的字节地址吧

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧