انگلیسیفرانسویاسپانیایی

Ad


فاویکون OnWorks

as31 - آنلاین در ابر

اجرای as31 در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS

این دستور as31 است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


as31 - اسمبلر اینتل 8031/8051

خلاصه


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

شرح


31 مونتاژ می کند infile.asm به یکی از چندین فرمت خروجی مختلف. خروجی خواهد بود
در فایلی به نام infile.obj. پسوند .asm مورد نیاز است.

OPTIONS


گزینه ها باید قبل از نام فایل ورودی ظاهر شوند. هر دو گزینه اختیاری هستند. متن از
هر پرچم باید در همان آرگومان پرچم ظاهر شود. به عنوان مثال، "-Fod" معتبر است
استدلال، اما "-F od" نیست.

-h این امر باعث می شود اسمبلر یک پیام پرمخاطب را که گزینه های خود را توصیف می کند چاپ کند.
پیام با خطای استاندارد نوشته شده است.

-l این گزینه به اسمبلر می گوید که یک فایل لیست را نیز تولید کند. یک لیست خواهد بود
در فایل infile.lst قرار داده شده است. جایی که 'infile' فایلی است که در حال مونتاژ است.
این گزینه ممکن است در هر جایی قبل از infile.asm ظاهر شود. گزینه باید به صورت ایزوله رخ دهد
در خط فرمان

فایل لیست کد تولید شده اسمبلر را به صورت هگز و حداکثر 60 کاراکتر نشان می دهد
از فایل منبع نگهداری می شوند.

-s این باعث می شود اسمبلر خروجی را روی خروجی استاندارد بنویسد.

-v این باعث می شود اسمبلر شماره نسخه را در خروجی استاندارد چاپ کند.

-آرگ این گزینه رشته خاصی از فرمت را مشخص می کند که به فرمت ارسال می شود
ژنراتور هر دو فرمت "tdr" و فرمت های srecord از این گزینه استفاده می کنند.

-فرمت
این گزینه فرمت خروجی مورد استفاده را مشخص می کند.

در حال حاضر تنها گزینه های موجود برای این کار عبارتند از:

hex این فرمت فرمت Intel HEX است که توسط تعدادی از EPROM انتظار می رود
برنامه نویسان و دیباگر PAULMON. برای استفاده با برخی از برنامه نویسان،
پسوند فایل خروجی ممکن است باید به .HEX تغییر یابد تا توسط آن شناسایی شود
برنامه نویس خیر - گزینه A استفاده شده است. این فرمت باید به صورت پیش فرض باشد
گزینه no -F استفاده شده است.

tdr این فرمت یک فایل asci از ارقام هگزا تولید می کند که به این شکل فرمت شده اند، بنابراین
که می توان آنها را توسط دیباگر tdr خواند. یک آرگومان می تواند مشخص شود (نگاه کنید به
-A option) که یک رشته فرمت خاص را به مولد فرمت ارسال می کند.
در این مورد، رشته آرگومان یک افست را برای افزودن به آن نشان می دهد
شمارنده مکان این افست به صورت اعشاری مشخص می شود و به طور پیش فرض روی است
64*1024 (0x10000). برای تعیین و افست 100، به "-Ftdr
-A100" هنگام فراخوانی اسمبلر.

بایت این قالب به سادگی یک آدرس و یک بایت در هر خط، در ascii است. نه - الف
گزینه استفاده می شود.

od این فرمت شبیه به خروجی از است od(1). قالب شامل یک
آدرس به دنبال شانزده بایت هگزادسیمال و به دنبال آن معادل
ASCII. خیر - گزینه A استفاده شده است.

srec2، srec3، srec4
مولد رکورد قادر به تولید خروجی با هر یک از 2، 3،
یا آدرس های 4 بایتی برای تنظیم آدرس پایه می توان از گزینه -A استفاده کرد
افست، پیش فرض در اینجا 0x0000 است (برخلاف tdr).

توجه: این اسمبلر اجازه می دهد تا فرمت های خروجی را بسط دهید تا بسیاری از فرمت ها را شامل شود
فرمت های خروجی مختلف

-اوفیل این گزینه به اسمبلر می گوید که خروجی را در یک فایل بنویسد.

مونتاژ کننده دستورالعمل ها


این اسمبلر فرمت های دستورالعمل استاندارد 8031/8051 را می پذیرد. در زیر لیستی از
دستورالعمل ها و حالت های آدرس دهی

چرخه های دستورالعمل بایت
----------- ----- ------
ACALL adr11 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، بیت 2 24
مستقیم ANL، #data8 3 24
مستقیم ANL، A 2 12
CJNE @Ri، #data8، rel 3 24
CJNE A, #data8, rel 3 24
CJNE A، مستقیم، رابطه 3 24
CJNE Rn، #data8، rel 3 24
CLR A 1 12
CLR C 1 12
بیت CLR 2 12
CPL A 1 12
CPL C 1 12
بیت CPL 2 12
DA A 1 12
دسامبر @Ri 1 12
دسامبر A 1 12
دسامبر DPTR 1 12
دسامبر 1 12
دسامبر مستقیم 2 12
DIV AB 1 48
DJNZ Rn، rel 2 24
DJNZ direct، rel 3 24
INC @Ri 1 12
INC A 1 12
INC DPTR 1 24
INC Rn 1 12
INC مستقیم 2 12
بیت JB، rel 3 24
بیت JBC، رابطه 3 24
JC نسبی 2 24
JMP @A + DPTR 1 24
JMP @DPTR + A 1 24
بیت JNB، رابطه 3 24
JNC نسبی 2 24
JNZ نسبت 2 24
JZ نسبی 2 24
LCALL addr16 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 direct, #data8 3 24
MOV direct, @Ri 2 24
MOV direct, A 2 12
MOV direct, 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
ORL A، #data8 2 12
ORL A، @Ri 1 12
ORL A، Rn 1 12
ORL A، مستقیم 2 12
ORL C، /bit 2 24
ORL C، !bit 2 24
ORL C، بیت 2 24
مستقیم ORL، #data8 3 24
مستقیم ORL، A 2 12
POP direct 2 24
PUSH direct 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 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 direct، #data8 3 12
XRL مستقیم، A 2 12

مونتاژ کننده دستورالعمل ها


As31 شامل دستورالعمل های اسمبلر زیر است:

.ORG expr
شروع به مونتاژ در آدرس مشخص شده توسط عبارت expr کنید. خطایی رخ می دهد
اگر اسمبلر شروع به مونتاژ در فضای آدرسی که قبلا وجود داشته است، کند
مونتاژ شده در

نماد EQU، expr
نماد را روی مقدار expr قرار دهید. مقدار expr باید در طول اول شناخته شود
عبور، زمانی که خط حاوی .EQU مواجه می شود.

.BYTE expr, expr, ...
بایت های مشخص شده توسط عبارت را در حافظه جمع کنید. یک رشته نیز ممکن است باشد
با این بخشنامه مشخص شده است.

WORD expr, expr, ...
کلمات مشخص شده توسط عبارت را در حافظه جمع کنید. سفارش بایت
استفاده شده، همان چیزی است که توسط 8031 ​​استفاده می شود.

نماد .FLAG1، نماد.[0-7]
نماد1 را به آدرس بیت مشخص شده توسط نماد تنظیم می کند.[0-7] عبارت. جایی که
[0-7] یک کاراکتر بین 0 و 7 را نشان می دهد
ببینید آیا آدرس بیت معتبری است یا خیر.

.END این دستورالعمل نادیده گرفته شده است.

.SKIP expr
مقدار expr را به شمارنده مکان اضافه می کند. برای رزرو یک بلوک استفاده می شود
داده های اولیه Expr باید بر حسب بایت باشد.

واژگانی کنوانسیون ها


- همه کاراکترهای زیر نقطه ویرگول نادیده گرفته می شوند تا زمانی که با خط جدید مواجه شویم.

- همه اعداد به طور پیش فرض اعشاری هستند، مگر اینکه عدد با یکی از موارد زیر شروع شود:

0x یا 0X
این یک عدد هگزادسیمال را نشان می دهد. یعنی 0x00ff

0b یا 0B
این یک عدد باینری را نشان می دهد. (1 و 0). یعنی 0b1100110010

0 این یک عدد اکتالی را نشان می دهد. یعنی 0377

- همه اعداد به طور پیش فرض اعشاری هستند، مگر اینکه عدد به یکی از موارد زیر ختم شود
شخصیت ها:

b یا B این یک عدد باینری را نشان می دهد. مگر اینکه 0x در بالا استفاده شده باشد. یعنی 1010101b

h یا H این همیشه یک عدد هگز را نشان می دهد، اما اگر اولین کاراکتر باشد
غیر عددی، پس باید 0x یا 0 مشخص شود. این از گیج شدن جلوگیری می کند
اسمبلر به این فکر می کند که عدد هگز یک نماد است. به عنوان مثال: 0ffh،
0xffh، 0XffH، 20h، 0x20 و 020h ابزاری برای تعیین یک عدد شش رقمی معتبر هستند. ولی
موارد زیر نیستند: ffh، 0ff.

d یا D این یک عدد را به اعشار وادار می کند. مگر اینکه از 0X استفاده شده باشد. یعنی 129d

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 را می توان با حروف بزرگ یا کوچک بدون اشتباه اسمبلر وارد کرد. اینها
اما کلمات را نمی توان به عنوان نماد کاربر تعریف کرد. هر نماد کاربر ممکن است استفاده شود، و
مورد حفظ خواهد شد بنابراین نمادهای کاربری "foo" و "foo" متفاوت هستند، اما
"addc" همان "aDdC" است.

- یک نماد می تواند هر کاراکتر عددی آلفا به اضافه خط زیر ('_') باشد.

- عبارات در اکثر جاهایی که یک مقدار یا نماد مورد نیاز است پذیرفته می شود. یک
عبارت از عملگرهای زیر تشکیل شده است. همه عملگرها به عدد صحیح ارزیابی می شوند
اشیاء (اپراتورهای اولویت بالاتر لیست شده در ابتدا):

- منهای Unary

& بیت عاقلانه AND.

| بیت عاقلانه OR.

* ضرب عدد صحیح

/ تقسیم عدد صحیح

درصد مدول عدد صحیح

+ جمع عدد صحیح

- تفریق عدد صحیح

- علاوه بر این عملگرها، ممکن است از یک علامت ویژه '*' برای نشان دادن آن استفاده شود
شمارنده موقعیت فعلی

مثال ها


در زیر یک نمونه برنامه اسمبلی آورده شده است.

.org 0
شروع: mov P3, #0xff ; از fns جایگزین در P3 استفاده کنید
; چراغ های P1 معکوس هستند.
setb F0 ; بالا رفتن
mov A، #0x01 ; بیت اولیه

بنویسید: cpl A ; آن را بنویس
mov P1, A
cpl A
تاخیر تماس
jb F0, climbup ; صعود از کدام سمت؟

climbdn: rr A ; پایین - به راست تغییر دهید
jnb ACC.0, نوشتن ; بازگشت برای بیشتر
setb F0
ajmp بنویس

صعود: rl A ; بالا - جابجایی به چپ
jnb ACC.7, نوشتن ; بازگشت برای بیشتر
clr F0
ajmp بنویس
.پایان ؛ این بخشنامه نادیده گرفته شد

AUTHORS


کن استافر (دانشگاه کلگری)[ایمیل محافظت شده]>
مارتین لانگر[ایمیل محافظت شده]>

AS31(1)

با استفاده از خدمات onworks.net از as31 به صورت آنلاین استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

دستورات لینوکس

Ad