InglêsFrancêsEspanhol

Ad


favicon do OnWorks

as31 - Online na nuvem

Execute as31 no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando as31 que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


as31 - Um assembler Intel 8031/8051

SINOPSE


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

DESCRIÇÃO


As31 monta arquivo.asm em um dos vários formatos de saída diferentes. A saída será
em um arquivo chamado infile.obj. A extensão .asm é necessária.

OPÇÕES


As opções devem aparecer antes do nome do arquivo de entrada. Ambas as opções são opcionais. O texto de
cada sinalizador deve aparecer no mesmo argumento do sinalizador. Por exemplo, "-Fod" é um válido
argumento, mas "-F od" não é.

-h Isso faz com que o montador imprima uma mensagem detalhada descrevendo suas opções.
A mensagem é gravada no erro padrão.

-l Esta opção diz ao montador para também gerar um arquivo de listagem. Uma lista será
colocado no arquivo infile.lst. Onde 'infile' é o arquivo que está sendo montado.
Esta opção pode aparecer em qualquer lugar antes de infile.asm. A opção deve ocorrer isolada
na linha de comando.

O arquivo de listagem mostra o código gerado pelo assembler em hexadecimal e com até 60 caracteres
são retidos do arquivo de origem.

-s Isso faz com que o montador grave a saída na saída padrão.

-v Isso faz com que o montador imprima um número de versão na saída padrão.

-Aarg Esta opção especifica uma string específica de formato que é passada para o formato
gerador. Ambos os formatos "tdr" e srecord usam esta opção.

-Formato
Esta opção especifica o formato de saída que deve ser usado.

Atualmente, as únicas opções disponíveis para isso são:

hex Este formato é o formato Intel HEX que é esperado por uma série de EPROM
programadores e o depurador PAULMON. Para uso com alguns programadores, o
a extensão do arquivo de saída pode ter que ser alterada para .HEX para ser reconhecida por
o programador. Nenhuma opção -A é usada. Este formato deve ser o padrão se
nenhuma opção -F é usada.

tdr Este formato gera um arquivo asci de dígitos hexadecimais formatado de tal forma, então
que eles podem ser lidos pelo depurador do tdr. Um argumento pode ser especificado (Veja
-A opção) que irá passar uma string específica de formato para o gerador de formato.
Neste caso, a string do argumento representa um deslocamento para adicionar ao
contador de localização. Este deslocamento é especificado em decimal e o padrão é
64 * 1024 (0x10000). Para especificar um deslocamento de 100, você precisaria de "-Ftdr
-A100 "ao chamar o montador.

byte Este formato é simplesmente um endereço e um byte em cada linha, em ascii. Não -A
opção é usada.

od Este formato é semelhante à saída de od(1). O formato consiste em um
endereço seguido por dezesseis bytes hexadecimais, seguido pelo equivalente
ASCII. Nenhuma opção -A é usada.

srec2, srec3, srec4
O gerador de srecord é capaz de gerar saída com qualquer um de 2, 3,
ou endereços de 4 bytes. A opção -A pode ser usada para definir o endereço de base
deslocamento, o padrão aqui é 0x0000 (ao contrário TDR).

NOTA: Este montador permite que os formatos de saída sejam expandidos para incluir muitos
diferentes formatos de saída.

-Arquivo Esta opção diz ao montador para gravar a saída em um arquivo.

MONTADORA INSTRUÇÕES


Este montador aceita formatos de instrução padrão 8031/8051. Abaixo está uma lista de
instruções e modos de endereçamento.

