作者tedbear (ted)
看板ASM
标题[问题] 旗标的问题
时间Wed Oct 31 13:05:01 2007
最近在学组语
老师叫我们回家写一个程式使 进位、溢位、符号、零值旗标改变
我的程式是个别的改变旗标
例:
=============================
(第一段程式)
CF=1 SF=0 ZF=0 OF=0
(第二段程式)
CF=0 SF=1 ZF=0 OF=0
(第三段程式)
CF=0 SF=0 ZF=1 OF=0
(第四段程式)
CF=0 SF=0 ZF=0 OF=1
=============================
我不了解的是为什麽我的程式执行到第二段的时候CF会变回0
有没有办法做到下列的情况呢?
=============================
(第一段程式)
CF=1 SF=0 ZF=0 OF=0
(第二段程式)
CF=1 SF=1 ZF=0 OF=0
(第三段程式)
CF=1 SF=1 ZF=1 OF=0
(第四段程式)
CF=1 SF=1 ZF=1 OF=1
=============================
在此附上我的程式码
.data
myname BYTE '我的名字'
value1 word 0ffffh
value2 word 0h
.code
main PROC
mov edx,0
mov edx, OFFSET myname
call WriteString
add value1, 2h ;CF改变
call DumpRegs
call waitMsg
add value2, 8001h ;SF改变
call DumpRegs
call waitMsg
mov eax, 10000h
sub eax, 10000h ;ZF改变
call DumpRegs
call waitMsg
mov al, -128
sub al, 1 ;OF改变
call DumpRegs
call waitMsg
exit
main ENDP
End main
--
新手发问,请多多指教
我会虚心的接受的
感恩
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.124.137.191
1F:→ zha0:因为 ........ 你去看指令就知道了 XDXD 10/31 13:07
2F:→ zha0:你可以利用 pushf/popf 去做改变也可以 XD (TF) 10/31 13:07