英语法语西班牙语

Ad


OnWorks 网站图标

as31 - 云端在线

在 OnWorks 免费托管服务提供商中通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器运行 as31

这是命令 as31,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


as31 - Intel 8031/8051 汇编器

概要


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

商品描述


As31 组装 文件.asm 转换成几种不同的输出格式之一。 输出将是
在一个名为 infile.obj 的文件中。 .asm 扩展名是必需的。

配置


选项必须出现在输入文件名之前。 这两个选项都是可选的。 正文
每个标志必须出现在与标志相同的参数上。 例如,“-Fod”是有效的
论点,但“-F od”不是。

-h 这会导致汇编器打印出描述其选项的详细消息。
消息写入标准错误。

-l 这个选项告诉汇编器也生成一个列表文件。 一个列表将是
放在文件infile.lst 中。 其中 'infile' 是正在组装的文件。
此选项可能出现在 infile.asm 之前的任何位置。 该选项必须单独出现
在命令行上。

列表文件以十六进制显示汇编器生成的代码,最多 60 个字符
从源文件中保留。

-s 这会导致汇编器将输出写入标准输出。

-v 这会导致汇编器将版本号打印到标准输出。

-氨基酸 此选项指定传递给格式的特定格式字符串
发电机。 格式“tdr”和 srecord 格式都使用此选项。

-格式
此选项指定要使用的输出格式。

目前唯一可用的选项是:

hex 这种格式是一些 EPROM 所期望的 Intel HEX 格式
程序员和 PAULMON 调试器。 为了与某些程序员一起使用,
输出文件的扩展名可能必须更改为 .HEX 才能被识别
程序员。 没有使用 -A 选项。 这种格式应该是默认的,如果
没有使用 -F 选项。

tdr 这种格式生成的十六进制数字的asci 文件是这样格式化的,所以
tdr 的调试器可以读取它们。 可以指定一个参数(见
-A 选项),它会将特定于格式的字符串传递给格式生成器。
在这种情况下,参数字符串表示要添加到
位置计数器。 此偏移量以十进制指定,默认为
64*1024 (0x10000)。 要指定和偏移 100,您需要“-Ftdr
-A100" 调用汇编程序时。

字节 这种格式只是一个地址和每行一个字节,以 ascii 表示。 否 -A
选项被使用。

od 这种格式类似于从 od(1). 该格式由一个
地址后跟十六进制字节,后跟等值
ASCII。 没有使用 -A 选项。

srec2、srec3、srec4
记录生成器能够使用 2、3、
或 4 字节地址。 -A 选项可用于设置基地址
偏移量,这里的默认值是 0x0000(不像 TDR).

注意:此汇编器允许将输出格式扩展为包括许多
不同的输出格式。

-文件 此选项告诉汇编器将输出写入文件。

大会 操作步骤


该汇编器接受标准的 8031/8051 指令格式。 下面是一个列表
指令和寻址方式。

指令字节周期
------------ ----- ------
ACALL 地址11 2 24
添加 A, #data8 2 12
添加 A,@Ri 1 12
添加 A,Rn 1 12
添加 A,直接 2 12
ADDC A,#data8 2 12
ADDC A,@Ri 1 12
ADDC A,Rn 1 12
ADDC A,直接 2 12
AJMP 地址 11 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 直接,#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 1 12
CLR C 1 12
CLR 位 2 12
CPL A 1 12
CPL C 1 12
CPL 位 2 12
大 A 1 12
十二月@Ri 1 12
十二月 1 日 12
十二月 DPTR 1 12
十二月 Rn 1 12
十二月直接 2 12
分区 AB 1 48
DJNZ Rn,版本 2 24
DJNZ 直接,rel 3 24
INC@Ri 1 12
公司 A 1 12
公司 DPTR 1 24
公司 Rn 1 12
INC 直接 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 地址16 3 24
LJMP 地址 16 3 24
MOV @Ri,#data8 2 12
MOV @Ri,A 1 12
MOV @Ri,直接 2 24
移动 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
穆尔 AB 1 48
否 1 12
ORL A,#data8 2 12
ORL A,@Ri 1 12
奥尔拉 A,Rn 1 12
ORL A,直接 2 12
ORL C,/位 2 24
ORL C, !位 2 24
ORL C,位 2 24
ORL 直接,#data8 3 24
ORL 直接,A 2 12
POP 直接 2 24
直接推 2 24
返回 1 24
可再生能源 1 24
RL 1 12
RLC 一个 1 12
RR A 1 12
无线电通信委员会 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,#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 指定的地址处开始组装。 发生错误
如果汇编器开始在先前已设置的地址空间上进行汇编
组装成。

.EQU 符号,expr
将符号设置为 expr 的值。 expr 的值必须在第一次
通过,当遇到包含 .EQU 的行时。

.BYTE 表达式、表达式、...
将表达式指定的字节组装到内存中。 一个字符串也可能是
用该指令指定。

.WORD 表达式,表达式,...
将表达式指定的单词组合到内存中。 字节顺序
使用的,是8031使用的。

.FLAG 符号 1,符号。[0-7]
将 symbol1 设置为由 symbol.[0-7] 表达式指定的位地址。 在哪里
[0-7] 表示 0 到 7 之间的字符。检查结果位地址为
看看它是否是一个有效的位地址。

.END 该指令被忽略。

.SKIP 表达式
将 expr 的值添加到位置计数器。 用于保留块
未初始化的数据。 Expr 应该以字节为单位。

词汇 公约


- 分号后面的所有字符都将被忽略,直到遇到换行符。

- 所有数字默认为十进制,除非数字以下列之一开头:

0x 或 0X
这表示一个十六进制数。 IE。 0x00ff

0b 或 0B
这表示一个二进制数。 (1 和 0)。 IE。 0b1100110010

0 这表示一个八进制数。 IE。 0377

- 所有数字默认为十进制,除非数字以下列之一结尾
特点:

b 或 B 这表示一个二进制数。 除非上面使用了 0x。 IE。 1010101b

h 或 H 这总是表示一个十六进制数,但是如果第一个字符是
非数字,则必须指定 0x 或 0。 这样可以避免混淆
汇编器认为十六进制数是一个符号。 例如:0ffh,
0xffh、0XffH、20h、0x20 和 020h 表示指定有效的十六进制数字。 但
以下不是:ffh,0ff。

d 或 D 这强制一个数字为十进制。 除非使用了 0X。 IE。 129天

o 或 O 这会导致数字被解释为八进制。 IE。 377度

- 字符常量可以输入为 '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 ; 在 P3 上使用备用 fns
; P1 上的 LED 倒置。
设置 F0 ; 爬起来
移动 A, #0x01 ; 初始位

写: cpl A ; 写下来
移动 P1, A
丙肝
呼叫延迟
jb F0,爬升; 爬哪条路?

爬升:rr A ; 下-右移
jnb ACC.0,写; 返回更多
设置 F0
ajmp 写

爬升:RL A ; 上 - 左移
jnb ACC.7,写; 返回更多
CLF0
ajmp 写
。结尾 ; 该指令被忽略。

作者


Ken Stauffer(卡尔加里大学)[电子邮件保护]>
马丁·兰格[电子邮件保护]>

AS31(1)

使用 onworks.net 服务在线使用 as31


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad