补全编程,利用loop指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。
assume cs:code
code segment
start:
mov ax,2000h
mov ds,ax
mov bx,0
s:mov cl,[bx]
mov ch,0
________
inc bx
loop s
ok:dec bx ;dec指令功能和inc相反,dec bx操作为:(bx) = (bx)-1
mov dx,bx
mov ax,4c00h
int 21h
code ends
end start
分析:
可能会有和我一样填jcxz ok的同学,我开始看题目觉得肯定考点在jcxz那里,结果没细看题目填错了,答案应该是inc cx。
程序每次拿一个字节出来放到cl里面,并把ch置0,假如遇到一个数是0,此时填jcxz ok跳出循环,可以达到查找的目的,但是如果数是1,在遇到loop s时首先把cx减一操作,此时cx=0,循环结束。
答案:inc cx
本文详细解析了一个利用LOOP指令在内存特定段中查找首个值为0的字节的编程任务。通过逐步分析,解释了如何正确填充指令以实现目标,并避免常见的陷阱,如错误地使用jcxz指令。文章强调了inc cx指令在循环条件维护中的关键作用。
1000

被折叠的 条评论
为什么被折叠?



