一、如題:
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.正常結束程序

