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-指令机器码

• 要是指令中包含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在微机及接口技术教学中的应用

• 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寻址方式与指令机器码

执行结果 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汇编和机器码的对应表
单⽚机指令功能⼀览表
助记符代码说明
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指令详解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)=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)、逻辑地址与物理地址 )、
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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