汇编语言符号汇总

合集下载

汇编指令

汇编指令

51汇编语言指令集符号定义表符号含义Rn R0~R7寄存器n=0~7 Direct 直接地址,内部数据区的地址RAM(00H~7FH) SFR(80H~FFH) B,ACC,PSW,IP,P3,IE,P2,SCON,P1,TCON,P0 @Ri 间接地址Ri=R0或R1 8051/31RAM地址(00H~7FH) 8052/32RAM地址(00H~FFH) #data 8位常数 #data16 16位常数 Addr16 16位的目标地址 Addr11 11位的目标地址 Rel 相关地址 bit 内部数据RAM(20H~2FH),特殊功能寄存器的直接地址的位指令介绍指令字节周期动作说明算数运算指令 1.ADD A,Rn 1 1 将累加器与寄存器的内容相加,结果存回累加器 2.ADD A,direct 2 1 将累加器与直接地址的内容相加,结果存回累加器 3.ADD A,@Ri 1 1 将累加器与间接地址的内容相加,结果存回累加器4.ADD A,#data 2 1 将累加器与常数相加,结果存回累加器 5.ADDC A,Rn 1 1 将累加器与寄存器的内容及进位C相加,结果存回累加器 6.ADDC A,direct 2 1 将累加器与直接地址的内容及进位C相加,结果存回累加器 7.ADDC A,@Ri 1 1 将累加器与间接地址的内容及进位C相加,结果存回累加器 8.ADDC A,#data 2 1 将累加器与常数及进位C相加,结果存回累加器 9.SUBB A,Rn 1 1 将累加器的值减去寄存器的值减借位C,结果存回累加器 10.SUBB A,direct 2 1 将累加器的值减直接地址的值减借位C,结果存回累加器 11.SUBB A,@Ri 1 1 将累加器的值减间接地址的值减借位C,结果存回累加器 12.SUBB A,0data 2 1 将累加器的值减常数值减借位C,结果存回累加器 13.INC A 1 1 将累加器的值加1 14.INC Rn 1 1 将寄存器的值加l 15.INC direct 2 1 将直接地址的内容加1 16.INC @Ri 1 1 将间接地址的内容加1 17.INC DPTR 1 1 数据指针寄存器值加1 说明:将16位的DPTR加1,当DPTR的低字节(DPL)从FFH溢出至00H时,会使高字节(DPH)加1,不影响任何标志位 18.DEC A 1 1 将累加器的值减1 19.DEC Rn 1 1 将寄存器的值减1 20.DEC direct 2 1 将直接地址的内容减1 21.DEC @Ri 1 1 将间接地址的内容减1 22.MUL AB 1 4 将累加器的值与B 寄存器的值相乘,乘积的低位字节存回累加器,高位字节存回B寄存器说明:将累加器A和寄存器B内的无符号整数相乘,产生16位的积,低位字节存入A,高位字节存入B寄存器。

汇编语言中的英文缩写

汇编语言中的英文缩写

汇编语言中的英文缩写在汇编语言中,英文缩写是指将长词或短语用其首字母组合而成的缩写形式。

这些缩写在汇编语言中广泛使用,有助于简化代码编写和阅读的过程。

本文将介绍一些常用的汇编语言中的英文缩写。

1. 寄存器缩写在汇编语言中,寄存器是存储和处理数据的关键之一。

以下是一些常见寄存器的缩写:- 累加器(Accumulator):简写为 ACC- 数据寄存器(Data Register):简写为 DR- 源操作数寄存器(Source Operand Register):简写为 SOR- 目标操作数寄存器(Destination Operand Register):简写为 DOR - 程序计数器(Program Counter):简写为 PC2. 指令缩写汇编语言中的指令用于实现特定的操作,以下是一些常用指令的缩写:- 加法(Addition):简写为 ADD- 减法(Subtraction):简写为 SUB- 逻辑与(Logical AND):简写为 AND- 逻辑或(Logical OR):简写为 OR- 转移(Jump):简写为 JMP- 存储(Store):简写为 ST- 加载(Load):简写为 LD3. 程序标志缩写程序标志用于指示运行过程中的条件和结果,以下是一些常见的程序标志缩写:- 无进位标志(Carry Flag):简写为 CF- 零标志(Zero Flag):简写为 ZF- 溢出标志(Overflow Flag):简写为 OF- 符号标志(Sign Flag):简写为 SF4. 内存缩写在汇编语言中,对于内存地址或单元的引用也可以使用缩写形式,以下是一些例子:- 基地址寄存器(Base Address Register):简写为 BAR- 偏移量(Offset):简写为 OFF- 存储器(Memory):简写为 MEM5. 输入输出缩写在处理输入输出时,也存在一些常用的缩写形式:- 输入(Input):简写为 IN- 输出(Output):简写为 OUT- 打印(Print):简写为 PRNT- 读取(Read):简写为 RD在编写汇编代码或阅读他人的代码时,使用这些缩写能够提高代码的可读性和整洁度。

汇编语言标志位(CF)及一些常用指令

汇编语言标志位(CF)及一些常用指令

