GoGPT Best VPN GoSearch

OnWorks 网站图标

as86 - 云端在线

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

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

程序:

您的姓名


as86 - 8086..80386 处理器的汇编程序

概要


as86 [-0123agjuw[-lm[名单]][-n 姓名[-o OBJ[-b[箱子]][-s 符号[-t 文本段] SRC

as86_encap 程序 程序.v [字首_[as86_选项]

商品描述


as86 是 8086..80386 处理器的汇编程序,它的语法更接近于
intel/microsoft 形式,而不是更普通的 unix 系统通用形式
汇编器。

这个 SRC 文件可以是“-”来组装标准输入。

这个汇编器可以编译成支持 6809 cpu,甚至可以工作。

as86_encap 是一个调用 as86 并将创建的二进制文件转换为 C 文件的 shell 脚本
程序.v 包含在程序中或与引导块安装程序等程序链接。 这 字首_
参数是要添加到源定义的所有变量的前缀,默认为
源文件的名称。 定义的变量包括 前缀开始 前缀大小
前缀数据 定义和包含代码,加上包含所有值的整数
导出的标签。 两者之一或两者 程序程序.v 对于标准,参数可以是“-”
进出。

配置


-0 以 16 位代码段开始,警告所有指令 > 8086

-1 以 16 位代码段开始,警告所有指令 > 80186

-2 以 16 位代码段开始,警告所有指令 > 80286

-3 从 32 位代码段开始,不要警告任何指令。 (甚至不是 486 或
586)

-a 启用与 Minix asld 的部分兼容性。 这交换了对的解释
圆括号和方括号以及对代码进行更改
16 位跳转和调用的生成和语法。 ("jmp @(bx)" 然后是一个有效的
操作说明)

-g 只将全局符号放在对象或符号文件中

-j 用类似的 16 位或 32 位跳转替换所有短跳转,即 16 位条件跳转
分支被编码为短条件分支和长无条件分支。

-O 这会导致汇编器添加额外的传递以尝试使用前向引用
减少某些指令所需的字节数。 如果标签在最后一次通过时移动
汇编器将继续添加通行证,直到标签全部稳定(达到最大
30 遍)将它与手写汇编器一起使用可能不是一个好主意
使用显式 br BMI BCC 8086 代码的样式操作码或 JMP 风格为
条件 i386 指令并确保所有变量在它们之前都已定义
被使用。

-l 生成列表文件,文件名可以跟随

-m 在列表中打印宏扩展

-n 模块名称跟随(进入对象而不是源名称)

-o 生成目标文件,文件名如下

-b 产生一个原始的二进制文件,文件名可能跟在后面。 这是一个“原始”二进制文件
没有标题,如果没有 -s 选项文件从位置 0 开始。

-s 产生一个 ASCII 符号文件,文件名如下。 这个表的格式是
旨在易于解析封装和相关的相关活动
到使用创建的二进制文件 -b 选项。 如果二进制文件不是从
location zero 表中的前两项是起始地址和结束地址
二进制文件。

-u 假设未定义的符号是用未指定的段导入的。

-W- 允许汇编器打印警告消息。

-t n 移动段 n+3 中的所有文本段数据。

AS86


特殊的角色

* 当前行的起始地址。

; ! 这些中的任何一个都标志着评论的开始。 此外,任何“意外”
行首的字符被假定为注释(但它也是
显示到终端)。

$ 十六进制数的前缀,'C' 语法,例如 0x1234,也被接受。

% 二进制数的前缀。

# 立即数操作数的前缀。

[ ] 指定一个间接操作数。
与 MASM 不同,汇编器在标签上没有类型信息,只有一个段和
抵消。 这意味着这个操作符和直接前缀的工作方式是
就像传统的汇编程序一样。

例子:
移动 ax,bx
跳转
直接寄存器寻址,跳转复制 BX 到 PC。

移动斧头,[bx]
跳转 [bx]
简单的间接寄存器寻址,跳转移动位置的内容
由 BX 指定到 PC 中。

移动斧头,#1234
立即数,ax 变为 1234。

mov ax,1234
斧头,_你好
移动斧头,[_hello]
绝对寻址,ax 设置为位置 1234 的内容。注意第三个选项
并非严格一致,但主要是为了与 asld 兼容。

mov ax,_table[bx]
mov ax,_table[bx+si]
mov eax,_table[ebx*4]

移动斧头,[bx+_table]
移动斧头,[bx+si+_table]
mov eax,[ebx*4+_table]
索引寻址,两种格式都可以,我认为第一种更正确,但我
倾向于使用第二个。 :-)

条件语句

如果, 别的, 艾尔赛夫, ENDIF
数值条件

国际金融公司, 爱尔赛菲
字符串比较 (str1,str2)

失败 。失败
生成用户错误。

段相关

。文本 。只读存储器 。数据 .BSS
设置当前段。 这些可以在关键字之前 。教派

LOC 设置数字段 0=TEXT, 3=DATA,ROM,BSS, 14=MAX。 由设置的段顺序
链接器现在是 0,4,5,6,7,8,9,A,B,C,D,E,1,2,3。 段 0 和 3 以上的所有段
假定为文本段。 请注意 64k 大小限制不是强加于
第 3-14 段。

标签类型定义

出口 PUBLIC 。定义
此对象中定义的导出标签

ENTRY 强制链接器在 a.out 中包含指定的标签

.全球 。全球的
将标签定义为外部并强制导入,即使它没有被使用。

外线 外部 进口 .外部
导入外部定义标签列表
注意:对原始二进制文件使用导入是没有意义的。

。进入 标记旧二进制文件 (obs) 的条目

资料定义

DB .DATA1 。字节 FCB
1 字节对象的列表。

DW .DATA2 。短的 联邦银行 。单词
2 字节对象的列表。

DD .DATA4 。长
4 字节对象的列表。

.ASCII码 FCC
复制到输出的 Ascii 字符串。

.ASCII 将 Ascii 字符串复制到带有尾随的输出 字节。

空间定义

.BLKB 人民币 。空间
空间以字节计。

.BLKW .ZERO
空间以字数计算。 (每个 2 个字节)

COMM .通讯 洛康姆 .LCOMM
公共区域数据定义

其他有用的伪操作。

。对齐 。甚至
对准

骑马 定义标签

设置 定义可重新定义的标签

组织 .ORG
设置组装位置

BLOCK 设置组装位置并堆叠旧的

结束数据库 返回堆叠组装位置

的GET 包括
插入新文件(名称上没有引号)

用途16 [CPU]
将默认操作数大小定义为 16 位,参数是代码预期的 cpu 类型
在 (86, 186, 286, 386, 486, 586) 指令上运行 cpus 晚于指定
示警。

用途32 [CPU]
将默认操作数大小定义为 32 位,参数是代码预期的 cpu 类型
在 (86, 186, 286, 386, 486, 586) 指令上运行 cpus 晚于指定
示警。 如果未提及 cpu,汇编程序会确保它 >= 80386。

END 此文件的编译结束。

。警告 开关警告

。列表 列表打开/关闭 (1,-1)

.MAC列表
打开/关闭宏列表 (1,-1)

宏,现在可以工作了,一般的形式是这样的。

宏萨克斯
mov 斧头,#?1
修补
萨克斯(1)

未实现/未使用。

IDENT 定义对象身份字符串。

SETDP 在 6809 上设置 DP 值

MAP 设置二进制符号表映射编号。

寄存器
BP BX 迪斯
EAX EBP EBX ECX EDI EDX ESI ESP
斧 CX DX SP
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!
CS DS ES FS GS SS
CR0 CR2 CR3 DR0 DR1 DR2 DR3 DR6 DR7
TR3 TR4 TR5 TR6 TR7 ST

操作数类型说明符
BYTE DWORD FWORD FAR PTR PWORD QWORD TBYTE WORD NEAR

“near”和“far”不允许多段编程,所有“far”操作
通过使用指令明确指定:jmpi、jmpf、callf、
retf 等 'Near' 运算符可用于强制使用 80386 16bit
条件分支。 'Dword' 和 'word' 运算符可以控制
远跳转和调用的操作数。

一般说明。
这些通常与任何 8086 汇编程序中的指令相同,即
主要的例外是一些“密件抄送”(密件抄送、BNE、BGE 等)指令,它们是
短分支加跳远和最长的“BR”的简写
无条件跳转(16 或 32 位)。

长枝
BCC BCS BEQ BGE BGT BHI BHIS BLE BLO BLOS BLT BMI BNE BPC BPL BPS BVC BVS BR

节间
卡利·卡尔夫 JMPI JMPF

段修饰符指令
ESEG FSEG GSEG SSEG

字节操作说明
ADCB ADDB ANDB CMPB DECB DIVB IDIVB IMULB INB INCB MOVB MULB NEGB NOTB ORB OUTB
RCLB RCRB ROLB RORB SALB SARB SHLB SHRB SBBB SUBB TESTB XCHGB XORB

标准说明
AAA AAD AAM AAS ADC 添加和 ARPL 绑定 BSF BSR BSWAP BT BTC BTR BTS CALL CBW CDQ
CLC CLD CLI CLTS CMC CMP CMPS CMPSB CMPSD CMPSW CMPW CMPXCHG CSEG CWD CWDE DAA DA​​S
DEC DIV DSEG ENTER HLT IDIV IMUL IN INC INS INSB INSD INSW INT INVD INVLPG INW
IRET IRETD J JA JAE JB JBE JC JCXE JCXZ JE JECXE JECXZ JG JGE JL JLE JMP JNA JNAE
JNB JNBE JNC JNE JNG JNGE JNL JNLE JNO JNP JNS JNZ JO JP JPE JPO JS JZ LAHF LAR LDS
LEA 离开 LES LFS LGDT LGS LIDT LLDT LMSW 锁定 LODB LODS LODSB LODSD LODSW LODW
LOOP LOOPE LOOPNE LOOPNZ LOOPZ LSL LSS LTR MOV MOVS MOVSB MOVSD MOVSW MOVSX MOVW
MOVZX MUL NEG NOP NOT 或 OUT OUTS OUTSB OUTSD OUTSW OUTW POP POPA POPAD POPF POPFD
PUSH PUSHA PUSHAD PUSHF PUSHFD RCL RCR RDMSR REP REP REPNE REPNZ REPZ RET RETF
RETI ROL ROR SAHF SAL SAR SBB SCAB SCAS SCASB SCASD SCASW SCAW SEG SETA Setae SETB
SETBE SETC SETE SETG SETGE SETL SETNA SETNAE SETNB SETNBE SETNC SETNE SETNG
SETNGE SETNL SETNLE SETNO SETNP SETNS SETNZ SETO SETP SETPE SETPO 设置SETZ SGDT
SHL SHLD SHR SHRD SIDT SLDT SMSW STC STD STI STOB STOS STOSB STOSD STOSW STOW STR
SUB TEST VERR VERW WAIT WBIVD WRMSR XADD XCHG XLAT XLATB XOR

浮点
F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX FCOM FCOMP FCOMPP FCOS FDECSTP FDISI
FDIV FDIVP FDIVR FDIVRP FENI FFREE FIADD FICOM FICOMP FIDIV FIDIVR FILD FIMUL
FINCSTP FINIT 拳头 FISTP FISUB FISUBR FLD FLD1 FLDL2E FLDL2T FLDCW FLDENV FLDLG2
FLDLN2 FLDPI FLDZ FMUL FMULP FNCLEX FNDISI FNENI FNINIT FNOP FNSAVE FNSTCW FNSTENV
FNSTSW FPATAN FPREM FPREM1 FPTAN FRNDINT FRSTOR FSAVE FSCALE FSETPM FSIN FSINCOS
FSQRT FST FSTCW FSTENV FSTP FSTSW FSUB FSUBP FSUBR FSUBRP FTST FUCOM FUCOMP FUCOMPP
FWAIT FXAM FXCH FXTRACT FYL2X FYL2XP1

运用 GASP


Gnu 汇编器预处理器提供了一些用户偏向的合理实现
伪操作码。

它可以以类似于以下的形式调用:

喘息 [-一种...] 文件.s [文件2.s] |
as86 [...] - [-o OBJ[-b 箱子]

请注意,尽管 Gasp 会为 。ORG 命令,如果你不使用
您可以使用的替代语法 组织结构 相反,否则使用 阻止尾盘. 该指令
出口 被翻译成 。全球, 强制导入,如果您正在使用
-b 使用 国家 or 。定义 代替。

在 as86 中不支持 GASP 列表选项。

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


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。