8086指令与机器码对应

W.F.R/M
SUB
B.T.R/M
SUB
W.T.R/M
SUB
AL,
SUB
AX,
CS:
DAS
2
3
CMP
B.F.R/M
CMP
W.F.R/M
CMP
B.T.R/M
CMP
W.T.R/M
CMP
AL,
CMP
AX,
DS:
AAS
3
4
DEC AX
DEC CX
DEC DX
DEC BX
DEC SP
DEC BP
DEC SI
DEC DI
BX
011
100
[SI]
[SI+D8]
[SI+D16]
AH
SP
100
101
[DI]
[DI+D8]
[DI+D16]
CH
BP
101
110
[D16]
[BP+D8]
[BP+D16]
DH
SI
110
111
[BX]
[BX+D8]
[BX+D16]
BH
DI
111
↑R/M
→MOD
00
01
10
11
↑R/M
←MOD
段寄存器
8086/8088
指令与机器码转换对照表
\L
H\
0
1
2
3
4
5
6
7
L/
/H
0
ADD
B.F.R/M
ADD
W.F.R/M
ADD
B.T.R/M
ADD
W.T.R/M
ADD
AL,
ADD
AX,
PUSHES
POP ES
0
1
ADC
B.F.R/M
ADC
W.F.R/M
ADC
B.T.R/M
ADC
W.T.R/M
ADC
AL,
ADC
INC DX
INC BX
INC SP
INC BP
INC SI
INC DI
4
5
PUSH AX
PUSH CX
PUSH DX
PUSH BX
PUSH SP
PUSH BP
PUSH SI
PUSH DI
5
6
PUSHA
POPA
BOUND
FS:
GS:
操作尺
寸前缀
寻址尺
寸前缀
6
7
JO *
JNO *
JB *
JNB *
JE *
↓MOD
000
[BX+SI]
[BX+SI+D8]
[BX+SI+D16]
AL
AX
000
001
[BX+DI]
[BX+DI+D8]
[BX+DI+D16]
CL
CX
001
010
[BP+SI]
[BP+SI+D8]
[BP+SI+D16]
DL
DX
010
011
[BP+DI]
[BP+DI+D8]
[BP+DI+D16]
BL
OUT
,AX
E
F
LOCK
REPNZ
REPZ
HLT
CMC
GRP1
I.B.R/M
GRP1
I.W.R/M
F
H/
/L
0
1
2
3
4
5
6
7
\H
L\
注:*为IP或SP加8位偏移量,**为16位偏移量
B字节,W字,F源,T目,I立即数,E经符号扩展,V移CL位,SR段寄存器
F、T指REG字段所确定的操作数是源还是目。
AL,DX
IN
AX,DX
OUT
DX,AL
OUT
DX,AX
E
F
CLC
STC
RP2
I.B.R/M
GRP2
I.W.R/M
F
H/
/L
8
9
A
B
C
D
E
F
\H
L\
根据REG字段确定操作指令
MOD[][][]R/M
000
001
010
011
100
101
110
111
IMMED
ADD
OR
ADC
SBB
W.R/M
RET
RET
LES
R/M
LDS
R/M
MOV
I.B.R/M
MOV
I.W.R/M
C
D
SHIFT
B.R/M
SHIFT
W.R/M
SHIFT
B.V.R/M
SHIFT
W.V.R/M
AAM
D40A
AAD
D50A
XLAT
D
E
LOOPNE *
LOOPE *
LOOP *
JCXZ *
IN
AL,
IN
AX,
OUT
,AL
XCHG
SI,AX
XCHG
DI,AX
9
A
MOV
AL,[D16]
MOV
AX,[D16]
MOV
[D16],AL
MOV
[D16],AX
MOVSB
MOVSW
CMPSB
CMPSW
A
B
MOV
AL,
MOV
CL,
MOV
DL,
MOV
BL,
MOV
AH,
MOV
CH,
MOV
DH,
MOV
BH,
B
C
SHIFT
B.R/M
SHIFT
\L
H\
8
9
A
B
C
D
E
F
L/
/H
0
OR
B.F.R/M
OR
W.F.R/M
OR
B.T.R/M
OR
W.T.R/M
OR
AL,
OR
AX,
PUSH CS
0
1
SBB
B.F.R/M
SBB
W.F.R/M
SBB
B.T.R/M
SBB
W.T.R/M
SBB
AL,
SBB
AX,
PUSH DS
POP DS
1
2
SUB
B.F.R/M
SUB
4
5
POP AX
POP CX
POP DX
POP BX
POP SP
POP BP
POP SI
POP DI
5
6
PUSH
W.I
IMUL
W.I
PUSH
B.I
IMUL
B.I
INSB
INSW
OUTSB
OUTSW
6
7
JS *
JNS *
JP *
JNP *
JL *
JNL *
JNG *
JG *
7
8
MOV
B.F.R/M
MOV
000
ES
001
CS
010
SS
011
DS
100
FS
101
GS
MOD、REG、R/M字段的结构
MOD
REG
R/M
7
6
5
4
3
2
1
0
JNE *
JNA *
JA *
7
8
IMMED
I.B.R/M
IMMED
I.W.R/M
IMMED
I.B.R/M
IMMED
I.E.R/M
TEST
B.R/M
TEST
W.R/M
XCHG
B.R/M
XCHG
W.R/M
8
9
NOP
XCHG
CX,AX
XCHG
DX,AX
XCHG
BX,AX
XCHG
SP,AX
XCHG
BP,AX
AX,
PUSH SS
POP SS
1
2
AND
B.F.R/M
AND
W.F.R/M
AND
B.T.R/M
AND
W.T.R/M
AND
AL,
AND
AX,
ES:
DAA
2
3
XOR
B.F.R/M
XOR
W.F.R/M
XOR
B.T.R/M
XOR
W.T.R/M
XOR
AL,
XOR
AX,
SS:
AAA
3
4
INC AX
INC CX
AX,
MOV
CX,
MOV
DX,
MOV
BX,
MOV
SP,
MOV
BP,
MOV
SI,
MOV
DI,
B
C
ENTER
数,级
LEAVE
RETF **
RETF
INT 3
INT
INTO
IRET
C
合集下载

