程序集 8086 - 如何打开方向标志?

assembly 8086 - how can i turn on the direction flag?

我正在使用 dosbox 以 16 位汇编语言编程..

mov df,1

我知道这行不通,但这就是我问这个问题的原因

我想知道我们是否可以随心所欲地改变它的价值。

可能像

一样一般分配
mov flagreg,1000011010000110b

如果问题或我说的有任何错误,请随时纠正我!

已编辑:

我想在这里做的是反向打印一个字符串

.data
st1 db '1111[=12=]00'
.code

main proc
mov ax,@data
mov ds,ax

pushf
pop ax
or ax,0400h
push ax
popf

std
mov ah,9
mov dx,offset st1
int 21h

mov ah,4ch
int 21h
main endp

end main

期望输出:

0000

实际输出:

1111

可以用std(设置方向标志)指令设置方向标志,用cld(清除方向标志)指令清除。

方向标志是标志寄存器中的第 10 位。您也可以通过直接更改标志寄存器来操纵它。例如,要设置方向标志,您可以这样做:

pushf         ; push flags onto the stack
pop ax        ; pop flags into ax
or ax, 0400h  ; set direction flag
push ax       ; push ax
popf          ; pop into flags