אנגליתצרפתיתספרדי

Ad


סמל OnWorks

as31 - מקוון בענן

הפעל as31 בספק אירוח בחינם של OnWorks על אובונטו מקוון, פדורה מקוון, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

זוהי הפקודה as31 שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


as31 - אסמבלר של אינטל 8031/8051

תַקצִיר


as31 [-h] [-l] [-s] [-v] [-Aarg] [-Ffmt] [-Ofile] infile.asm

תיאור


As31 מרכיב infile.asm לאחד מכמה פורמטי פלט שונים. הפלט יהיה
בקובץ בשם infile.obj. נדרשת סיומת .asm.

אפשרויות


האפשרויות חייבות להופיע לפני שם קובץ הקלט. שתי האפשרויות הן אופציונליות. הטקסט של
כל דגל חייב להופיע באותו ארגומנט כמו הדגל. לדוגמה, "-Fod" הוא תקף
טיעון, אבל "-F od" לא.

-h זה גורם להרכב להדפיס הודעה מילולית המתארת ​​את האפשרויות שלו.
ההודעה נכתבת לשגיאה הסטנדרטית.

-l אפשרות זו אומרת לאסמבלר ליצור גם קובץ רישום. רישום יהיה
ממוקם בקובץ infile.lst. כאשר 'infile' הוא הקובץ שנמצא בהרכבה.
אפשרות זו עשויה להופיע בכל מקום לפני infile.asm. האפשרות חייבת להתרחש מבודדת
בשורת הפקודה.

קובץ הרישום מציג את הקוד שנוצר על ידי האסמבלר ב-hex, ועד 60 תווים
נשמרים מקובץ המקור.

-s זה גורם לאסמבלר לכתוב פלט לפלט סטנדרטי.

-v זה גורם להרכב להדפיס מספר גרסה לפלט הסטנדרטי.

-ארג אפשרות זו מציינת מחרוזת ספציפית לפורמט המועברת לפורמט
גֵנֵרָטוֹר. גם פורמט "tdr" וגם פורמטים של srecord משתמשים באפשרות זו.

-פורמט
אפשרות זו מציינת את פורמט הפלט שבו יש להשתמש.

כרגע האפשרויות היחידות הזמינות עבור זה הן:

hex פורמט זה הוא פורמט Intel HEX אשר צפוי על ידי מספר EPROM
מתכנתים וניפוי הבאגים של PAULMON. לשימוש עם מתכנתים מסוימים, ה
ייתכן שיהיה צורך לשנות את הסיומת של קובץ הפלט ל-.HEX כדי להיות מזוהה על ידי
המתכנת. לא נעשה שימוש באפשרות -A. פורמט זה צריך להיות ברירת המחדל if
אין שימוש באפשרות -F.

tdr פורמט זה יוצר קובץ asci של ספרות hex מעוצבות בצורה כזו, אז
שניתן לקרוא אותם על ידי מאתר הבאגים של tdr. ניתן לציין ארגומנט (ראה
-אופציה) שתעביר מחרוזת ספציפית לפורמט למחולל הפורמטים.
במקרה זה, מחרוזת הארגומנט מייצגת היסט שיש להוסיף ל-
מונה מיקום. היסט זה מצוין בעשרוני ובברירת המחדל הוא
64*1024 (0x10000). כדי לציין ולקזז 100, תצטרך "-Ftdr
-A100" בעת הפעלת ה-assembler.

byte פורמט זה הוא פשוט כתובת ובית בכל שורה, ב-ascii. לא -א
נעשה שימוש באופציה.

od פורמט זה דומה לפלט מ od(1). הפורמט מורכב מ-
כתובת ואחריה שישה עשר בתים הקסדצימליים, ואחריהם המקבילה
ASCII. לא נעשה שימוש באפשרות -A.

srec2, srec3, srec4
מחולל הרשומות מסוגל לייצר פלט עם כל אחד מ-2, 3,
או כתובות של 4 בתים. ניתן להשתמש באפשרות -A כדי להגדיר את כתובת הבסיס
offset, ברירת המחדל כאן היא 0x0000 (בניגוד ל tdr).

הערה: אסמבלר זה מאפשר להרחיב את פורמטי הפלט כדי לכלול רבים
פורמטים שונים של פלט.

-Ofile אפשרות זו אומרת לאסמבלר לכתוב את הפלט לקובץ.

אסמבלר הוראות


מאסף זה מקבל פורמטים סטנדרטיים של הוראות 8031/8051. להלן רשימה של
הוראות ודרכי התייחסות.

