6 תשובות
שואל השאלה:
תודה לעוזרים. צריך בשפת אסמבלי
תודה לעוזרים. צריך בשפת אסמבלי
זה אסמבלר 8051 או 8086?
שואל השאלה:
8086
8086
start: mov ax ,0
mov bx ,1
loop: add bx ,ax
add ax ,bx
cmp bx ,55
jne loop
זה החישוב של הסדרת פיבונאצי
mov bx ,1
loop: add bx ,ax
add ax ,bx
cmp bx ,55
jne loop
זה החישוב של הסדרת פיבונאצי
start: mov ax,0
mov bx,0
mov si,0
mov dx,0
mov cx ,0
(loop: mov ax ,a(si
mov cx,si
add si,1
(mov bx ,a(si
cmp ax,bx
jb loop
(xchg a(cx),a(si
cmp cx,0
je loop
sub si ,2
add dx,1
cmp dx,9
jc end
jump loop
end:end (שכחתי איך מסיימים את התוכנית אז פה צריכה להופיע פקודה לסיום התוכנית
התרגיל של המערך עשיתי אותו בצורה שונה במקום לכתוב קוד ארוך שכל פעם צריך לכתוב את מספר התא ... כתבתי קוד שפשוט בודק אותם לבד
אני אסביר איך זה הולך..
יש מערך קיים עם מספרים
הקוד פונה לתוכן של תא ראשון ומשווה אותו לתוכן של תא שני על ידי העלת אוגר הכתובות ב1
אם הוא קטן אז זה סבבה והסדר טוב אז זה עובר לתא השני מול התא השלישי ובודק אותם אם זה טוב עובר לתא השלישי והתא הרביעי ... בקיצור תמיד בודק את התא האחרון שנבדק והתא שאחריו
אם זה לא טוב אז הוא מחליף בינהם ומוריד 2 מאוגר הכתובות מה שבעצם גורם לו לחזור שני תאים לפני וחבדוק אותם מול התא החדש ולהחליף אותם בהתאם
ככה עד שהוא מגיע ל8 וברגע שמגיע ל8 הוא מפסיק אפשר לשנותאת הכמות לכמה שרוצים על ידי שינוי ההשווה בין dx לכמות הרצויה
mov bx,0
mov si,0
mov dx,0
mov cx ,0
(loop: mov ax ,a(si
mov cx,si
add si,1
(mov bx ,a(si
cmp ax,bx
jb loop
(xchg a(cx),a(si
cmp cx,0
je loop
sub si ,2
add dx,1
cmp dx,9
jc end
jump loop
end:end (שכחתי איך מסיימים את התוכנית אז פה צריכה להופיע פקודה לסיום התוכנית
התרגיל של המערך עשיתי אותו בצורה שונה במקום לכתוב קוד ארוך שכל פעם צריך לכתוב את מספר התא ... כתבתי קוד שפשוט בודק אותם לבד
אני אסביר איך זה הולך..
יש מערך קיים עם מספרים
הקוד פונה לתוכן של תא ראשון ומשווה אותו לתוכן של תא שני על ידי העלת אוגר הכתובות ב1
אם הוא קטן אז זה סבבה והסדר טוב אז זה עובר לתא השני מול התא השלישי ובודק אותם אם זה טוב עובר לתא השלישי והתא הרביעי ... בקיצור תמיד בודק את התא האחרון שנבדק והתא שאחריו
אם זה לא טוב אז הוא מחליף בינהם ומוריד 2 מאוגר הכתובות מה שבעצם גורם לו לחזור שני תאים לפני וחבדוק אותם מול התא החדש ולהחליף אותם בהתאם
ככה עד שהוא מגיע ל8 וברגע שמגיע ל8 הוא מפסיק אפשר לשנותאת הכמות לכמה שרוצים על ידי שינוי ההשווה בין dx לכמות הרצויה
אני שנתיים לא נגעתי בזה אז אני קצץ חלוד
מקווה שלא עשיתי טעויות
מקווה שלא עשיתי טעויות
באותו הנושא: