עבור לתוכן

שאלה בקשר לאסמבלי[אסמבלר] (דחוף)

Featured Replies

פורסם

איך אני מאתחל תא זיכרון (אני זוכר משהוא עם db ואז כותבים את תא הזכרון)?

אני יודע שכותבים את זה לפני הקוד עצמו איפו שהוא בתחילת התוכנית

פורסם

אתה למעשה מתכוון ליצירת מערך (שמירת מקום בזכרון) אני משער

<varname> db <size> dup(<NumberOfBytes>)

מערך מאותחל ב1,2,3,4,5:

<varname> db 1,2,3,4,5

אתה יכול להקצות גם מילים בdw תמילים כפולות בdd וכדומה.

אתה יכול להגדיר אותו היכן שבא לך, בדר"כ נהוג להגדירו בData Segment

פורסם
  • מחבר

לא אני לא מתכוון למערך

לדומא אני רוצה לכניס לתא 800(באקסה) את 00

אז יש דרך לעשות את זה בלי MOV וכאלה

לכתוב משהוא לפני הקוד עצמו למלעה רק שלצערי אני לא זוכר מה צריך לכתוב

פורסם

אם אתה משתמש בTASM אתה יכול לעשות את זה בעצמך אם אתה רוצה

תלחץ עם העכבר על הימני באזור של הזכרון תלחץ על GOTO תרשום את המקום בזכרון שאתה רוצה ואז פשוט תלחץ על השורה ותרשום מה שאתה רוצה.

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

פורסם
  • מחבר

יש דרך! אני יכתוב מה שאני זוכר בערך

db     800h
35

משהוא כזה

אולי עכשיו זה יותר מובן למה אני תכוון

פורסם

מערכת ההעלה שולטת ע המיקום האבסולוטי של התוכנית בזכרון.

ולכן במהלך כתיבת קוד לא ניתן לגשת לתא ספציפי, רק להיסט

פורסם
  • מחבר

בסופו של דבר מצאתי את מה שחיפשתי וזה הולך כך:

dseg   segment
org 800h
db 37h
dseg ends

הסבר: 800H זה התא זכרון המאותחל בערך 37H

פורסם

לא ממש.

1. מה שביצעת זו הקצאת זיכרון של800 הקסה בתים (org 800h).

2. ולאחריו בית בודד ובו הערך 37 בהקסה.

את שניהם הקצאת במערך שלו קראת dseg שבטח בכוונתך לשייך לDS

פורסם
  • מחבר

המרצה שלי אמרה שכך מתאתחילם תא זכרון אז יש מצב שאתה צודק ויש מצב שלא.

בכל מקרה כשאני בודק את זה ב CPU אני רואה את זה מאותחל

פורסם

תסתקל אם במקרה כל התאים מסביבו גם כן מאותחלים ל37H. אם כן המרצה שלך טועה.

כך או כך אני בטוח שככה מגדירים מערך באסמבלר.

פורסם

שוב, אכן הקצאת תא זכרון מאותחל ב37h בהיסט 800h.

אין מדובר בכתובת אבסולוטית, אלא -היסט מסגמנט הData

פורסם

עדיין מלמדים segmented architectures!? אלוהים אדירים, כל בעל נסיון שמח שהדברים האלה עברו מהעולם.

פורסם

עכשיו נשאלת השאלה - למה צריך לפרנס כמה טיפוסים פרה-היסטוריים ?

ארכיון

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

דיונים חדשים