AF标志为1如何跳转?

How to jump if the AF flag is 1?

我想检查辅助进位标志是否为1然后做点什么。我找不到任何关于辅助进位标志的参考。

mov al,00011010b
mov bl,10011010b  
add al,bl
;jump  if AF == 1 

没有基于AF的条件跳转。正如 Peter Cordes 所说,最简单的解决方案是将标志加载到堆栈或 AH 中并在其上分支:

add al, bl    ; some operation that sets AF
lahf          ; load flags into AH
test ah, 10h  ; check if AF is set
jnz afset     ; branch to afset if AF was set

或者,如果您愿意丢弃 AL,您可以在值 00h 上使用 aaa 来检查是否发生了半进位。

add al, bl    ; some operation that sets AF
mov al, 0     ; clear AL for testing
aaa           ; set CF = AF, trash AX
jc afset     ; branch to afset if AF was set