汇编语言标志位(CF)及一些常用指令英文翻译:carry 进位 flag标志NV: no overflow OV: overflowUP: up DN:downDI: disable interrupt EI: enable interruptPL: plus NG: negativeNZ: no zero ZR: zeroNA: no assistant carry AC: assistant carryPO: parity odd PE: parity even 奇偶校验NC: no carry CY: carry汇编标志位:标志名标志 1 标志 0 OF (溢出标志) OV NVDF (方向标志) UP DNIF (中断标志) DI EISF (符号标志位) PL NGZF (零标志) NZ ZRAF (辅助进位标志位) NA ACPF (奇偶标志) PO PECF (进位标志) NC CYOF 溢出(是/否) OV OVerflow NV Not oVerflowDF 方向(减量/增量) DN DowN UP UPIF 中断(允许/关闭) EI Enable Interrupt DI Disable InterruptSF 符号(负/正) NG NeGative PL PLusZF 零(是/否) ZR ZeRo NZ Not ZeroAF 辅助进位(是/否) AC Auxiliary Carry NA Not AuxiliaryPF 奇偶(是/否) PE Parity Even PO Parity OddCF 进位(是/否) CY CarrY NC Not Carry英文解释:NV: no overflow OV: overflowUP: up DN:downDI: disable interrupt EI: enable interruptPL: plus NG: negativeNZ: no zero ZR: zeroNA: no assistant carry AC: assistant carryPO: parity odd PE: parity evenNC: no carry CY: carry先熟悉一下FLAGS标志位:OV、NV即溢出标志位OF=1或0,表示运算结果有无溢出。

汇编语言指令速查表

汇编语言指令速查表

附录附录A 常用80x86指令速查表指令按助记符字母顺序排列,缩写、符号约定如下:(1) 指令中,dst, src表示目的操作数和源操作数。

仅一个操作数时,个别处也表示为opr。

(2) imm表示立即数,8/16/32位立即数记作:imm8/imm16/imm32。

(3) reg表示通用寄存器,8/16/32位通用寄存器记作:reg8/reg16/reg32。

(4) mem表示内存操作数,8/16/32等内存操作数记作:mem8/mem16/mem32等。

(5) seg表示段寄存器,CS, DS, SS, ES, FS, GS。

(6) acc表示累加器,8/16/32累加器对应AL/AX/EAX。

(7)OF, SF, ZF, AF, PF, CF分别表示为O, S, Z, A, P, C,相应位置为:字母,根据结果状态设置;?,状态不确定;-,状态不变;1,置1;0,清0;例如:0 S Z ? P -表示:OF清0,AF不确定,CF不变,其它根据结果设置。

若该栏空白,则表示无关。

(8)寄存器符号诸如(E)CX, (E)SI, (E)DI, (E)SP, (E)BP和(E)IP等,表示在16地址模式下使用16位寄存器(如CX),或在32地址模式下使用32位寄存器(如ECX)。

(9)周期数表示指令执行所需的CPU时钟周期个数,即执行时间为:周期数/主频(秒)。

(10)诸如(386+)是表示该指令只能用于80386及以后微处理器上。

·252·附录·253··254·附录·255··256·附录·257··258·附录·259·附录B 编程练习环境说明1. 编程练习软件包附带软件包x86ASM是在Microsoft的MASM 6.15软件包的基础上,加入CodeView、Win32的开发工具及Turbo C 2.0等,进行简单整理而成的,以便初学者编程练习使用。

汇编语言术语

汇编语言术语

汇编语言术语
汇编语言(Assembly Language)是一种低级程序设计语言,
它使用与特定计算机体系结构密切相关的符号指令来编写程序。

以下是一些汇编语言的术语:
1. 指令(Instruction):汇编程序的基本执行单位,用于执行
特定的操作,如加法、乘法等。

2. 操作码(Opcode):指令中用来表示操作类型的字段,例
如ADD表示加法。

3. 寄存器(Register):用于存储临时数据和操作结果的内存
单元,汇编语言通常具有特定数量和名称的寄存器。

4. 内存(Memory):计算机中用于存储数据和程序的主要组件,汇编语言中的指令通常使用内存地址来操作内存中的数据。

5. 立即数(Immediate Value):指令中直接给出的数值,用于指定操作数或操作。

6. 标志位(Flag):特定位用于记录计算机状态的标志,例如
进位标志、零标志等。

7. 标签(Label):用于标识程序中某个位置的符号。

8. 跳转指令(Jump Instruction):用于改变程序执行流程的指令,根据条件或无条件跳转到指定的地址。

9. 子程序(Subroutine):一段独立的代码,可在程序中被多次调用执行。

10. 指令集架构(Instruction Set Architecture,ISA):一组支持特定计算机体系结构的指令集合,包括该体系结构所支持的操作和寄存器。

汇编命令大全

汇编命令大全
A1.General Register(通用寄存器)
EAX,EBX,ECX,EDX,ESI,EDI,ESP,EBP,它们的低16位就是8086的AX,BX,CX,DX,SI,DI,SP,BP,它们的含义如下:
EAX:累加器
EBX:基址寄存器
ECX:计数器
EDX:数据寄存器
ESI:源地址指针寄存器
WAIT:置处理器于等待状态
11.堆栈操作
ENTER:建立堆栈帧
LEAVE:结束堆栈帧
POP:字出栈
POPF:标志出栈
POPA:所有通用寄存器出栈
PUSH:字进栈
PUSHA:所有通用积存器进栈
PUSHF:标志进栈
12.串操作
CMPS:串比较
CDQ:双字转换为四字
CWD:字转换为双字
CWDE:字转换为扩展的双字
反汇编出来的代码是像这样的
00408254 |. 837D 0C 00 CMP DWORD PTR SS:[EBP+C],0
00408258 |. 57 PUSH EDI
00408259 |. 0F84 20010000 JE scanner.0040837F
ata NOT r/m
影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0) NOT指令不影响任何标志位
SHR,SHL,SAR,SAL
功能: 移位指令
语法: SHR r/m,data/CL SHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL
标志位: C,P,A,Z,O
JMP
功能: 跳往指定地址执行
语法: JMP 地址

