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