一. 題目
補(bǔ)全編程笨枯,利用jcxz 指令骄蝇,實(shí)現(xiàn)在內(nèi)存2000H
段中查找第一個(gè)值為0的字節(jié)巡扇,找到
后,將它的偏移地址存儲(chǔ)在dx中.
題目
二. 實(shí)現(xiàn)
分析: 遍歷2000H
段地址后的每一個(gè)字節(jié), 并賦值給cx, 如果cx==0, 則會(huì)執(zhí)行jcxz 標(biāo)號處的指令
assume cs:code
code segment
start:
mov ax, 2000h
mov ds, ax
mov bx, 0
s: mov cl, [bx]
mov ch, 0h
jcxz ok
inc bx
jmp short s
ok: mov dx, bx
mov ax, 4c00h
int 21h
code ends
end start
注: 因?yàn)橐蟛檎易止?jié), 所以用cl存放字節(jié)值, ch 置0
三. 驗(yàn)證
-
因?yàn)?code>2000h:0處值為0, 不利于測試, 設(shè)置
2000h:0
開始的三個(gè)值分別為1, 2, 3:
設(shè)置值
設(shè)置后的第一個(gè)為0的字節(jié)應(yīng)為2000H:3
-
運(yùn)行
運(yùn)行一
運(yùn)行二
此處可看到偏移地址為0003(bx) 處的值為0, 則cx==0, 則運(yùn)行jcxz 之后的指令地址: 0011h
運(yùn)行`0011h`處指令