CICLOS DE BYTES DE INSTRUÇÃO
----------- ----- ------
ACALL addr 11 2 24
ADICIONE A, # dados 8 2 12
ADICIONE A, @Ri 1 12
ADICIONE A, Rn 1 12
ADICIONE A, direto 2 12
ADDC A, # data8 2 12
ADDC A, @Ri 1 12
ADDC A, Rn 1 12
ADDC A, direto 2 12
AJMP addr 11 2 24
ANL A, # dados 8 2 12
ANL A, @Ri 1 12
ANL A, Rn 1 12
ANL A, direto 2 12
ANL C, / bit 2 24
ANL C,! Bit 2 24
ANL C, bit 2 24
ANL direto, # dados8 3 24
ANL direto, A 2 12
CJNE @Ri, # data8, rel 3 24
CJNE A, # data8, rel 3 24
CJNE A, direto, 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
D A 1 12
DEZ @Ri 1 12
DEZ A 1 12
DEZ DPTR 1 12
DEZ Rn 1 12
DEC direto 2 12
DIV AB 1 48
DJNZ Rn, rel 2 24
DJNZ direto, rel 3 24
INC @Ri 1 12
INC A 1 12
INC DPTR 1 24
INC Rn 1 12
INC direto 2 12
Bit JB, rel 3 24
Bit JBC, rel 3 24
JC relativo 2 24
JMP @A + DPTR 1 24
JMP @DPTR + A 1 24
Bit JNB, rel 3 24
JNC relativo 2 24
JNZ relativo 2 24
JZ relativo 2 24
LCALL addr 16 3 24
LJMP addr 16 3 24
MOV @Ri, # data8 2 12
MOV @Ri, A 1 12
MOV @Ri, direto 2 24
MOV A, # data8 2 12
MOV A, @Ri 1 12
MOV A, Rn 1 12
MOV A, direto 2 12
MOV C, bit 2 12
MOV DPTR, # dados 16 3 24
MOV Rn, # dados 8 2 12
MOV Rn, A 1 12
MOV Rn, direto 2 24
Bit MOV, C 2 24
MOV direto, # data8 3 24
MOV direto, @Ri 2 24
MOV direto, A 2 12
MOV direto, Rn 2 24
MOV direto, direto 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
MULAB 1 48
NOP 1 12
ORL A, # dados 8 2 12
ORL A, @Ri 1 12
ORL A, Rn 1 12
ORL A, direto 2 12
ORL C, / bit 2 24
ORL C,! Bit 2 24
ORL C, bit 2 24
ORL direto, # dados8 3 24
ORL direto, A 2 12
POP direto 2 24
PUSH direto 2 24
RET 1 24
RETI 1 24
RL A 1 12
RLC A 1 12
RR A 1 12
RRC A 1 12
CONJUNTO A 1 12
SETB bit 2 12
SJMP relativo 2 24
SUBB A, # dados8 2 12
SUBA, @Ri 1 12
SUBB A, Rn 1 12
SUBB A, direto 2 12
TROCAR A 1 12
XCH A, # data8 2 12
XCH A, @Ri 1 12
XCH A, Rn 1 12
XCH A, direto 2 12
XCHD A, # data8 2 12
XCHD A, @Ri 1 12
XCHD A, Rn 1 12
XCHD A, direto 2 12
XRL A, # data8 2 12
XRL A, @Ri 1 12
XRL A, Rn 1 12
XRL A, direto 2 12
XRL direto, # dados8 3 12
XRL direto, A 2 12

MONTADORA DIRETIVAS


As31 inclui as seguintes diretivas do montador:

.ORG exp
Comece a montagem no endereço especificado pela expressão expr. Ocorre um erro
se o montador começar a montar sobre um espaço de endereço que foi anteriormente
montado em.

Símbolo .EQU, expr
Defina o símbolo para o valor de expr. O valor para expr deve ser conhecido durante o primeiro
passar, quando a linha que contém o .EQU é encontrada.

.BYTE expr, expr, ...
Reúna os bytes especificados pela expressão na memória. Uma string também pode ser
especificado com esta diretiva.

.PALAVRA expr, expr, ...
Reúna as palavras especificadas pela expressão na memória. A ordem de bytes
usado, é aquele usado pelo 8031.

.FLAG símbolo1, símbolo. [0-7]
Define symbol1 para o endereço de bit especificado pela expressão symbol. [0-7]. Onde
[0-7] denota um caractere entre 0 e 7. O endereço de bit resultante é verificado para
veja se é um endereço de bit válido.