8086指令集机器码

8086指令集机器码

8086指令集机器码
2. ADD指令(将两个数相加并将结果存储在目标位置): - 寄存器相加: 机器码:01 D1(例如,将ECX寄存器的值与EDX寄存器的值相加) - 立即数与寄存器相加: 机器码:83 C0 05(例如,将EAX寄存器的值与立即数05相加)
3. JMP指令(无条件跳转到指定的地址): - 相对短跳转: 机器码:EB rel8(例如,EB 05,跳转到相对偏移量为05的地址) - 相对长跳转: 机器码:E9 rel16(例如,E9 1234,跳转到相对偏移量为1234的地址)
8086指令集机器码
8086指令集是Intel 8086处理器的指令集架构,它定义了一系列的机器码(二进制代码 )来执行不同的操作。下面是一些常见的8086指令及其对应的机器码示例:
1. MOV指令(将数据从一个位置移动到另一个位置): - 传送立即数到寄存器: 机器码:B8 imm16(例如,B8 1234) - 传送寄存器到寄存器: 机器码:89 C1(例如,将EAX寄存器的值传送到ECX寄存器) - 传送内存到寄存器: 机器码:8B 45 08(例如,将偏移地址为08的内存单元的值传送到EAX寄存器)
8086指令集机器码
4. INT指令(触发中断): - 软中断: 机器码:CD int8(例如,CD 1,触发21号软中断)
这是8086指令集中的示例,每个指令都有特定的操作码和操作数,机器码的格式和长度 也会有所不同。如果需要查找特定指令的机器码,可以参考8086处理器的文档或相关资料。

【微机原理】3.2-指令机器码