编程符号大全及作用

编程符号大全及作用

编程符号大全及作用
以下是常见的编程符号及其作用:
- `=`:赋值运算符,用于将右侧的值赋给左侧的变量
- `+`:加法运算符,用于实现两个数相加
- `-`:减法运算符,用于实现两个数相减
- `*`:乘法运算符,用于实现两个数相乘
- `/`:除法运算符,用于实现两个数相除
- `%`:取余运算符,用于取得除法运算的余数
- `==`:等于运算符,用于比较两个值是否相等
- `!=`:不等于运算符,用于比较两个值是否不相等
- `<`:小于运算符,用于比较左侧的值是否小于右侧的值
- `>`:大于运算符,用于比较左侧的值是否大于右侧的值
- `<=`:小于等于运算符,用于比较左侧的值是否小于等于右侧的值
- `>=`:大于等于运算符,用于比较左侧的值是否大于等于右侧的值
- `&&`:逻辑与运算符,用于实现两个条件同时满足时返回`true`
- `||`:逻辑或运算符,用于实现两个条件中任意一个满足时返回`true`
- `!`:逻辑非运算符,用于取反一个条件的值
- `;`:语句结束符,用于表示一行代码的结束
- `()`:圆括号,用于分组表达式或调用函数时传递参数
- `[]`:方括号,用于表示索引或数组的元素
- `{}`:花括号,用于表示代码块的起始和结束
- `:`:冒号,用于分隔条件语句或定义键值对的分隔符
- `.`:点号,用于访问对象的属性或调用对象的方法
这仅仅是一部分常见的编程符号,不同的编程语言有不同的符号和用法。

51单片机常用汇编语言助记符英文全称

51单片机常用汇编语言助记符英文全称

51单片机常用汇编语言助记符英文全称(1)数据传送类指令(7种助记符)MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;MOVC(Move Code)读取程序存储器数据表格的数据传送;MOVX (Move External RAM) 对外部RAM的数据传送;XCH (Exchange) 字节交换;XCHD (Exchange low-order Digit) 低半字节交换;PUSH (Push onto Stack) 入栈;POP (Pop from Stack) 出栈;(2)算术运算类指令(8种助记符)ADD(Addition) 加法;ADDC(Add with Carry) 带进位加法;SUBB(Subtract with Borrow) 带借位减法;DA(Decimal Adjust) 十进制调整;INC(Increment) 加1;DEC(Decrement) 减1;MUL(Multiplication、Multiply) 乘法;DIV(Division、Divide) 除法;(3)逻辑运算类指令(10种助记符)ANL(AND Logic) 逻辑与;XRL(Exclusive-OR Logic) 逻辑异或;CLR(Clear) 清零;CPL(Complement) 取反;RL(Rotate left) 循环左移;RLC(Rotate Left throught the Carry flag) 带进位循环左移;RR(Rotate Right) 循环右移;RRC (Rotate Right throught the Carry flag) 带进位循环右移;SWAP (Swap) 低4位与高4位交换;(4)控制转移类指令(17种助记符)ACALL(Absolute subroutine Call)子程序绝对调用;LCALL(Long subroutine Call)子程序长调用;RET(Return from subroutine)子程序返回;RETI(Return from Interruption)中断返回;SJMP(Short Jump)短转移;LJMP长转移;AJMP(Absolute Jump)绝对转移;CJNE (Compare Jump if Not Equal)比较不相等则转移;DJNZ (Decrement Jump if Not Zero)减1后不为0则转移;JZ (Jump if Zero)结果为0则转移;JNZ (Jump if Not Zero) 结果不为0则转移;JC (Jump if the Carry flag is set)有进位则转移;JNC (Jump if Not Carry)无进位则转移;JB (Jump if the Bit is set)位为1则转移;JNB (Jump if the Bit is Not set) 位为0则转移;JBC(Jump if the Bit is set and Clear the bit) 位为1则转移,并清除该位;NOP (No Operation) 空操作;(5)位操作指令(1种助记符)SETB(Set Bit) 位置1。

risc-v汇编 定义符号表

risc-v汇编 定义符号表

risc-v汇编定义符号表RISC-V的汇编语言中,符号表(也称为标签或标识符)是用于表示代码或数据位置的重要工具。

在RISC-V汇编中,可以使用各种指示符来定义符号表。

以下是一些常见的RISC-V汇编指示符和它们的作用:1..text:此指示符用于定义代码段。

所有跟随此指示符的符号都将被放置在代码段中。

2..data:此指示符用于定义数据段。

所有跟随此指示符的符号都将被放置在数据段中。

3..bss:此指示符用于定义未初始化数据段。

所有跟随此指示符的符号都将被放置在未初始化数据段中。

4..section .foo:这是一个自定义段指示符,其中.foo是段的名称。

所有跟随此指示符的符号都将被放置在名为.foo的段中。

5..align n:此指示符用于按2的n次幂字节对齐后续的数据或代码。

6..balign n:此指示符用于按n字节对齐后续的数据或代码。

7..globl sym:此指示符用于声明sym为全局符号,使得其他文件可以访问它。

8..string “str”:此指示符将字符串str放入内存。

9..byte b1,…,bn:此指示符在内存中连续存储n个单字节。

10..half w1,…,wn:此指示符在内存中连续存储n个半字(2字节)。

11..word w1,…,wn:此指示符在内存中连续存储n个字。

在定义符号表时,通常会使用这些指示符来指定符号(如变量、函数等)的位置和属性。

然后,在代码的其他部分,可以使用这些符号来引用相应的数据或代码。