מחזורי בייטי הוראות
----------- ----- ------
ACALL addr11 2 24
ADD A, #data8 2 12
ADD A, @Ri 1 12
ADD A, Rn 1 12
ADD A, ישיר 2 12
ADDC A, #data8 2 12
ADDC A, @Ri 1 12
ADDC A, Rn 1 12
ADDC A, ישיר 2 12
AJMP adr11 2 24
ANL A, #data8 2 12
ANL A, @Ri 1 12
ANL A, Rn 1 12
ANL A, ישיר 2 12
ANL C, /bit 2 24
ANL C, !bit 2 24
ANL C, bit 2 24
ANL ישיר, #data8 3 24
ANL ישיר, A 2 12
CJNE @Ri, #data8, rel 3 24
CJNE A, #data8, rel 3 24
CJNE A, ישיר, rel 3 24
CJNE Rn, #data8, rel 3 24
CLR A 1 12
CLR C 1 12
CLR bit 2 12
CPL A 1 12
CPL C 1 12
CPL bit 2 12
DA A 1 12
DEC @Ri 1 12
דצמבר א 1 12
DEC DPTR 1 12
DEC Rn 1 12
דצמבר ישיר 2 12
DIV AB 1 48
DJNZ Rn, rel 2 24
DJNZ ישיר, rel 3 24
INC @Ri 1 12
INC A 1 12
INC DPTR 1 24
INC Rn 1 12
INC ישיר 2 12
JB bit, rel 3 24
ביט JBC, rel 3 24
JC קרוב משפחה 2 24
JMP @A + DPTR 1 24
JMP @DPTR + A 1 24
ביט JNB, rel 3 24
קרוב משפחה של JNC 2 24
יחסית JNZ 2 24
JZ relative 2 24
LCALL adr16 3 24
LJMP adr16 3 24
MOV @Ri, #data8 2 12
MOV @Ri, A 1 12
MOV @Ri, ישיר 2 24
MOV A, #data8 2 12
MOV A, @Ri 1 12
MOV A, Rn 1 12
MOV A, ישיר 2 12
MOV C, סיביות 2 12
MOV DPTR, #data16 3 24
MOV Rn, #data8 2 12
MOV Rn, A 1 12
MOV Rn, ישיר 2 24
סיביות MOV, C 2 24
MOV ישיר, #data8 3 24
MOV ישיר, @Ri 2 24
MOV ישיר, A 2 12
MOV ישיר, Rn 2 24
MOV ישיר, ישיר 3 24
MOVC A, @A + DPTR 1 24
MOVC A, @A + PC 1 24
MOVC A, @DPTR + A 1 24
MOVC A, @PC + A 1 24
MOVX @DPTR, A 1 12
MOVX @Ri, A 1 24
MOVX A, @DPTR 1 24
MOVX A, @Ri 1 24
MUL AB 1 48
NOP 1 12
בז"ן A, #data8 2 12
ORL A, @Ri 1 12
בז"ן A, Rn 1 12
בז"ן א', ישיר 2 12
ORL C, /bit 2 24
ORL C, !bit 2 24
ORL C, bit 2 24
בז"ן ישיר, #data8 3 24
בז"ן ישיר, A 2 12
POP ישיר 2 24
PUSH ישיר 2 24
RET 1 24
RETI 1 24
RL A 1 12
RLC A 1 12
RR A 1 12
RRC A 1 12
SETB A 1 12
SETB bit 2 12
יחסית SJMP 2 24
SUBB A, #data8 2 12
SUBB A, @Ri 1 12
SUBB A, Rn 1 12
SUBB A, ישיר 2 12
SWAP A 1 12
XCH A, #data8 2 12
XCH A, @Ri 1 12
XCH A, Rn 1 12
XCH A, ישיר 2 12
XCHD A, #data8 2 12
XCHD A, @Ri 1 12
XCHD A, Rn 1 12
XCHD A, ישיר 2 12
XRL A, #data8 2 12
XRL A, @Ri 1 12
XRL A, Rn 1 12
XRL A, ישיר 2 12
XRL ישיר, #data8 3 12
XRL ישיר, A 2 12

אסמבלר הוראות


As31 כולל את הנחיות ההרכבה הבאות:

‎.ORG expr
התחל להרכיב בכתובת שצוינה בביטוי expr. מתרחשת שגיאה
אם ההרכב מתחיל להרכיב דרך מרחב כתובות שהיה בעבר
מורכב לתוך.

סמל .EQU, expr
הגדר את הסמל לערך של expr. הערך של expr חייב להיות ידוע במהלך הראשון
לעבור, כאשר נתקלים בשורה המכילה את ה-.EQU.

‎.BYTE expr, expr, ...
הרכיב את הבתים שצוין על ידי הביטוי לתוך הזיכרון. מחרוזת עשויה להיות גם
המצוין בהנחיה זו.

.WORD expr, expr, ...
הרכיבו את המילים שצוינו על ידי הביטוי לזיכרון. סדר הבתים
בשימוש, הוא זה המשמש את ה-8031.

.FLAG symbol1, symbol.[0-7]
מגדיר את symbol1 לכתובת הסיביות שצוינה בביטוי הסמל.[0-7]. איפה
[0-7] מציין תו בין 0 ל-7. כתובת הסיביות המתקבלת מסומנת ל-
בדוק אם זו כתובת ביט חוקית.

.END מתעלמים מהנחיה זו.

.SKIP expr
מוסיף את הערך של expr למונה המיקום. משמש להזמנת בלוק של
נתונים לא מאותחלים. Expr צריך להיות בבתים.

לֵקסִיקָלִי מוסכמות


- מתעלמים מכל התווים העוקבים אחר נקודה-פסיק עד שנתקלת בשורה חדשה.

- כל המספרים כברירת מחדל לעשרוני, אלא אם המספר מתחיל באחד מהבאים:

0x או 0X
זה מציין מספר הקסדצימלי. כְּלוֹמַר. 0x00ff

0b או 0B
זה מציין מספר בינארי. (1 ו-0). כְּלוֹמַר. 0b1100110010

0 זה מציין מספר אוקטלי. כְּלוֹמַר. 0377

- כל המספרים כברירת מחדל לעשרוני, אלא אם המספר מסתיים באחד מהבאים
תווים:

b או B זה מציין מספר בינארי. אלא אם נעשה שימוש ב-0x למעלה. כְּלוֹמַר. 1010101ב

h או H זה תמיד מציין מספר hex, אולם אם התו הראשון הוא
לא מספרי, אז יש לציין 0x או 0. זה ימנע בלבול
האסמבלר חושב שמספר משושה הוא סמל. לדוגמה: 0ffh,
0xffh, 0XffH, 20h, 0x20 ו-020h הם אמצעים לציון hexdigit חוקי. אבל
הדברים הבאים אינם: ffh, 0ff.

d או D זה מאלץ מספר לעשרוני. אלא אם נעשה שימוש ב-0X. כְּלוֹמַר. 129ד

o או O זה גורם לפירוש המספר כאוקטלי. כְּלוֹמַר. 377o

- ניתן להזין קבוע תו בתור 'c' כאשר c הוא תו כלשהו. \b, \n, \r,
\t, \' \0 גם תקפים. ניתן להשתמש בקבוע תו בכל מקום שהוא מספר שלם
ערך יכול.

- מחרוזת מוזנת כקבוצה של תווים המוקפים במירכאות כפולות "". מחרוזת
תקף רק עם הוראת BYTE. \b, \n, \r, \t, \" הם גם בריחה חוקיים.
עם זאת \0 לא.

- הוראות, הנחיות והסמלים: R0, R1, R2, R3, R4, R5, R6, R7, A, AB,
ו-C ניתן להזין באותיות גדולות או קטנות ללא בלבול assembler. אלה
עם זאת, לא ניתן להגדיר מילים כסמל משתמש. ניתן להשתמש בכל סמל משתמש, ו
המקרה יישמר. אז סמלי המשתמש "פו" ו"פו" שונים, אבל
"addc" זהה ל-"aDdC".

- סמל יכול להיות כל תו אלפא נומרי בתוספת הקו התחתון ('_').

- ביטויים מתקבלים ברוב המקומות שבהם יש צורך בערך או סמל. א
הביטוי מורכב מהאופרטורים הבאים. כל האופרטורים מפנים למספר שלם
אובייקטים (אופרטורים בעלי קדימות גבוהה יותר הרשומים תחילה):

- מינוס אחד

& AND.

| Bit-Wise OR.

* כפל שלמים.

/ חלוקה שלמים

% מודול מספר שלם

+ תוספת מספר שלם.

- חיסור מספר שלם.

- בנוסף לאופרטורים אלה, ניתן להשתמש בסמל מיוחד '*' כדי לייצג את
מונה המיקום הנוכחי.

דוגמאות


להלן תוכנית הרכבה לדוגמה.

.org 0
התחל: mov P3, #0xff ; השתמש ב-fns חלופי ב-P3
; נוריות ב-P1 הפוכות.
setb F0; לטפס
mov A, #0x01 ; סיביות ראשונית

כתוב: cpl A ; תכתוב את זה
mov P1, A
cpl א
עיכוב שיחה
jb F0, climbup; מטפס לאיזה כיוון?

climbdn: rr A ; למטה - העבר ימינה
jnb ACC.0, כתוב; לחזור לעוד
setb F0
ajmp לכתוב

climbup: rl A ; למעלה - העבר שמאלה
jnb ACC.7, כתוב; לחזור לעוד
clr F0
ajmp לכתוב
.end ; ההוראה הזו התעלמה.

מחברים


קן שטאופר (אוניברסיטת קלגרי)[מוגן בדוא"ל]>
מרטין לנגר[מוגן בדוא"ל]>

AS31(1)

השתמש ב-as31 באינטרנט באמצעות שירותי onworks.net


שרתים ותחנות עבודה בחינם

הורד אפליקציות Windows & Linux

פקודות לינוקס

Ad