【微机原理】3.2-指令机器码
• MOD字段的3种编码和R/M的8种编码,共组成24种不同的编码格式, 即涉及存储器操作的寻址方式可以有24种不同的表示方法。
• 要是指令中包含8位位移量,需再增加1字节存放位移量disp-L;如果 包含16位的位移量,则要增加2字节存放位移量disp-L和disp-H。
下面通过示例来对MOV指令进行编码。
M/
§3.2 指令的机器码表示方法*
3.2.1 机器语言指令的编码目的和特点 3.2.2 机器语言指令代码的编制
*本节内容供选用
3.2.1 机器语言指令的编码目的和特点
1.机器语言指令
• 计算机只能识别二进制表示的机器语言指令, 也称为机器码。 • 编程时,一般可不必了解指令的机器码。
• 若要透彻了解计算机的工作原理,看懂包含 机器码的程序清单,对程序进行正确的调试、 排错等,就要了解机器语言。
如选择BX的编码011送REG,则D=0,表示从BX传出,R/M=100,其余同上,可求 得指令的另一种编码格式。
3.寄存器与存储器间传送指令的编码
例3.19 求指令MOV CL,[BX+1234H]的机器码。 指令功能:将地址(BX+1234H)中的字节数据传送到CL中,指令编码如
图3.10。
求该指令编码的第1、2字节的方法与例3.18类似,可 通过查表获得; 第3字节存放16位位移量的低字节34H,第4字节存放高 字节12H。所以该指令的编码为8A 8F 34 12H。
2.寄存器间传送指令的编码
例3.18 求指令MOV SP,BX的机器码。
指令功能:将BX内容送到SP寄存器中。 其操作码为100010; 传送字数据W=1;REG字段为100指定
SP;D=1表示传进SP。 另一操作数BX也是寄存器,因此MOD=11; 再根据W=1及BX,

EMU8086在微机及接口技术教学中的应用

EMU8086在微机及接口技术教学中的应用

• 77•EMU8086在微机及接口技术教学中的应用郑州工程技术学院 机电与车辆工程学院 时 伟1.引言《微机及接口技术》课程是高等学校计算机、电子及自动化类专业的一门重要专业基础课,该课程以Intel 8086/8088为核心讲述中央处理器的基本构架及工作原理、指令系统和汇编程序设计、接口电路设计与编程等方面的内容;教学内容抽象、涉及知识面广、且前后联系紧密,在教学中常分课程教学和实践教学。

随着信息科学的发展,高校课程体系也在改革,微机原理的教学课时不断被压缩,这提高了实际讲授和学习的难度,学生普遍反映难度大且不容易理解,教学效果一般。

为了提高教学效率,并在一定程度上降低学习难度,本文依据笔者的教学经验,借助多媒体教室的平台优势,发挥CAD 仿真工具直观形象的功能特点,对微机原理课程的重点和难点部分做了课堂同步仿真演示,并对仿真过程和结果做出分析,取得了较好的教学效果,同时也调动了学生的积极性。

目前,计算机在高校图书馆和学生中相当普及,课下学生可在教师课件和仿真文件的帮助下,对课程的教学内容做仿真分析,这调动了学生学习积极性的同时也培养了独立分析和解决问题的能力。

在电子设计分析领域中,CAD 仿真工具众多,本文以EMU8086为仿真工具,结合实例介绍将仿真技术引入微机原理课堂教学中所体现的优势。

2.EMU8086工具介绍EMU8086是一款基于Windows 平台的8086微处理器仿真软件,内部集成了汇编程序、连接器和调试器,并提供了丰富的设计例程和参考资料。

该软件可模拟真实微处理器运行程序的过程,也可单步执行并显示寄存器、存储器、堆栈、标志寄存器以及变量的值,对数值的修改通过鼠标操作即可完成。

另外,通过EMU8086还可模拟IO 接口及显示器、直流步进电机、交通红绿灯和LED 等外设。

3.软件仿真在课堂教学中的运用3.1 源程序的输入和编译在EMU8086环境下,系统提供了四套模板com/exe/bin/boot ,分别用于简单程序段、完整汇编程序、二进制源码和启动程序的高效输入编写。

3.1-3.28086寻址方式与指令机器码

3.1-3.28086寻址方式与指令机器码

执行结果 BX=5678H,执行过程如图3.4。
中国科学技术大学
3.1 8086寻址方式
第3章 8086 指令系统
寄存器相对寻址
上述指令也可用MOV 式来表示。
BX,[COUNT+SI]这种形
中国科学技术大学
3.1 8086寻址方式
第3章 8086 指令系统
§3.1 8086的寻址方式
3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 立即数寻址方式 寄存器寻址方式 直接寻址方式 寄存器间接寻址方式 寄存器相对寻址方式 基址变址寻址方式 相对基址变址寻址方式 其它寻址方式
中国科学技术大学
3.1 8086寻址方式
第3章 8086 指令系统
§3.1 8086的寻址方式
3.1.1 立即数寻址方式 3.1.2 寄存器寻址方式 3.1.3 直接寻址方式 3.1.4 寄存器间接寻址方式 3.1.5 寄存器相对寻址方式 3.1.6 基址变址寻址方式 3.1.7 相对基址变址寻址方式 3.1.8 其它寻址方式
中国科学技术大学
3.1 8086寻址方式
第3章 8086 指令系统
3.1.6 基址变址寻址方式
Based Indexed Addressing
有效地址是一个基址寄存器 (BX 或 BP) 和一个变 址寄存器(SI或DI)的内容之和,两个寄存器均由 指令指定。
若基址寄存器为BX时,段址寄存器用DS,则: 物理地址 = 16×DS+BX+SI
约定 1:如果指令中指定的寄存器是 BX、 SI或 DI,则 默认操作数存放在数据段中,
物理地址=16×DS+BX 或=16×DS+SI 或=16×DS+DI

8086汇编和机器码的对应表

8086汇编和机器码的对应表

8086汇编和机器码的对应表
单⽚机指令功能⼀览表
助记符代码说明
MOV A,Rn E8~EF
寄存器A
MOV A,direct E5 dircet 直接字节送A
MOV A,@Ri ER~E7
间接RAM送A
MOV A,#data 74 data ⽴即数送A
MOV Rn,A F8~FF
A送寄存器
MOV Rn,dircet A8~AF dircet 直接字节送寄存器
MOV Rn,#data 78~7F data ⽴即数送寄存器
MOV dircet,A F5 dircet A送直接字节
MOV dircet,Rn 88~8F dircet 寄存器送直接字节
MOV dircet1,dircet2 85 dircet1 dircet2 直接字节送直接字节MOV dircet,@Ro 86~87
间接RAM送直接字节
MOV dircet,#data 75 dircet data ⽴即数送直接字节MOV @Ri,A F6~F7
A送间接RAM
MOV @Ri,#data 76~77 data 直接字节送间接RAM MOV @Ri,#data 76~77 data ⽴即数送间接RAM
MOV DPTR,#data16 90 data 15~8 16位常数送数据指针data7~0
MOVC A,@A+DPTR 93
由((A)+(DPTR))寻址的程序存贮
器字节选A
MOVC A,@A+PC 83
由((A)+(PC));寻址的程序存贮器字节送A
MOVX A,@Ri E2~E3
送外部数据(8位地址)送A
MOVX A,@DPTR E0
送外部数据(16位地址)送A。

8086汇编中jmp指令详解

8086汇编中jmp指令详解

8086汇编中jmp指令详解jmp指令解释:⏹jmp为无条件转移,可以只修改IP,也可以同时修改CS和IP;⏹jmp指令要给出两种信息:⏹转移的目的地址⏹转移的距离(段间转移、段内短转移,段内近转移)格式:一.Jump short 标号这种格式的 jmp 指令实现的是段内短转移,它对IP的修改范围为 -128~127,也就是说,它向前转移时可以最多越过128个字节,向后转移可以最多越过127个字节。

示例:assume cs:codesgcodesg segmentstart:mov ax,0jmp short sadd ax,1s:inc axcodesg endsend start说明:上面的程序执行后, ax中的值为 1 ,因为执行 jmp short s 后,越过了add ax,1 ,IP 指向了标号 s处的 inc ax。

也就是说,程序只进行了一次ax加1操作。

注意:⏹汇编指令jmp short s 对应的机器指令应该是什么样的呢?⏹我们先看一下别的汇编指令和其对应的机器指令可以看到,在一般的汇编指令中,汇编指令中的idata(立即数),不论它是表示一个数据还是内存单元的偏移地址,都会在对应的机器指令中出现,因为CPU执行的是机器指令,它必须要处理这些数据或地址。

⏹但是:当我们查看jmp short s或jmp 0008所对应的机器码,却发现了问题。

看到了吗?机器码中并不含有立即数。

为什么呢,解释如下⏹在“jmp short 标号”指令所对应的机器码中,并不包含转移的目的地址,而包含的是转移的位移。

⏹这个位移,使编译器根据汇编指令中的“标号”计算出来的。

如果我们在第一行程序后加上Mov bx,0000,你会发器机器码没变,还是EB03,为什么呢?jm p 0008对应的偏移就是0003大家可以回忆一下cpu中指令的执行流程,就会发现当执行完EB03后,ip=ip+2=0005,大家注意看EB03后面有个03,表示再向后三个单位,这样就到了0008这个偏移处了。

8086汇编语言指令表(按字母顺序)

(2) 若(AL) and 0F0H>90H 或 CF=1,则(AL)<--(AL)+60H,CF<--1.
2. 示例: (AL)=18H,(BL)=06H
ADD AL,BL ; (AL)<--(AL)+(BL) ; (AL)=1EH
DAA ; (AL)
DAS
组合十进制减法调整指令 DAS(Decimal Adjust for Subtraction)
则(AL)<--(AL)-6,(AH)<--(AH)-1,CF<--AF,(AL)<--(AL) and 0FH,
否则(AL)<--(AL) and 0FH
ADC
带进位加法指令 ADC(Addition Carry)
格式: ADC OPRD1,OPRD2
功能: OPRD1<--OPRD1 + OPRD2 + CF
DAA
组合的十进制加法调整指令 DAA(Decimal Adjust for Addition)
格式: DAA
功能: 对AL中的两个组合进制数相加的结果进行调整,调整结果仍放在AL中,进位标志放在CF中.
说明:
1. 调整操作如下
(1) 若(AL) and 0FH>9 或 AF=1,则(AL)<--(AL)+6,AF<--1,对低四位的调整.
格式: DAS
功能: 对两个组合十进制数相减后存于AL中的结果进行调整,调整后产生一个组合的十进制数且仍存于AL中.
说明:
调整操作
若(AL) and 0FH > 9 或 AF=1,则(AL)<--(AL)-6,AF=1
若(AL) and 0F0H > 90H 或 CF=1,则(AL)<--(AL)-60,CF=1

3.2 8086最小模式系统的基本配置


堆栈栈顶操作: 堆栈栈顶操作:
自动选择堆栈段寄存器 , 自动选择堆栈段寄存器SS, 堆栈段寄存器 决定的16位偏移量 再加上由SP决定的 位偏移量, 加上由 决定的 位偏移量, 计算得到堆栈栈顶操作需要的20位物理地址 计算得到堆栈栈顶操作需要的 位物理地址。 堆栈栈顶操作需要的 位物理地址。
与执行指令有关的地址、数字、 涉及到操作数(与执行指令有关的地址、数字、寄存器 等统称为操作数) 等统称为操作数): 自动选择数据段寄存器DS或附加段寄存器 , 自动选择数据段寄存器 或附加段寄存器ES, 或附加段寄存器 位物理地址。 再加上16位偏移量,计算得到操作数的 位物理地址 再加上 位偏移量,计算得到操作数的20位物理地址。 位偏移量 其中: 其中: 16位偏移量 位偏移量: 位偏移量 包含在:指令中的直接地址 包含在:指令中的直接地址 某个16位地址寄存器的值 某个 位地址寄存器的值 位地址 指令中的位移量 指令中的位移量+16位地址寄存器中值等。 位地址寄存器中值等 位移量 位地址寄存器中值
奇 偶
8086
8284 时钟
CLK RESET READY
控制 总线
AD 15-AD 0 DEN RESET READY DIR DT/R
I/O接口
8286 收发器 T (2片) OE
数据 总线
3.3 存储器组织 1.存储器地址: 存储器地址:
8086有20条地址总线,直接寻址能力为 20=1M字节。 有 条地址总线 直接寻址能力为2 条地址总线, 字节。 字节 进制数表示1M字节的地址范围应为 用16进制数表示 字节的地址范围应为 进制数表示 字节的地址范围应为00000H~FFFFFH。 。 (1)、 8086内部 位物理地址形成 内部20位物理地址形成 )、 内部 )、逻辑地址与物理地址 (2)、逻辑地址与物理地址 )、

第四章:8086汇编语言程序设计


第 4章
汇编语言程序设计
汇编语言程序设计
(2)尽量采用循环结构和子程序 (2)尽量采用循环结构和子程序 采用循环结构和子程序可以使程序的长度减少、 采用循环结构和子程序可以使程序的长度减少、 占用内存空间减少。 占用内存空间减少。 多重循环,注意各重循环的初值和循环结束条件, 多重循环,注意各重循环的初值和循环结束条件, 死循环”现象; 避免出现 “死循环”现象; 通用的子程序, 通用的子程序,除了用于存放子程序入口参数的寄 存器外, 存器外,子程序中用到的其它寄存器的内容应压入堆栈 进行现场保护, 进行现场保护,并要特别注意堆栈操作的压入和弹出的 平衡; 平衡; 中断处理子程序除了要保护程序中用到的寄存器外, 中断处理子程序除了要保护程序中用到的寄存器外, 还应保护标志寄存器。 还应保护标志寄存器。
1、汇编语言的语句格式
汇编语言源程序是由汇编语句(即指令)组成的。 汇编语言源程序是由汇编语句(即指令)组成的。 汇编语言一般由四部分组成。 汇编语言一般由四部分组成。
其典型的汇编语句格式: 其典型的汇编语句格式: 标号: 标号:操作码
例如: 例如: START: START:MOV AL,30H AL,30H ;(AL)=30H (AL)=30H 30
第 4章
汇编语言程序设计
汇编语言程序设计
经过任务分析、算法优化后, 经过任务分析、算法优化后, 在微型机上使用编 首先, 首先,要对单片机应用 就可以进行程序的总体构思, 就可以进行程序的总体构思, 辑软件编写源程序, 辑软件编写源程序, 系统预完成的任务进行 确定程序的结构和数据形式, 确定程序的结构和数据形式, 在使用交叉汇编的 深入的分析, 深入的分析,明确系统 并考虑资源的分配和参数的 方法对源程序进行 的设计任务、 的设计任务、功能要求 计算等。 计算等。然后根据程序运行 汇编, 汇编,然后采用串 和技术指标。其次, 和技术指标。其次,要 的过程, 的过程,勾画出程序执行的 算法是解决具体问题 行通信的方法, 行通信的方法,把 对系统的硬件资源和工 逻辑顺序, 。同一个问题 逻辑顺序,用图形符号将总 的方法。 的方法 汇编得到的目标程 作环境进行分析。 ,, 作环境进行分析。这是 体设计思路及程序流向绘制 的算法可以有多种, 的算法可以有多种 序传送到单片机内, 序传送到单片机内 单片机应用系统程序设 在平面图上, 在平面图上,从而使程序的 结果也可能不尽相同, 结果也可能不尽相同, 并进行程序运行和 计的基础和条件 结构关系直观明了, 结构关系直观明了,便于检 所以, 调试 所以,应对各种算法 查和修改。 查和修改。 进行分析比较,并进 进行分析比较, 行合理的优化

汇编和机器码的对应表