请注意,具体的汇编语法和指示符可能会因RISC-V的不同实现或工具链而有所差异。

因此,建议查阅相关的RISC-V汇编语言文档或参考手册以获取更准确的信息。

汇编语言指令大全

汇编语言指令大全
功能: 字符串传送指令
语法: MOVSB MOVSW MOVSD
标志位: 无
CMPSB,CMPSW,CMPSD
功能: 字符串比较指令
语法: CMPSB CMPSW CMPSD
标志位: C,P,Z,S,O
SCASB,SCASW
功能: 字符串搜索指令
语法: SCASB SCASW
LES(Load ES with pointer) 指针送寄存器和ES指令P35
LAHF(Load AH with Flags) 标志位送AH指令P36
SAHF(Store AH into Flgs) AH送标志寄存器指令P36
PUSHF(PUSH the Flags) 标志进栈指令P36
SEGMENT,ENDS 段定义指令P95
ASSUME 段地址分配指令P95
ORG 起始偏移地址设置指令P96
$ 地址计数器的当前值P97
PROC,ENDP 过程定义语句P97
NAME,TITLE,END 程序开始结束语句P98
MACRO,ENDM 宏定义指令P99
8086/8088汇编语言指令集
标志位: C,P,Z,S,O
LODSB,LODSW,STOSB,STOSW
功能: 字符串载入或存贮指令
语法: LODSB LODSW STOSB STOSW
标志位: 无
REP,REPE,REPNE
功能: 重复前缀指令集
语法: REP 指令S REPE 指令S REPNE 指令S
AAA 非压缩的BCD码加法十进制调整指令P54
AAS 非压缩的BCD码加法十进制调整指令P54
AND 逻辑与指令P54

汇编语言符号及教材符号汇总大全

汇编语言符号及教材符号汇总大全

""∶教材符号+、-、*、/∶算术运算符。

&∶宏处理操作符。

宏扩展时不识别符号和字符串中的形式参数,如果在形式参数前面加上一个&记号,宏汇编程序就能够用实在参数代替这个形式参数了。

$∶地址计数器的值——记录正在被汇编程序翻译的语句地址。

每个段均分配一个计数器,段内定义的所有标号和变量的偏移地址就是当前汇编地址计数器的值。

?∶操作数。

在数据定义语句中,操作数用?,其作用是分配并保留存储空间,但不存入确定的数据。

=∶等号伪指令——符号定义。

对符号进行定义和赋值,功能与EQU相似,但允许(重复)再定义。

:∶修改属性运算符(操作符)——段操作符。

用来临时给变量、标号或地址表达式指定一个段属性(不用缺省的段寄存器),自动生成一个“跨段前缀字节”。

注意,段寄存器CS和ES不能被跨越,堆栈操作时也不能跨越SS。

;∶注释符号。

%∶特殊宏操作符,用来将其后的表达式(通常是符号常数,不能是变量名和寄存器名)转换成它所代表的数值,并将此数值的ASCII码嵌入到宏扩展中。

()∶1.运算符——用来改变运算符的优先级别。

2.教材符号,表示括号内存储单元(或寄存器)的内容。

<>∶宏调用时用来将带间隔符(如空格,逗号等)的字符串(作为实参)括起来。

[]∶1.运算符。

方括号括起来的数是数组变量的下标或地址表达式。

带方括号的地址表达式必须遵循下列原则,①只有BX、BP、SI、DI这四个寄存器可在方括号内出现;②BX或BP可单独出现在各方括号中,也可以与常数、SI或DI一起出现在方括号内,但不允许BX和BP出现在同一个方括号内;③SI和DI可以单独出现在各方括号内,也可以与常数、BP或BX一起出现在方括号内,但不允许SI和DI出现在同一个方括号内;④一个方括号内包含多个寄存器时,它们只能作加法运算;⑤若方括号内包含基址指针BP,则隐含使用堆栈段寄存器SS提供段基址,否则均隐含使用数据段寄存器DS提供段基址。

汇编语言助记符

汇编语言助记符

汇编语言助记符汇编语言是一种低级语言,是计算机硬件能够直接执行的语言。

在编写汇编代码时,为了方便记忆和使用,人们使用了一些助记符(mnemonic)来代表机器指令和操作数的操作符。

本文将介绍一些常见的汇编语言助记符以及它们的用法和含义。

1. MOV(Move)MOV是汇编语言中最常见的助记符之一,用于将数据从一个位置移动到另一个位置。

例如,MOV AX, 42表示将值42移动到寄存器AX中。

MOV指令通常用于数据传输和寄存器之间的操作。

2. ADD(Addition)ADD助记符用于执行加法操作。

例如,ADD AX, BX表示将寄存器BX的值加到寄存器AX中。

ADD指令还可以用于将常数加到寄存器中或将内存中的值与寄存器中的值相加。

3. SUB(Subtraction)SUB助记符用于执行减法操作。

例如,SUB AX, BX表示将寄存器BX的值从寄存器AX中减去。

与ADD指令类似,SUB指令也可以用于将常数从寄存器中减去或从内存中的值中减去寄存器中的值。

4. JMP(Jump)JMP助记符用于实现无条件跳转,即程序将跳转到指定地址处继续执行。

例如,JMP Label表示跳转到标签(Label)所指示的位置。

使用JMP指令可以实现程序的循环、条件分支等控制结构。

5. CMP(Compare)CMP助记符用于进行比较操作,通常与条件跳转指令(如JMP、JZ、JG等)配合使用。

例如,CMP AX, BX表示比较寄存器AX和BX 中的值。

通过CMP指令可以判断两个值的大小关系,并根据比较结果执行不同的操作。

6. NOP(No Operation)NOP助记符表示空操作,即不进行任何实际操作。

在编写汇编代码时,可以使用NOP来占据一段空白的指令空间或进行调试时的代码标记。

7. INC(Increment)INC助记符用于将寄存器或内存中的值加1。

例如,INC AX表示将寄存器AX中的值加1,INC [BX]表示将寄存器BX所指向的内存单元中的值加1。

汇编语言标志位(CF)及一些常用指令

汇编语言标志位(CF)及一些常用指令

汇编语言标志位(CF)及一些常用指令英文翻译:carry 进位 flag标志NV: no overflow OV: overflowUP: up DN:downDI: disable interrupt EI: enable interruptPL: plus NG: negativeNZ: no zero ZR: zeroNA: no assistant carry AC: assistant carryPO: parity odd PE: parity even 奇偶校验NC: no carry CY: carry汇编标志位:标志名标志 1 标志 0 OF (溢出标志) OV NVDF (方向标志) UP DNIF (中断标志) DI EISF (符号标志位) PL NGZF (零标志) NZ ZRAF (辅助进位标志位) NA ACPF (奇偶标志) PO PECF (进位标志) NC CYOF 溢出(是/否) OV OVerflow NV Not oVerflowDF 方向(减量/增量) DN DowN UP UPIF 中断(允许/关闭) EI Enable Interrupt DI Disable InterruptSF 符号(负/正) NG NeGative PL PLusZF 零(是/否) ZR ZeRo NZ Not ZeroAF 辅助进位(是/否) AC Auxiliary Carry NA Not AuxiliaryPF 奇偶(是/否) PE Parity Even PO Parity OddCF 进位(是/否) CY CarrY NC Not Carry英文解释:NV: no overflow OV: overflowUP: up DN:downDI: disable interrupt EI: enable interruptPL: plus NG: negativeNZ: no zero ZR: zeroNA: no assistant carry AC: assistant carryPO: parity odd PE: parity evenNC: no carry CY: carry先熟悉一下FLAGS标志位:OV、NV即溢出标志位OF=1或0,表示运算结果有无溢出。

单片机汇编语言(指令集锦)

单片机汇编语言(指令集锦)

单片机汇编语言一、格式[标号]:操作码[操作数];[注释]1.标号指令的符号地址,与操作码用‘:’分隔,其间可加若干空格。

有标号,程序的其他语句才可访问该语句。

可有可无。

规定:由8个以内的字母、数字构成,第一个必为字母,同一程序不可有相同标号,不能有助记符、伪指令、寄存器名、特殊符号等。

正确标号:AB1、NEXT、LOOP1。

错误标号:2A、S+M、EQU、ADD。

2.操作码说明语句功能,必不可少。

与操作数之间用空格相隔。

3.操作数说明操作对象。

可以是具体的数、标号(符号地址)、寄存器、直接地址等。

操作数为十六进制,且字母在最高位,则前面应补0.据指令之异,个数可为1、2、3或无。

各操作间用‘,’相隔。

4.注释程序说明。

以‘;’开头,可多行,每行都以‘;’开头。

二、寻址方式寻找操作数的地址。

1.寄存器寻址以通用寄存器的内容作为操作数,在指令的助记符中直接以寄存器名字来表示操作数位置。

51中若操作数以R0~R7表示操作数时,就属于此方式。

如:‘MOV A,R0’,功能:把寄存器R0的内容传送到累加器A中。

2.直接寻址在指令中直接给出操作数地址。

如:MOV ‘A,3AH’,功能:把内部RAM的3AH单元内容传送到累加器A中。

3.立即寻址指令的操作数是一个数。

该操作数被称为立即数。

立即数前加‘#’,如:’MOV A,#3AH’,功能:把立即数3AH送到累加器A中。

4.寄存器间接寻址寄存器中存放的是操作数的地址,即操作数是通过寄存器间接得到的,相应的寄存器前加@。

如:‘MOV A,@R0’,功能:取出寄存器R0中的值,将此值作为地址,取该地址单元中的内容传送到A。

5.变址寻址以某个寄存器的内容为基本地址,在此基本地址基础上加上地址偏移量作为真正的操作地址,并将此地址单元的内容作为指令的操作数。

51中,一般用数据指针DPTR或程序计数器PC的内容为基本地址,累加器A的内容为地址偏移量,并以DPTR+A或PC+A的值作为实际的操作数地址。

汇编语言运算符

汇编语言运算符

汇编语言运算符汇编语言是一种低级语言,直接操作计算机硬件的指令和数据。

运算符是汇编语言中常用的操作符号,用于执行各种数学和逻辑运算。

本文将介绍汇编语言中常见的运算符及其使用方式。

一、算术运算符1. 加法运算符(ADD):将两个数相加,并将结果存储在目标操作数中。

例如,ADD AX, BX表示将寄存器AX和BX中的值相加,结果存储在AX中。

2. 减法运算符(SUB):将第二个操作数的值从第一个操作数中减去,并将结果存储在目标操作数中。

例如,SUB AX, BX表示将寄存器BX的值从AX中减去,结果存储在AX中。

3. 乘法运算符(MUL):将两个数相乘,并将结果存储在目标操作数中。

例如,MUL AX, BX表示将寄存器AX和BX中的值相乘,结果存储在AX中。

4. 除法运算符(DIV):将第一个操作数的值除以第二个操作数,并将商存储在目标操作数中。

例如,DIV AX, BX表示将AX的值除以BX,商存储在AX中,余数存储在DX中。

二、逻辑运算符1. 与运算符(AND):对两个操作数进行逻辑与运算,并将结果存储在目标操作数中。

例如,AND AX, BX表示将寄存器AX和BX中的值进行逻辑与运算,结果存储在AX中。

2. 或运算符(OR):对两个操作数进行逻辑或运算,并将结果存储在目标操作数中。

例如,OR AX, BX表示将寄存器AX和BX中的值进行逻辑或运算,结果存储在AX中。

3. 非运算符(NOT):对一个操作数进行逻辑非运算,并将结果存储在目标操作数中。

例如,NOT AX表示对寄存器AX的值进行逻辑非运算,结果存储在AX中。

4. 异或运算符(XOR):对两个操作数进行逻辑异或运算,并将结果存储在目标操作数中。

例如,XOR AX, BX表示将寄存器AX和BX 中的值进行逻辑异或运算,结果存储在AX中。

三、移位运算符1. 左移运算符(SHL):将一个操作数的二进制位向左移动指定的位数,并将结果存储在目标操作数中。

汇编语言基础

汇编语言基础

汇编语言基础(一)汇编语言的基本语法1.字符集(1)英文字符:A~Z a~z(2)数字字符:0~9(3)算术运算符:+ - * /(4)关系运算符:<=>(5)分隔符: ,: ;() [] ’ (空格) TAB(6)控制符: CR(回车) LF(换行) FF(换页)(7)其他字符: & - (下划线)?. $ @ ! %在用汇编语言编写程序时,程序中的指令助记符、标识符、运算符、分隔符等,均应由上述字符集中的字符组成。

使用其他字符均为非法字符,8086/8088宏汇编程序不能识别和翻译。

2.标识符标识符在程序中用作变量名、常量名、记录名、段名等。

规定如下:(1)标识符由1~31个字符组成,打头的字符必须是字母、?(问号)、@和 - (下划线)。

(2)从第2个字符开始。

组成标识符的字符可以是字母、数字、@、?、 - 等,不能使用其他字符。

3.保留字8086/8088中指令助记符、伪指令、寄存器名、表达式运算符及属性操作符等都是系统的保留字。

保留字不能用作标识符。

4.语句80x86宏汇编语言有三种基本语句,即指令语句、伪指令语句和宏指令语句。

指令语句对应着机器的一种操作,汇编时产生一个目标代码;伪指令是为汇编程序提供编译信息、指标汇编程序做某些操作的语句,它不产生目标代码,与机器的操作无关。

一条语句在源程序中一般只占一行,长度超过一行时必须用续行符号&。

5.汇编语言程序结构用汇编语言编写的源程序,在结构上具有以下特点:(1)由若干逻辑段组成,各逻辑段由伪指令语句定义和说明。

(2)整个源程序以END伪指令结束。

(3)每个逻辑段由语句序列组成,各语句可以是指令语句、伪指令语句、宏指令语句、注释语句或空行语句。

(二)汇编语言和汇编处理过程计算机完成汇编任务是由一个称为汇编程序(Assembler)软件工具实现的。

汇编程序是一种系统软件。

汇编程序加工的对象是汇编语言程序,称为源程序,而汇编后产生的结果是机器语言程序,称为目标程序。

《汇编语言功能号大全》

《汇编语言功能号大全》

《汇编语言功能号大全》汇编语言功能号大全汇编语言是一种底层、机器级别的编程语言,主要用于编写低层次的系统软件和嵌入式设备的驱动程序。

在汇编语言中,各种功能号(Function Code)被用于告知计算机执行特定的操作,在编写程序时起到了至关重要的作用。

本文将为您介绍一些常用的汇编语言功能号,以帮助您更好地理解和运用汇编语言。

1. 数据传输功能号数据传输是汇编语言中最基本的操作之一。

以下是一些常见的数据传输功能号:1.1 MOV:将数据从一个位置复制到另一个位置。

1.2 XCHG:交换两个位置中的数据。

1.3 LEA:将一个内存地址复制到一个寄存器中。

1.4 PUSH:将数据压入栈中。

1.5 POP:将数据从栈中弹出。

2. 算术运算功能号算术运算在编程中经常用到,汇编语言提供了丰富的算术运算功能号,包括:2.1 ADD:将两个数相加。

2.2 SUB:从一个数中减去另一个数。

2.3 INC:将一个数加1。

2.4 DEC:将一个数减1。

2.5 MUL:将两个数相乘。

2.6 DIV:将一个数除以另一个数。

3. 逻辑运算功能号逻辑运算是程序中常用的操作之一,以下是一些常见的逻辑运算功能号:3.1 AND:对两个数执行逻辑与操作。

3.2 OR:对两个数执行逻辑或操作。

3.3 XOR:对两个数执行逻辑异或操作。

3.4 NOT:对一个数执行逻辑非操作。

4. 控制转移功能号控制转移是指在程序执行过程中跳转到另一个位置继续执行,以下是一些常见的控制转移功能号:4.1 JMP:无条件跳转到指定地址。

4.2 JZ:如果零标志位为真,则跳转到指定地址。

4.3 JC:如果进位标志位为真,则跳转到指定地址。

4.4 JNC:如果进位标志位为假,则跳转到指定地址。

4.5 CALL:调用一个子程序。

4.6 RET:返回到调用子程序的位置。

5. 中断功能号中断是汇编语言中常用的机制之一,用于处理外部事件和异常情况。

以下是一些常见的中断功能号:5.1 INT:触发指定的中断。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言符号和教材符号汇总(8088/8086 IBM PC计算机)--学习笔记" "∶教材符号+、-、*、/∶算术运算符。

&∶宏处理操作符。

宏扩展时不识别符号和字符串中的形式参数,如果在形式参数前面加上一个& 记号,宏汇编程序就能够用实在参数代替这个形式参数了。

$∶地址计数器的值——记录正在被汇编程序翻译的语句地址。

每个段均分配一个计数器,段内定义的所有标号和变量的偏移地址就是当前汇编地址计数器的值。

?∶操作数。

在数据定义语句中,操作数用?,其作用是分配并保留存储空间,但不存入确定的数据。

=∶等号伪指令——符号定义。

对符号进行定义和赋值,功能与EQU相似,但允许(重复)再定义。

:∶修改属性运算符(操作符)——段操作符。

用来临时给变量、标号或地址表达式指定一个段属性(不用缺省的段寄存器),自动生成一个“跨段前缀字节”。

注意,段寄存器CS和ES不能被跨越,堆栈操作时也不能跨越SS。

;∶注释符号。

%∶特殊宏操作符,用来将其后的表达式(通常是符号常数,不能是变量名和寄存器名)转换成它所代表的数值,并将此数值的ASCII码嵌入到宏扩展中。

( )∶1.运算符——用来改变运算符的优先级别。

2.教材符号,表示括号内存储单元(或寄存器)的内容。

< >∶宏调用时用来将带间隔符(如空格,逗号等)的字符串(作为实参)括起来。

∶运算符。

方括号括起来的数是数组变量的下标或地址表达式。

带方括号的地址表[ ] 1.②达式必须遵循下列原则,①只有BX、BP、SI、DI这四个寄存器可在方括号内出现;BX 或BP可单独出现在各方括号中,也可以与常数、SI或DI一起出现在方括号内,但不③和DI可以单独出现在各方括号内,也可允许BX和BP出现在同一个方括号内;SI以与常数、BP或BX一起出现在方括号内,但不允许SI和DI出现在同一个方括号内;④一个方括号内包含多个寄存器时,它们只能作加法运算;⑤若方括号内包含基址指针BP,则隐含使用堆栈段寄存器SS提供段基址,否则均隐含使用数据段寄存器DS提供段基址。

2.教材符号,表示其中的内容可省略。

.LIST∶伪指令。

用于打开列表文件输出。

.RADIX∶伪指令。

把缺省的基数改为2-16范围内的任意基数。

.RADIX不影响DD、DQ、DT伪指令,在这些伪指令中,输入的数值只要没有加上数据类型就认为是十进制数。

.XLIST∶伪指令。

用于关闭列表文件输出。

%OUT∶伪指令。

在汇编时显示其后的信息。

AAA∶指令助记符——加法运算后的ASCII调整(非压缩的BCD码)。

无操作数,调整的加法结果在AL中。

AF和CF的状态改变说明结果大于9。

检查AL的低四位是否为合法的BCD码(0-9),如果合法就清除AL的高四位以及AF和CF标志。

当AL的低四位表示的数大于9或AF=1时,将AL加6,AH加1 ,并使AF和CF置位,清除AL中的高四位。

任何一个A—F之间的数加上6 以后,都会使AL低4位产生0-9之间的数,从而达到调整的目的。

AAD∶指令助记符——除法的ASCII调整(非压缩的BCD码)。

在执行除法操作前,必须利用AAD指令将非压缩型BCD码表示的数转换成二进制数送AL。

步骤是,先将被除数的高位数(AH中的内容)乘以10,然后加到AL的低位数中,接着将AH清零。

AAM∶指令助记符——乘法的ASCII调整(非压缩的BCD码)。

用于将字节乘法的积转换成两个合法的十进制非压缩码。

AAM不带操作数,假定成绩在AH和AL中,并将调整后的非压缩码送回AH和AL。

为了保证AAM得到正确的结果,原乘数和被乘数必须是合法的非压缩码。

指令执行时,AAM 用10(0AH)除AL寄存器,并将除得的商和余数分别送AH和AL寄存器,实现转换。

AAS∶指令助记符——减法运算后的ASCII调整(非压缩的BCD码)。

检查AL的低四位是否为合法的BCD码(0-9),如果合法就清除AL的高四位以及AF和CF标志。

当AL的低四位表示的数大于9或AF=1时,将AL减6,AH减1 ,并使AF和CF 置1,清除AL中的高四位。

ADC∶指令助记符——带进位加法(把CF的值加上)。

用于多字节数的高字节加法运算。

ADD∶指令助记符——加法。

参与运算的二操作数应该同时带符号或不带符号,并且长度一致。

操作数可以是寄存器、存储器或立即数,但不能同时为存储单元或段寄存器,立即数也不能作为目的操作数。

∶,辅助进位标志,在标志寄存器的第4字节。

记录运算时第3 AF Auxiliary Carry Flag位(半个字节)产生的进位值(置1)。

该标志用于对BCD码的加减运算中。

AND∶逻辑运算符(在语句的操作数部分,汇编时完成)或逻辑操作指令助记符(在语句的操作码部分,其运算在执行指令时完成)——按位与。

只有相“与”的两位全为1 ,结果才为1。

某数自己与自己相“与”,操作数不变,进位标志CF清0 。

ASSUME∶段定义伪指令——设定分段寄存器,格式为"ASSUME 段寄存器:段名[,段寄存器名:段名]"。

在代码段的开始用来指出所有段与段寄存器的关系,确定某个段分配给哪个段寄存器。

ASSUME只指出各段寄存器的分配,并没有把段地址装入相应的段寄存器。

为此,在代码段中,还必须把数据段和附加数据段的段地址装入相应的寄存器中。