.END Esta diretiva é ignorada.

.SKIP exp
Adiciona o valor de expr ao contador de localização. Usado para reservar um bloco de
dados não inicializados. Expr deve estar em bytes.

LEXICAL CONVENÇÕES


- Todos os caracteres após um ponto e vírgula são ignorados até que uma nova linha seja encontrada.

- Todos os números são decimais por padrão, a menos que o número comece com um dos seguintes:

0x ou 0X
Isso indica um número hexadecimal. ou seja, 0x00ff

0b ou 0B
Isso indica um número binário. (1's e 0's). ou seja, 0b1100110010

0 Isso indica um número octal. ou seja, 0377

- Todos os números são decimais por padrão, a menos que o número termine com um dos seguintes
personagens:

b ou B Isso indica um número binário. A menos que 0x tenha sido usado acima. ou seja, 1010101b

h ou H Isso sempre indica um número hexadecimal, no entanto, se o primeiro caractere for
não numérico, então 0x ou 0 deve ser especificado. Isso evita confundir
o montador pensa que um número hexadecimal é um símbolo. Por exemplo: 0ffh,
0xffh, 0XffH, 20h, 0x20 e 020h são meios para especificar um dígito hexadecimal válido. Mas
os seguintes não são: ffh, 0ff.

d ou D Isso força um número para decimal. A menos que 0X tenha sido usado. ou seja, 129d

o ou O Isso faz com que o número seja interpretado como octal. ou seja, 377o

- Uma constante de caractere pode ser inserida como 'c', onde c é algum caractere. \ b, \ n, \ r,
\ t, \ '\ 0 também são válidos. Uma constante de caractere pode ser usada em qualquer lugar que um inteiro
valor pode.

- Uma string é inserida como um conjunto de caracteres entre aspas duplas "". Uma linha
só é válido com a diretiva .BYTE. \ b, \ n, \ r, \ t, \ "também são escapes válidos.
No entanto, \ 0 não é.

- Instruções, diretivas e os símbolos: R0, R1, R2, R3, R4, R5, R6, R7, A, AB,
e C pode ser inserido em maiúsculas ou minúsculas sem confusão do montador. Esses
palavras, entretanto, não podem ser definidas como um símbolo do usuário. Qualquer símbolo do usuário pode ser usado, e
caso será preservado. Portanto, os símbolos do usuário "foo" e "Foo" são diferentes, mas
"addc" é o mesmo que "aDdC".

- Um símbolo pode ser qualquer caractere alfanumérico mais o sublinhado ('_').

- As expressões são aceitas na maioria dos lugares onde um valor ou símbolo é necessário. Um
expressão consiste nos seguintes operadores. Todos os operadores são avaliados como inteiros
objetos (opertores de maior precedência listados primeiro):

- Unário menos

E bit a bit AND.

| OU Bit-Wise.

* Multiplicação inteira.

/ Divisão inteira

Módulo de% inteiro

+ Adição de inteiro.

- Subtração de inteiros.

- Além desses operadores, um símbolo especial '*' pode ser usado para representar o
contador de localização atual.

EXEMPLOS


Abaixo está um exemplo de programa de montagem.

.org0
início: mov P3, # 0xff; use fns alternativos em P3
; leds em P1 estão invertidos.
setb F0; subindo
mov A, # 0x01; bit inicial

escrever: cpl A; escreva
movimento P1, A
cpl A
atraso de chamada
jb F0, subida; escalando em qual direção?

escalada: rr A; para baixo - deslocar para a direita
jnb ACC.0, escrever; volte para mais
conjunto F0
escrever ajmp

subida: rl A; para cima - deslocar para a esquerda
jnb ACC.7, escrever; volte para mais
clr F0
escrever ajmp
.fim ; esta diretiva foi ignorada.

AUTORES


Ken Stauffer (Universidade de Calgary)[email protegido]>
Martin Langer[email protegido]>

AS31(1)

Use as31 online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

Comandos Linux

Ad