王爽 匯編 檢測點9.2 補全編程,利用jcxz指令,實現在內存中查找第一個值為0的字節,找到后,將它的偏移地址存儲在dx中


一、如題:

 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.正常結束程序

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM