InglesPransesEspanyol

Ad


OnWorks favicon

as31 - Online sa Cloud

Patakbuhin ang as31 sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command as31 na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


as31 - Isang Intel 8031/8051 assembler

SINOPSIS


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

DESCRIPTION


Bilang31 nagtitipon infile.asm sa isa sa maraming iba't ibang mga format ng output. Ang magiging output
sa isang file na tinatawag na infile.obj. Ang .asm extension ay kinakailangan.

Opsyon


Dapat lumitaw ang mga opsyon bago ang pangalan ng input file. Ang parehong mga pagpipilian ay opsyonal. Ang teksto ng
dapat lumitaw ang bawat bandila sa parehong argumento ng bandila. Halimbawa, ang "-Fod" ay may bisa
argumento, ngunit ang "-F od" ay hindi.

-h Nagiging sanhi ito ng assembler na mag-print ng isang verbose na mensahe na naglalarawan sa mga opsyon nito.
Ang mensahe ay nakasulat sa karaniwang error.

-l Sinasabi ng opsyong ito sa assembler na bumuo din ng listing file. Ang isang listahan ay magiging
inilagay sa file na infile.lst. Kung saan ang 'infile' ay ang file na ini-assemble.
Maaaring lumitaw ang opsyong ito kahit saan bago ang infile.asm. Ang opsyon ay dapat mangyari nang nakahiwalay
sa command line.

Ipinapakita ng listing file ang assembler na nabuong code sa hex, at hanggang 60 character
ay pinanatili mula sa source file.

-s Nagiging sanhi ito ng assembler na magsulat ng output sa karaniwang output.

-v Nagiging sanhi ito ng assembler na mag-print ng numero ng bersyon sa karaniwang output.

-Aarg Ang pagpipiliang ito ay tumutukoy sa isang format na tiyak na string na ipinapasa sa format
generator. Ang parehong format na "tdr" at ang srecord na mga format ay gumagamit ng opsyong ito.

-Fformat
Tinutukoy ng mga opsyong ito ang format ng output na gagamitin.

Sa kasalukuyan, ang tanging mga opsyon na magagamit para dito ay:

hex Ang format na ito ay ang Intel HEX na format na inaasahan ng ilang EPROM
programmer at ang PAULMON debugger. Para sa paggamit sa ilang mga programmer, ang
ang extension ng output file ay maaaring kailangang baguhin sa .HEX upang makilala ng
ang programmer. Hindi -Ginagamit ang isang opsyon. Ang format na ito ay dapat ang default kung
walang -F na opsyon ang ginagamit.

tdr Ang format na ito ay bumubuo ng isang asci file ng mga hex na digit na na-format sa ganoong paraan, kaya
na mababasa sila ng debugger ni tdr. Maaaring tukuyin ang isang argumento (Tingnan
-Isang opsyon) na magpapasa ng tukoy na format na string sa generator ng format.
Sa kasong ito, ang string ng argumento ay kumakatawan sa isang offset na idaragdag sa
counter ng lokasyon. Tinukoy ang offset na ito sa decimal at nagde-default sa
64*1024 (0x10000). Upang tukuyin at i-offset ang 100, kakailanganin mo ang "-Ftdr
-A100" kapag tinawag ang assembler.

byte Ang format na ito ay isang address at isang byte lamang sa bawat linya, sa ascii. Hindi -A
ginagamit ang opsyon.

od Ang format na ito ay katulad ng output mula sa od(1). Ang pormat ay binubuo ng isang
address na sinusundan ng labing-anim na hexadecimal byte, na sinusundan ng katumbas
ASCII. Hindi -Ginagamit ang isang opsyon.

srec2, srec3, srec4
Ang srecord generator ay may kakayahang makabuo ng output sa alinman sa 2, 3,
o 4 na byte na mga address. Ang -A na opsyon ay maaaring gamitin upang itakda ang base address
offset, ang default dito ay 0x0000 (hindi katulad tdr).

TANDAAN: Ang assembler na ito ay nagbibigay-daan para sa mga format ng output na mapalawak upang maisama ang marami
iba't ibang mga format ng output.

-Ofile Ang pagpipiliang ito ay nagsasabi sa assembler na isulat ang output sa isang file.

ASSEMBLER TAGUBILIN


Ang assembler na ito ay tumatanggap ng karaniwang 8031/8051 na mga format ng pagtuturo. Nasa ibaba ang isang listahan ng
mga tagubilin at mga mode ng pagtugon.

INSTRUCTION BYTES CYCLES
----------- ----- ------
ACALL addr11 2 24
MAGDAGDAG NG A, #data8 2 12
ADD A, @Ri 1 12
ADD A, Rn 1 12
ADD A, direktang 2 12
ADDC A, #data8 2 12
ADDC A, @Ri 1 12
ADDC A, Rn 1 12
ADDC A, direktang 2 12
AJMP addr11 2 24
ANL A, #data8 2 12
ANL A, @Ri 1 12
ANL A, Rn 1 12
ANL A, direktang 2 12
ANL C, /bit 2 24
ANL C, !bit 2 24
ANL C, bit 2 24
Direktang ANL, #data8 3 24
Direktang ANL, A 2 12
CJNE @Ri, #data8, rel 3 24
CJNE A, #data8, rel 3 24
CJNE A, direkta, 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
DEC A 1 12
DEC DPTR 1 12
DEC Rn 1 12
Direktang DEC 2 12
DIV AB 1 48
DJNZ Rn, rel 2 24
Direktang DJNZ, rel 3 24
INC @Ri 1 12
INC A 1 12
INC DPTR 1 24
INC Rn 1 12
Direktang INC 2 12
JB bit, rel 3 24
JBC bit, rel 3 24
Kamag-anak ni JC 2 24
JMP @A + DPTR 1 24
JMP @DPTR + A 1 24
JNB bit, rel 3 24
Kamag-anak ng JNC 2 24
kamag-anak ng JNZ 2 24
JZ kamag-anak 2 24
LCALL addr16 3 24
LJMP addr16 3 24
MOV @Ri, #data8 2 12
MOV @Ri, A 1 12
MOV @Ri, direktang 2 24
MOV A, #data8 2 12
MOV A, @Ri 1 12
MOV A, Rn 1 12
MOV A, direktang 2 12
MOV C, bit 2 12
MOV DPTR, #data16 3 24
MOV Rn, #data8 2 12
MOV Rn, A 1 12
MOV Rn, direktang 2 24
MOV bit, C 2 24
Direktang MOV, #data8 3 24
Direktang MOV, @Ri 2 24
Direktang MOV, A 2 12
Direktang MOV, Rn 2 24
Direktang MOV, direktang 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, direktang 2 12
ORL C, /bit 2 24
ORL C, !bit 2 24
ORL C, bit 2 24
Direktang ORL, #data8 3 24
Direktang ORL, A 2 12
Direktang POP 2 24
Direktang 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
kamag-anak ng SJMP 2 24
SUBB A, #data8 2 12
SUBB A, @Ri 1 12
SUBB A, Rn 1 12
SUBB A, direktang 2 12
SWAP A 1 12
XCH A, #data8 2 12
XCH A, @Ri 1 12
XCH A, Rn 1 12
XCH A, direktang 2 12
XCHD A, #data8 2 12
XCHD A, @Ri 1 12
XCHD A, Rn 1 12
XCHD A, direktang 2 12
XRL A, #data8 2 12
XRL A, @Ri 1 12
XRL A, Rn 1 12
XRL A, direktang 2 12
Direktang XRL, #data8 3 12
Direktang XRL, A 2 12

ASSEMBLER DIREKTO


Kasama sa As31 ang mga sumusunod na direktiba ng assembler:

.ORG expr
Magsimulang mag-assemble sa address na tinukoy ng expression expr. Nagkaroon ng error
kung ang assembler ay magsisimulang mag-assemble sa ibabaw ng isang address space na dati
binuo sa.

.Simbolo ng EQU, expr
Itakda ang simbolo sa halaga ng expr. Dapat malaman ang halaga para sa expr sa una
pass, kapag nakatagpo ang linyang naglalaman ng .EQU.

.BYTE expr, expr, ...
Ipunin ang mga byte na tinukoy ng expression sa memorya. Ang isang string ay maaari ding
tinukoy sa direktiba na ito.

.WORD expr, expr, ...
Ipunin ang mga salita na tinukoy ng expression sa memorya. Ang pag-order ng byte
ginamit, ay ang ginagamit ng 8031.

.FLAG simbolo1, simbolo.[0-7]
Itinatakda ang simbolo1 sa bit address na tinukoy ng simbolo.[0-7] expression. saan
Ang [0-7] ay tumutukoy sa isang karakter sa pagitan ng 0 at 7. Ang resultang bit address ay naka-check sa
tingnan kung ito ay isang wastong bit address.

.END Ang direktiba na ito ay hindi pinapansin.

.SKIP expr
Idinaragdag ang halaga ng expr sa counter ng lokasyon. Ginagamit upang magreserba ng isang bloke ng
uninitialized data. Ang expr ay dapat nasa bytes.

LEXICAL MGA KOmbensiyon


- Ang lahat ng mga character na sumusunod sa isang semi-colon ay binabalewala hanggang sa isang bagong linya ay nakatagpo.

- Ang lahat ng mga numero ay default sa decimal, maliban kung ang numero ay nagsisimula sa isa sa mga sumusunod:

0x o 0X
Ito ay nagpapahiwatig ng isang hexadecimal na numero. ibig sabihin. 0x00ff

0b o 0B
Ito ay nagpapahiwatig ng isang binary na numero. (mga 1 at 0). ibig sabihin. 0b1100110010

0 Ito ay nagpapahiwatig ng isang octal na numero. ibig sabihin. 0377

- Ang lahat ng mga numero ay default sa decimal, maliban kung ang numero ay nagtatapos sa isa sa mga sumusunod
mga character:

b o B Ito ay nagpapahiwatig ng binary na numero. Maliban kung 0x ang ginamit sa itaas. ibig sabihin. 1010101b

h o H Ito ay palaging nagpapahiwatig ng isang hex na numero, Gayunpaman ang kung ang unang character ay
non-numerical, pagkatapos ay dapat na tukuyin ang alinman sa 0x o 0. Iniiwasan nito ang pagkalito
ang assembler sa pag-iisip ng isang hex na numero ay isang simbolo. Halimbawa: 0ffh,
Ang 0xffh, 0XffH, 20h, 0x20 at 020h ay mga paraan upang tumukoy ng wastong hexdigit. Pero
ang mga sumusunod ay hindi: ffh, 0ff.

d o D Pinipilit nito ang isang numero sa decimal. Maliban kung ginamit ang 0X. ibig sabihin. 129d

o o O Ito ay nagiging sanhi ng bilang na bigyang-kahulugan bilang octal. ibig sabihin. 377o

- Ang isang character constant ay maaaring ilagay bilang 'c' kung saan ang c ay ilang character. \b, \n, \r,
\t, \' \0 ay may bisa rin. Ang isang character constant ay maaaring gamitin kahit saan na ang isang integer
halaga maaari.

- Ang isang string ay ipinasok bilang isang set ng mga character na nakapaloob sa double quotes "". Isang string
ay may bisa lamang sa .BYTE na direktiba. Ang \b, \n, \r, \t, \" ay mga wastong pagtakas din.
Gayunpaman \0 ay hindi.

- Mga tagubilin, direktiba, at ang mga simbolo: R0, R1, R2, R3, R4, R5, R6, R7, A, AB,
at C ay maaaring ipasok sa upper o lower case nang walang kalituhan ng assembler. Ang mga ito
mga salita gayunpaman ay hindi maaaring tukuyin bilang isang simbolo ng gumagamit. Maaaring gamitin ang anumang simbolo ng user, at
kaso ay mapangalagaan. Kaya't ang mga simbolo ng gumagamit na "foo" at "Foo" ay magkaiba, ngunit
Ang "addc" ay kapareho ng "aDdC".

- Ang isang simbolo ay maaaring maging anumang alpha numerical na character kasama ang underscore ('_').

- Tinatanggap ang mga expression sa karamihan ng mga lugar kung saan kailangan ang isang halaga o simbolo. An
expression ay binubuo ng mga sumusunod na operator. Ang lahat ng mga operator ay nagsusuri sa integer
objects (naunang nakalista ang mga operator ng mas mataas na precedence):

- Unary minus

& Bit-wise AT.

| Bit-Wise O.

* Pagpaparami ng integer.

/ Integer division

% Integer modulus

+ Pagdaragdag ng integer.

- Integer na pagbabawas.

- Bilang karagdagan sa mga operator na ito, ang isang espesyal na simbolo na '*' ay maaaring gamitin upang kumatawan sa
kasalukuyang counter ng lokasyon.

HALIMBAWA


Nasa ibaba ang isang sample na programa ng pagpupulong.

.org 0
simula: mov P3, #0xff ; gumamit ng mga alternatibong fns sa P3
; ang mga led sa P1 ay baligtad.
setb F0 ; pag-akyat
mov A, #0x01 ; paunang bit

sumulat: cpl A ; isulat mo
mov P1, A
cpl A
pagkaantala ng tawag
jb F0, umakyat ; aakyat sa aling paraan?

climbdn: rr A ; pababa - lumipat pakanan
jnb ACC.0, isulat ; bumalik para sa mas marami
setb F0
ajmp magsulat

umakyat: rl A ; pataas - lumipat pakaliwa
jnb ACC.7, isulat ; bumalik para sa mas marami
clr F0
ajmp magsulat
.end ; hindi pinansin ang direktiba na ito.

MGA AUTHORS


Ken Stauffer (University of Calgary)[protektado ng email]>
Martin Langer[protektado ng email]>

AS31(1)

Gamitin ang as31 online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

Linux command

Ad