8086汇编和机器码的对应表(总11页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--单片机指令功能一览表助记符代码说明MOV A,Rn E8~EF 寄存器AMOV A,direct E5 dircet 直接字节送AMOV A,@Ri ER~E7 间接RAM送AMOV A,#data 74 data 立即数送AMOV Rn,A F8~FF A送寄存器MOV Rn,dircet A8~AF dircet 直接字节送寄存器MOV Rn,#data 78~7F data 立即数送寄存器MOV dircet,A F5 dircet A送直接字节MOV dircet,Rn 88~8F dircet 寄存器送直接字节MOV dircet1,dircet2 85 dircet1 dircet2 直接字节送直接字节MOV dircet,@Ro 86~87 间接RAM送直接字节MOV dircet,#data 75 dircet data 立即数送直接字节MOV @Ri,A F6~F7 A送间接RAMMOV @Ri,#data 76~77 data 直接字节送间接RAM MOV @Ri,#data 76~77 data 立即数送间接RAM MOV DPTR,#data16 90 data 15~8 16位常数送数据指针 data7~0MOVC A,@A+DPTR 93 由((A)+(DPTR))寻址的程序存贮器字节选AMOVC A,@A+PC 83 由((A)+(PC));寻址的程序存贮器字节送AMOVX A,@Ri E2~E3 送外部数据(8位地址)送A MOVX A,@DPTR E0 送外部数据(16位地址)送AMOVX @Ri,A F2~F3 A送外部数据(8位地址)MOVX @DPTR,A F0 A送外部数据(16位地址)PUSH dircet C0 dircet 直接字节进栈,SP加1 POP dircet D0 dircet 直接字节退栈,SP减1XCH A,Rn C8~CF 交换A和寄存器XCH A,dircet C5 dircet 交换A和直接字节XCH A,@Ri C6~C7 交换A和间接RAMXCH A,@Ri D6~D7 交换A和间接RAM的低位SWAP A C4算术操作(A的二个半字节交换)ADD A,Rn 28~2F 寄存器加到AADD A,dircet 25 dircet 直接字节加到AADD A,@Ri 26~27 间接RAM加到AADD A,#data 24data 立即数加到AADD A,Rn 38~3F 寄存器和进位位加到A ADD A,dircet 35dircet 直接字节和进位位加到A ADD A,@Ri 36~37 间接字节和进位位加到A ADD A,data 34 data 立即数和进位位加到A ADD A,Rn 98~9F A减去寄存器和进位位ADD A,dircet 95 dircet A减去直接字节和进位位ADD A,@Ri 36~37 间接RAM和进位位加到A ADD A,data 34 data 立即数和进位位加到A SUBB A,Rn 98~9F A减去寄存器和进位位SUBB A,dircet 95 dircet A减去直接字节和进位位SUBB A,@Ri 96~97 A减去间接RAM和进位位SUBB A,#data 94 data A减去立即数和进位位INC A 04 A加1INC Rn 08~0F 寄存器加1INC dircet 05 dircet 直接字节加1INC @Ri 06~07 间接RAM加1DEC A 14 A减1DEC Rn 18~1F 寄存器减1DEC dircet 15 dircet 直接字节减1DEC @Ri 16~17 间接RAM减1INC DPTR A3 数据指针加1MUL AB A4 A乘以BDIV AB 84 A除以BDA A D4 A的十进制加法调整逻辑操作ANL A,Rn 58~5F 寄存器“与”到AANL A,dircet 55 dircet 直接字节“与”到AANL A,@Ri 56~57 间接RAm“与”到AANL A,#data 54 data 立即数“与”到AANL dircet A 52 dircet A“与”到直接字节ANL dircet,#data 53 dircet data 立即数“与”到直接字节ORL A,Rn 48~4F 寄存器“或”到AORL A,dircet 45 dircet 直接字节“或”到AORL A,@Ri 46~47 间接RAM“或”到AORL A,#data 44 data 立即数“或”到AORL dircet,A 42 dircet A“或”到直接字节ORL dircet,#data 43 dircet data 立即数“或”到直接字节XRL A,Rn 68~6F 寄存器“异或”到AXRL A,dircet 65 dircet 直接字节“异或”到AXRL A,@Ri 66~67 间接RAM“异或”到AXRL A,#data 64 data 立即数“异或”到AXRL dircet A 62 dircet A“异或”到直接字节XRL dircet,#data 63 dircet data 立即数“异或”到直接字节CLR A E4 清零CPL A F4 A取反RL A 23 A左环移RLC A 33 A通过进位左环移RR A 03 A右环移RRC A 13 A通过进位右环移控制程序转移ACALL addr 11 *1 addr(a7~a0) 绝对子程序调用LCALL addr 16 12 addr(15~8) 长子程序调用addr(7~0)RET 22 子程序调用返回RETI addr 11 32 中断调用返回AJMP addr 11 △1 addr(a7~a6) 绝对转移LJMP addr 16 02addr(15~8) 长转移addr(7~0)SJMP rel 80 rel 短转移,相对转移JMP @A+DPTR 73 相对于DPTR间接转移JZ rel 60 rel A为零转移JNZ rel 70 rel A为零转移CJNE A,dircet,rel B5 dircet rel 直接字节与A比较,不等则转移CJNE A,#data,rel B4 data rel 立即数与A比较,不等则转移CJNE A,Rn,#data,rel B8~BF data rel 立即数与寄存器比较,不等则转移CJNE @Ri,#data,rel B6~B7 data rel 立即数与间接RAM比较,不等则转移DJNZ Rn,rel D8~DF rel 寄存器减1,不为零则转移DJNZ dircet,rel B5 dircet rel 直接字节减1,不为零则转移NOP 00 空操作*=a10a9a8l△=a10a9a80 布尔变量操作CLR C C3 清零进位CLR bit C2 清零直接位SETB C D3 置位进位SETB bit D2 置位直接位CPL C B3 进位取反CPL bit B2 直接位取反ANL C,bit 82 dit 直接数“与”到进位ANL C,/bit B0 直接位的反“与”到进位ORL C,bit 72 bit 直接位“或”到进位ORL C,/bit A0 bit 直接位的反“或”到进位MOV C,bit A2 bit 直接位送进位MOV bit,C 92 bit 进位送直接位JC rel 40 rel 进位位为1转移JNC rel 50 rel 进位位为0转移JB bit,rel 20 bit rel 直接位为1相对转移JNB bit,rel 30 bit rel 直接位为0相对转移JBC bit,rel 10 bit rel 直接位为1相对转移,然后清零该位0人 | 分享到:阅读(213)| 评论(0)| 引用(0) |举报。

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