נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: מערך באסמבלי

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
tomedia
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 12 February 2011
משתמש: מנותק/ת
הודעות: 1
נשלח בתאריך: 12 February 2011 בשעה 19:52 | IP רשוּם
ציטוט tomedia

יש לי שאלה כזו:
מערך בן 100 מספרים כולם מילה אחת.
צריך למצוא כמה מתוך המספרים האלו הם גדולים מ-0, שווים ל-0 או קטנים מ-0.
אני ממש ממש אשמח אם תאמרו לי שזה בסדר, אם לא אז איפה הטעות.

מה שאני עשיתי זה דבר כזה:

קוד:

TAR: START
MOV BX
,
OFFSET NUMBERS
MOV SI
,
0000H
MOV CX
,
0063H
MOX AX
,[BX+SI
]
ADD SI,
0002H
AGAIN
: CMP AX,
0000H
JE EFES
CMP AX
,
0000H
JL MINUS
CMP AX
,
0000H
JG GADOL
ADD SI
,
0002H
LOOP
: 
AGAIN
EFES
: 
INC ZERO
MINUS
: 
INC NEG
GADOL
: 
INC POS
JMP FINISH
NUMBERS
: DW 100 DUP
(?)
ZERO DW
POS DW
NEG DW
FINISH
: 
END 

חזרה לתחילת העמוד הצג את כרטיס החבר של tomedia חפש הודעות אחרות של tomedia
 
inHaze
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 23 November 2006
מדינה: Israel
משתמש: מנותק/ת
הודעות: 119
נשלח בתאריך: 14 February 2011 בשעה 13:52 | IP רשוּם
ציטוט inHaze

התוכנית שלך תמיד תסתיים אחרי בדיקה של המספר הראשון במערך.
נניח שהמספר הראשון שווה ל-0, במקרה זה תתבצע קפיצה לתווית
EFES ואז היא תמשיך הלאה לתוויות MINUS ו-GADOL ואז תקפוץ
לסוף התכנית.
תיקנתי כמה טעויות שהיו לך בקוד.
הקוד שלך אמור להראות כך:
קוד:

TAR: START
MOV BX,OFFSET NUMBERS
MOV SI,0000H
MOV CX,0063H
AGAIN: MOX AX,[BX+SI]
ADD SI,0002H
CMP AX,0000H
JE EFES
CMP AX,0000H
JL MINUS
CMP AX,0000H
JG GADOL
LP: LOOP AGAIN
JMP FINISH
EFES: INC ZERO
JMP LP
MINUS: INC NEG
JMP LP
GADOL: INC POS
JMP LP
NUMBERS: DW 100 DUP(?)
ZERO DW
POS DW
NEG DW
FINISH: END


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

__________________
הבלוג שלי
חזרה לתחילת העמוד הצג את כרטיס החבר של inHaze חפש הודעות אחרות של inHaze
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה