ورود

View Full Version : سوال: برنامه set و reset کردن AF flag



armin0282
سه شنبه 27 اردیبهشت 1390, 19:00 عصر
سلام این برنامه ای که نوشتم 8 بیت کم ارزش رجیستر فلگ رو داخل AH قرار میده و بعد AF رو set , reset میکنه!!

سوالی که داشتم اینه که واسه دست کاری کردن 8 بیت پر ارزش رجیستر فلگ باید چی کنم،فقط می دونم از pushF باید استفاده کنم اما چطوری؟!!!!






Data segment


msg1 db 'Please Press Any Key For Set AF Flag !!!$',0Dh,0Ah
msg2 db 0Dh,0Ah,'Please Press Any Key For Reset AF Flag !!!$'

ENDS

Stact Segment
db 50 dup (?)
ENDS
Code Segment
begin proc far

assume ds:data,cs:code,ss:stack
push ax
push ds

mov ax,data
mov ds,ax
mov ah,10010110B
SAHF ;SF=1 ,ZF=0 ,0 ,[AF=1] ,0 ,PF=1 ,1 ,CF=0

;Print msg1

lea dx,msg1
mov ah,9
int 21h
;Wait For Press Any key...
mov ah,1

int 21h
LAHF ;AH=10010110
and ah,11101111B ;AH=10010110 AND 11101111B = 10000110

SAHF ;SF=1 ,ZF=0 ,0 ,[AF=0] ,0 ,PF=1 ,1 ,CF=0 Set AF Rigester

;Print msg1
lea dx,msg2
mov ah,9
int 21h
;Wait For Press Any key...
mov ah,1

int 21h
LAHF ;AH=10000110
OR ah,00010000B ;AH=10000110 OR 00010000 = 10010110

SAHF ;SF=1 ,ZF=0 ,0 ,[AF=1] ,0 ,PF=1 ,1 ,CF=0 ReSet AF Rigester

;Wait For Press Any key...
mov ah,1

int 21h
begin endp
END
end begin

Younes
چهارشنبه 28 اردیبهشت 1390, 12:13 عصر
سلام
خوب مي تواني pushf بكني بعد pop ax مقدار فلگها در ثبات مربوطه مي آيد بعد هر تغييري كه مي خواهي در ثبات مربوطه بده و بعد push ax و بعد از آن popf به اين ترتيب محتواي ax به ثبات فلگها منتقل مي شود:چشمک: