【第十一章】标志寄存器

11.9 检测比较结果的条件转移指令

“转移”指它能修改IP,而“条件”指的是它可以根据某种条件,决定是否修改IP。

因为cmp指令可以同时进行两种比较,无符号数和有符号数比较。所以根据cmp指令的比较结果进行转移的指令也分为两张,即根据无符号数的比较结果进行转移的条件转移指令(它们检测zf、cf的值)和根据有符号数的比较结果进行转移的条件转移指令(它们检测sf、of和zf的值)

1.PNG

2.PNG

例:编程实现以下功能

如果(ah)=(bh)则(ah)=(ah)+(ah),否则(ah)=(ah)+(bh)

cmp ah,bh
je s
add ah,bh
jmp short ok
s:  add ah,ah
ok:

练习:data段中数据

1.PNG

编程:统计data段中等于8的字节个数

mov ax,data
mov ds,ax
mov bx,0
mov ax,0
mov cx,8
s:  cmp byte ptr [bx],8
		jne next
		inc ax
next:inc bx
loop s

编程:统计data段中数值大于8的字节个数

mov ax,0
mov cx,8
s:	push cx
	
	cmp byte ptr ds:[si],8
	ja s1
	jmp short s2
s1:	inc ax
s2:	inc si

	pop cx
	loop s

有符号数判断条件:

2.PNG