אסמבלי :(

InfectedM

New member
אסמבלי :(

קיבלתי תרגיל. 14. "תא הזיכרון בכתובת H45 מכיל נתון. כתוב תוכנית שתבדוק את מיקום הסיבית הראשונה שערכה "0". החיפוש יחל מימין, מיקום 0. התוצאה תוצב באוגר DH." ניסיתי לעשות את זה בדרך הזו, אבל משום מה זה לא פועל:
MODEL small STACK 256 DATASEG CODESEG start: mov ax,@data mov ds,ax mov dh,8h mov cx,8h mov bx,45h mov [bx],01111111b mov al,[bx] @1: shr al,1 jz @2 loop @1 @2: sub dh,cl exit: mov ax,4c00h int 21h END start​
אשמח לקבל עזרה :)
 

InfectedM

New member
בדוגמא שלי, אגב, שמתי בתא הזה

מספר כלשהו. סתם שיהיה לי נוח.
 

selalerer

New member
מה זה "לא פועל"?

תקלת אינטרפטציה או תקלה בזמן ריצה, או פשוט תוצאה לא נכונה?
 

codec

New member
קפיצה מותנית

הקפיצה המותנית שלך (JZ) היא לפי ZF, אבל הפקודה SHR משנה את CF (מכניסה אליו את הסיבית ש"יצאה" מפעולת ה-shift). לכן, תשתמש בקפיצה המותנית JNC (שקופצת אם CF הוא 0).
 
למעלה