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

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

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


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

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

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

קוד:

TARSTART
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
 

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

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

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