A T∶伪指令——段定义(组合类型)。

该段按绝对地址定位,段基址为数值表达式的值,位移量为0 。

不能指定代码段。

AX Accumulator∶,通用寄存器,算术运算的主要寄存器。

另外,所有的I/O指令都使用这一寄存器与外部设备传送信息。

其中AH是高8位,AL是低8位。

B∶数据类型后缀,表示二进制常量。

BP Base Pointer∶,基址指针寄存器。

可以与SS寄存器联用来确定堆栈中任一存储单元的地址。

它指示堆栈中任一单元的偏移量。

非堆栈进出指令要访问堆栈,只能通过BP进行。

∶,通用寄存器。

在计算存储器地址时,经常用作基址寄存器。

其中BH是高8 BX Base位,BL是低8位。

BYTE∶伪指令——段定义(定位类型)。

本段起始单元可以从任一地址开始,段间不留空隙,存储器利用率最高。

CALL∶指令助记符——程序调用。

一、段内直接调用:格式为" CALL 过程名"。

先把IP内容(子程序的返回地址,即CALL下一条指令的地址)压入堆栈,然后IP转移到子程序的入口地址。

二、段内间接调用:格式为" CALL WORD PTR OPD"。

先把IP的内容压入堆栈,然后IP指向(转到)由寻址方式决定的EA。

三、段间直接调用。

格式为"CALL FAR PTR 过程名"。

先把CS和IP的内容压入堆栈,然后在CS中装入新的段地址,IP指向段内偏移地址。

四、段间间接调用:格式为"CALL DWORD PTR OPD"。

先把CS和IP的内容压入堆栈,然后把寻址方式确定的有效地址所指定的一个字储存单元的内容送入IP,下一个字存储单元的内容(段首址)送入CS。

CBW∶指令助记符——字节转换为字。

把AL中字节的符号扩展到AH中,若(AL)的最高有效位为0 ,则(AH)=00;若(AH)的最高有效位为1,则(AH)=0FFH。

∶,进位标志,在标志寄存器的第0字节,记录运算时从最高有效位产生的CF Carry Flag进位值(置1)。

作加法时,CF位可以用来表示无符号数的溢出(有符号数溢出用OF 表示)。

CLC∶指令助记符——标志(进位)设置。

设置CF=0。

CLD∶指令助记符——清方向标志。

使DF=0 。

这样,当执行字节串操作指令时,地址自动增1 ;当执行字串操作指令时,地址自动增2 。

CLI∶指令助记符——中断允许标志设置。

设置IF=0 。

CMC∶指令助记符——标志(进位)设置。

CF取反。

CMP∶指令助记符——比较。

对于“ CMP AX,BX” ,如果是两个无符号数比较(减),若结果没有产生借位,即CF=0,则(AX)≥(BX);若CF=1,则(AX)〈(BX)。

如果是两个带符号数比较,则当没有溢出(OF=0)时,若SF=0,则(AX)〉(BX)若SF=1,则(AX)〈(BX)当产生溢出(OF=1)时,若SF=0,则(AX)〈(BX)多SF=1,则(AX)〉(BX)简炼的结论,若OF 异或SF=0,则(AX)〉(BX)若OF 异或SF=1,则(AX)〈(BX)CMPS∶指令助记符——串比较。

通常用CMPSB或CMPSW。

CMPSB∶指令助记符——串比较。

将DS段SI指出的字节数据减去ES段DI指出的字节数据(不保存结果),然后根据相减结果设置标志位(两个数据相等,则ZF=1)。

并由方向标志DF修改SI 和DI中的地址,即当DF=0时,地址都加1;当DF=1时,地址都减1 。

CMPSW∶指令助记符——串比较。

将DS段SI指出的字数据减去ES段DI指出的字数据(不保存结果),然后根据相减结果设置标志位(两个数据相等,则ZF=1)。

并由方向标志DF修改SI 和DI中的地址,即当DF=0时,地址都加2;当DF=1时,地址都减2 。

COMMON∶伪指令——段定义(组合类型)。

该段与其它模块中所有也说明为COMMON的同名,同'类别'段共享相同的存储区域,即这些段的起始地址都相同,共享的公共存储区域的长度是各模块同名段中最大的长度。

使用COMMON方式可以使不同模块中的不同变量或标号作用于相同的存储单元。

∶,代码段寄存器,存放当前运行的代码段起始地址(高16位)。

代码CS Code Segment段存放当前正在运行的程序。

CWD∶指令助记符——字转换为双字。

把AX中字节的符号扩展到DX中,若(AX)的最高有效位为0 ,则(DX)=0000;若(AX)的最高有效位为1,则(DX)=0FFFFH。

∶通用寄存器。

在循环和串处理指令中用作隐含的计数器。

其中CH是高8 CX Count,位,CL是低8位。

DAA∶指令助记符——加法的十进制调整(压缩的BCD码)。

无操作数,调整的加法结果在AL中。

调整方法是,如果AL的低4位大于9 或AF=1 ,则加 6 到AL并置AF=1 ;如果AL的高4位大于9或CF=1 ,则加60H 到AL,并置CF=1 。

DAS∶指令助记符——减法的十进制调整(压缩的BCD码)。

调整方法是,若AF=1 或AL的低4位为A—F,则(AL)减06H,且AF置1;若CF=1 或AL的高4位为A—F,则(AL)减60H,且CF置1。

DB∶伪指令——定义字节。

其后的每个操作数占用一个字节。

若是字符串,必须用引号' '括起来,字符串不能超过255个字符,字符串自左至右以字符的ASCII码按地址递增的顺序依次存放。

相关文档
最新文档