עבור לתוכן

עזרה בשפת סף(ASM).

Featured Replies

פורסם

קיבלתי תרגיל לפתור, ואינני מצליח.

הבנתי שצריך להשתמש במינוף סיביות, אבל אני עדיין לא מצליח...

זהו התרגיל-

3. כתבו תוכנית בשפת סף כך שלכל תא (8 סיביות) בטווח הזיכרון (2BF41h 2BFA1h):

a. אם ערך התא גדול מ-50: התוכנית תשנה את ערך התא כך שכל סיבית זוגית תהפוך ל-1 וכל שאר הסיביות יישארו כמו שהיו.

b. אם ערך התא קטן או שווה ל-50: התוכנית תשנה את ערך התא כך שארבעת הסיביות הראשונות יהפכו לארבעת הסיביות האחרונות. ערך ארבעת הסיביות הראשונות יהיה 0.

אני מאד אשמח אם משהו יוכל לעזור לי עם התרגיל, או לפחות לתת לי כיוון.

פורסם

אני לא יודע אם יש דרך יעילה יותר

אבל הדרך הכי פשוטה שאני חושב עליה היא לכתוב פונקציה (או אם עוד לא למדתם איזההוא לייבל) קטנה שתסובב סיביות .

שתי הפקודות ROL , ROR מסובבות את הביטים בנתון שלך ימינה ושמאלה בהתאמה .

פורסם
  • מחבר

מצאתי דרך לפתור את התרגיל ביעילות :)

תודה בכל מקרה !

אם משהו מעוניין בפתרון, אני אפרסם.

פורסם

לא בעיה

אתה לוקח את es ומציב בו את הכתובת base של הזכרון לדוגמא 2BF41h

ומתקדם בעזרת לדוגמא bx עם כתובות ההיס שלך ועושה test על כך תא עם 50

אם גדול, אתה עושה or 10101010 כמובן בהקסא

בנוגע למקרה אחר, shr/shl יעשה את העבודה

פורסם
  • מחבר

בדיוק.

רק שבמקום OR, הפעולה שצריך לבצע היא And (אני בטוח שלזה התכוונת :))

פורסם

אני כמעט משוכנע שזה or

אולי אני טועה, נסה להסביר לי למה AND כי אולי באמת אני טועה

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים