англійськафранцузькаіспанська

Ad


Значок OnWorks

as31 - онлайн у хмарі

Запустіть as31 у безкоштовному хостинг-провайдері OnWorks через Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

Це команда as31, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн емулятор Windows або онлайн емулятор MAC OS

ПРОГРАМА:

ІМ'Я


as31 – асемблер Intel 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. Варіант має відбуватися окремо
у командному рядку.

Файл списку показує згенерований асемблером код у шістнадцятковому форматі та до 60 символів
зберігаються з вихідного файлу.

-s Це змушує асемблер записувати вивід у стандартний вивід.

-v Це змушує асемблер друкувати номер версії на стандартний вивід.

-Aarg Цей параметр визначає певний формат рядка, який передається у формат
генератор. Обидва формати "tdr" і формати srecord використовують цей параметр.

-Fформат
Цей параметр визначає вихідний формат, який буде використано.

Наразі для цього доступні лише такі варіанти:

hex Цей формат є форматом Intel HEX, який очікується для багатьох EPROM
програмістів і налагоджувач PAULMON. Для використання з деякими програмістами, the
можливо, доведеться змінити розширення вихідного файлу на .HEX, щоб його розпізнавало
програміст. Ні - Використовується варіант. Цей формат має бути типовим, якщо
параметр -F не ​​використовується.

tdr Цей формат генерує файл asci із шістнадцятковими цифрами, відформатованим таким чином
що їх можна прочитати налагоджувачем tdr. Можна вказати аргумент (див
-A option), який передасть певний форматний рядок до генератора формату.
У цьому випадку рядок аргументу представляє зсув, який потрібно додати до
лічильник розташування. Це зміщення вказується в десятковій системі і за замовчуванням має значення
64*1024 (0x10000). Щоб вказати зсув 100, вам знадобиться "-Ftdr
-A100" під час виклику асемблера.

байт Цей формат — це просто адреса та байт у кожному рядку в форматі ASCII. Ні -А
використовується варіант.

od Цей формат подібний до виведення з od(1). Формат складається з
адресу, за якою слідують шістнадцять шістнадцяткових байтів, після яких йде еквівалент
ASCII. Ні - Використовується варіант.

srec2, srec3, srec4
Генератор srecord здатний генерувати вихідні дані з будь-яким із 2, 3,
або 4-байтові адреси. Параметр -A можна використовувати для встановлення базової адреси
зміщення, за замовчуванням тут 0x0000 (на відміну від tdr).

ПРИМІТКА. Цей асемблер дозволяє розширювати вихідні формати, щоб включати багато
різні вихідні формати.

-Офіле Ця опція вказує асемблеру записати результат у файл.

МОНТАЖНИК ІНСТРУКЦІЯ


Цей асемблер підтримує стандартні формати інструкцій 8031/8051. Нижче наведено список
інструкції та режими адресації.

ІНСТРУКЦІЯ БАЙТИ ЦИКЛИ
----------- ----- ------
ACALL addr11 2 24
ДОДАТИ A, #data8 2 12
ДОДАТИ A, @Ri 1 12
ДОДАТИ A, Rn 1 12
ДОДАТИ А, пряме 2 12
ADDC A, #дані8 2 12
ADDC A, @Ri 1 12
ADDC A, Rn 1 12
ADDC A, прямий 2 12
AJMP addr11 2 24
ANL A, #data8 2 12
ANL A, @Ri 1 12
ANL A, Rn 1 12
ANL A, прямий 2 12
ANL C, /біт 2 24
ANL C, !біт 2 24
ANL C, біт 2 24
ANL direct, #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 біт 2 12
CPL A 1 12
CPL C 1 12
CPL біт 2 12
DA A 1 12
DEC @Ri 1 12
ГРУДЕНЬ A 1 12
ГРУД ДПТР 1 12
DEC Rn 1 12
DEC direct 2 12
DIV AB 1 48
DJNZ Рн, відн.2 24
DJNZ direct, rel 3 24
INC @Ri 1 12
INC A 1 12
ІНК ДПТР 1 24
INC Rn 1 12
INC direct 2 12
JB біт, 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 родич 2 24
LCALL addr16 3 24
Адреса LJMP16 3 24
MOV @Ri, #дані8 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
МОВ ДПТР, #дані16 3 24
MOV Rn, #дані8 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 прямий, Rn 2 24
MOV прямий, прямий 3 24
MOVC A, @A + DPTR 1 24
MOVC A, @A + ПК 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, /біт 2 24
ORL C, !біт 2 24
ORL C, біт 2 24
ORL direct, #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
ОБМІН A 1 12
XCH A, #дані8 2 12
XCH A, @Ri 1 12
XCH A, Rn 1 12
XCH A, прямий 2 12
XCHD A, #дані8 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. Сталася помилка
якщо асемблер починає збирання в адресному просторі, який був раніше
зібрані в.

.EQU символ, вираз
Установити для символу значення виразу. Значення виразу має бути відоме під час першого
проходити, коли зустрічається рядок, що містить .EQU.

.BYTE вираз, вираз, ...
Зберіть байти, визначені виразом, у пам’ять. Також може бути рядок
визначені цією директивою.

.WORD вираз, вираз, ...
Зберіть по пам’яті слова, задані виразом. Упорядкування байтів
використовується, це те, що використовується 8031.

.FLAG символ1, символ.[0-7]
Встановлює для символу1 бітову адресу, визначену виразом символ.[0-7]. Де
[0-7] позначає символ від 0 до 7. Перевіряється отримана бітова адреса
перевірте, чи це дійсна бітова адреса.

.END Ця директива ігнорується.

.SKIP вир
Додає значення виразу до лічильника розташування. Використовується для резервування блоку
неініціалізовані дані. 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".

- Символом може бути будь-який буквено-цифровий символ плюс підкреслення ('_').

- Вирази приймаються в більшості місць, де потрібне значення або символ. Ан
вираз складається з наступних операторів. Усі оператори обчислюються як ціле число
об’єкти (оператори з вищим пріоритетом перераховані першими):

- Унарний мінус

& Побітове І.

| Побітове АБО.

* Множення цілих чисел.

/ Цілочисельне ділення

% Цілий модуль

+ Ціле додавання.

- Цілочисельне віднімання.

- Крім цих операторів, для представлення можна використовувати спеціальний символ '*'
лічильник поточного розташування.

ПРИКЛАДИ


Нижче наведено приклад програми складання.

.org 0
початок: mov P3, #0xff ; використовуйте альтернативні fns на P3
; світлодіоди на P1 перевернуті.
setb F0 ; піднімаючись вгору
mov A, #0x01 ; початковий біт

напишіть: cpl A ; Напиши це
mov P1, A
капрал А
затримка виклику
jb F0, підйом; в який бік підніматися?

climbdn: rr A ; вниз - зсув вправо
jnb ACC.0, написати ; назад для більшого
setb F0
ajmp написати

сходження: rl A ; вгору - зсув вліво
jnb ACC.7, написати ; назад для більшого
clr F0
ajmp написати
.end ; ця директива проігнорована.

AUTHORS


Кен Стауффер (Університет Калгарі)[захищено електронною поштою]>
Мартін Лангер[захищено електронною поштою]>

AS31(1)

Використовуйте as31 онлайн за допомогою служб onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

Команди Linux

Ad