写出各语句的注释,以帮助你理解。
;AX=3388H
;AX逻辑与0F0FH,结果为0308H,不存入AX,只影响标志位
;当结果为0时,跳转至lab1。因为0308不等于0,顺序执行
;DX=0088H
;无条件跳转至LAB2
;LAB1:DX=3300H
;这条语句不对吧,是不是应该是 MOV AX,DX。结果是将DX的内容赋值给AX。当前程序就应该跳转至这里。
所以,整个程序段执行结束后结果为 AX=0088H
Lab2 后面语句没有指令只有操作数啊
假设 代码如下的话
MOV ax,3388H
TEST AX,0F0FH
JZ lab1
MOV DX,0088H
JMP lab2
lab1:
MOV DX,3300H
lab2:
mov AX,DX
结果为 0088h
------------============分析如下=============---------------
一开始
mov ax, 3388h ;此时ax 的值为 3388h
test ax, 0f0fh ;此时ax 的值为 3388h, test 测试不相等flags没有变化
jz lab1 ;此时zf标志位0,不发生跳转继续执行
mov dx, 0088h ;此时 dx的值为0088h, ax的值为3388h
jmp lab2 ;无条件跳转到lab2处继续执行
lab2: mov ax, dx ; 此时ax的值为0088h.
0088H