;编写一个程序段,在DX高4位全为0时,使AX=0,否则使AX=-1
assume cs:code
code segment
start: mov ax, 0
mov dh, 00000001b
cmp DH, 00000000b
jz z
mov ax, -1
z:push ax
mov ax, 0
pop ax
mov ax, 4c00H
int 21H
code ends
end start
重要的是要在不用子程序方法的同时做到保护现场,否则发生跳转时还好,不发生跳转时由于程序顺序执行最后得到的结果与发生跳转的结果是一样的。这里用的保护现场的方法是利用栈暂存数据,和汇编语言编写二重循环时用的方法一样