עבור לתוכן

בעיה דחופה באסמבלר!

Featured Replies

פורסם

יש לי כמה בעיות באסמבלר שלא הבנתי..

אני אנסח ת'שאלות בצורה יותר מקוצרת.

1. במשתנה char1 אות אנגלית גדולה. צריך שב-char2 תושם האות העוקבת.

.model small
.stack 100h
.data
char1 db 'C'
char2 db ?
.code
start:
mov ax, @data
mov ds, ax
cmp char1, ___________
je xx
mov char2, char1
______________
jmp finish
xx: ________________
finish:
mov ax, 4ch
int 21h
end start

2. מה תהיה תוצאת החישוב ומה יהיו ערכי הדגלים CF ו-OF לאחר הביצוע של כל אחד מהבאים?

א.


mov cl, 0ffh
mov ch, 0fh
sub cl, ch

ב.


mov dl, 10000001b
sub dl, 5

ג.


mov cx, 0a000h
mob bx 0ffffh
sub cx, bx

3. רשמו מה יהיה מצב הדגלים ZF ו-CF לאחר ביצוע כל אחד מקטעי התכניות שלהלן:

א.


mov ax, 30h
cmp ax, 20h

ב.


mov dl, 10010b
mov cl, 12h
cmp dl, cl

ג.


mov bx, 100h
add bx, 1000000000b

4. כתבו תכנית המונה כמה מהמספרים הנמצאים במשתנים N3, N2, N1 הם מספרים שליליים. את המונה שימו במשתנה MondeNeg.

5.במשתנה AsciiChar נתון תו.

התכנית הרשומה למטה פותרת את הבעיה הבאה:

אם AsciiChar מכיל ספרה (כלומר, תו בין '0' ל-'9')

אזי נשים במשתנה Digit את הספרה הזאת

אם לא - נשים במשתנה Digit את התו '?'

השלימו את המקומות הריקים:


.model small
.stack 100h
.data
asciiChar DB '7'
digit DB '?'
.code
mov ax, @data
mov ds, ax
mov dl, asciiChar
cmp dl, '0'
_______________
cmp '9', dl
js sof
sub dl, '0'
_______________
sof: mov ah, 4ch
int 21h
end start

5. כתבו תכנית שתשים במשתנים char1 ו-char2 שני תווים שהם אותיות גדולות באנגלית. התכנית תשים במשתנה mone את כל התווים שישנם בין char1 ל-char2 (לרבות char2).

לדוגמה: אם char1 = 'A' char2 = 'D' נקבל mone = 4.

ואם char1 ='F' char2 = 'B' נקבל mone = 5.

תודה רבהההה למי שעוזר!!!!! יש לי מחר מבחן!!!!!!!!!!!

פורסם

1) אתה בטוח שזו השאלה?

2) OF הוא אחד אם בחיסור שאלת מהספרה האחרונה ומהספרה האחת לפני האחרונה.

CF הוא אחד אם בחיסור שאלת מהספרה האחרונה.

3) ZF יהייה 1 אם 2 המספרים שווים(או אם חיסרת ויצא 0).

4) מה כתבת ולא עבד?

5) שים לב שהתו צריך להיות בין '0' ל'9'.

6) בין המספרים 6 ל- 9 יש a9 - 6 + 1 מספרים(כולל). בין 576 ל 954 יש a954-576+1. כדי לבדוק כמה יש בין התווים, תחסר ביניהם ותוסיף אחד.

פורסם
  • מחבר

1. כן

2. אוקיי, הבנתי

3. את זה אני יודע X:

4. לא כתבתי כלום, בגלל זה אני שואל מה לכתוב

5. אז מה התשובה?

6. WTF.. לא הבנתי

פורסם

4) תתחיל לכתוב.

5) הם נתנו לך כבר חצי תשובה בהמשך הפקודות. תנסה להבין מה הם כבר ביצעו מהדרישות, ומה הם לא ביצעו. בתרגיל הספציפי הזה קל לראות לאיזה מקרה הם כבר דאגו. אתה צריך לדאוג כבר למקרה השני. תחלק את הבעיה שלך ל-3 מקרים - כאשר זה בתחום שאתה צריך, כאשר זה מתחת לתחום שאתה צריך וכאשר זה מעל התחום שאתה צריך.

6) כמה אותיות יש בין a לb? כמה אותיות יש בין a לz? כמה אותיות יש בין s ל z? כמה אותיות יש בין j ל m? תנסה למצוא נוסחא שתגיד לך כמה אותיות יש, בלי לספור אות אות עם אצבעות הידים(רמז - אתה יכול להעזר במספר האות בא"ב האנגלי).

אם a=1 ו b=2, כמה אותיות יש לך? אם a=1 ו z=26 כמה אותיות יש לך ביניהן? תיקח כמה דוגמאות כאלה, ותמצא חוקיות.

ארכיון

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

דיונים חדשים