王爽汇编语言 检测点9.3

本文详细解析了一个利用LOOP指令在内存特定段中查找首个值为0的字节的编程任务。通过逐步分析,解释了如何正确填充指令以实现目标,并避免常见的陷阱,如错误地使用jcxz指令。文章强调了inc cx指令在循环条件维护中的关键作用。

补全编程,利用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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值