首页 > 其他 > 详细

检测点9.2 补全编程,利用jcxz指令,实现在内存中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中

时间:2020-03-28 11:34:36      阅读:187      评论:0      收藏:0      [点我收藏+]

一、如题:

 1 assume cs:code 
 2 
 3 code segment
 4 start:  mov ax,2000h
 5         mov ds,ax
 6         mov bx,0
 7 s: 8  9 10         inc bx
11         jmp short s
12 ok:     mov dx,bx
13         
14         mov ax,4c00h
15         int 21h
16 code ends
17 end start

二、代码实现 

 1 assume cs:code 
 2 
 3 code segment
 4 start:  mov ax,2000h
 5         mov ds,ax
 6         mov bx,0
 7 s:      mov cl,[bx]    ;将偏移地址为bx单元中的数据赋值给cx寄存器低位
 8         mov ch,0      ;每次将cx寄存器高位清0
 9         jcxz ok        ;如果cx为0,则跳转到标号ok的地方
10         inc bx
11         jmp short s
12 ok:     mov dx,bx
13         
14         mov ax,4c00h
15         int 21h
16 code ends
17 end start

 三、上机调试

1.假定内存单元2000:0 f的数据如下图

技术分享图片

 2.开始调试代码并查看各个寄存器的数据

技术分享图片

 3.执行第一条指令AX=2000

技术分享图片

 4.执行第二条指令DS=2000

技术分享图片

 5.执行第三条指令BX=0

技术分享图片

 6.执行第四条指令CL=11

技术分享图片

 7.执行第五条指令CH=0

技术分享图片

8.执行第六条指令,判断cx是否为0,不为0继续执行下面的一条指令(inc bx)

技术分享图片

 9,继续

技术分享图片

 10.继续跳回到标号s,继续判断下一个内存单元中的数据是否为0,略过……直接来张找到为0的截图

技术分享图片

 11.正常结束程序

技术分享图片

 

检测点9.2 补全编程,利用jcxz指令,实现在内存中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中

原文:https://www.cnblogs.com/TonyJia/p/12584154.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!