微机原理8086指令系统表

合集下载

微机原理(杭州电子科技大学【4】8086系统结构[2-3]

微机原理(杭州电子科技大学【4】8086系统结构[2-3]

15:28
22
二、系统的复位与启动
【8086CPU时序】
① 复位信号:通过RESET引脚上的触发信号来引起8086系统复位和启
动,RESET至少维持4个时钟周期的高电平。
② 复位操作:当RESET信号变成高电平时,8086/8088CPU结束现行
操作,各个内部寄存器复位成初值。
标志寄存器
清零
指令寄存器 CS寄存器 DS寄存器 SS寄存器 ES寄存器
的比例倍频后得到CPU的主频,即: CPU主频 = 外频 × 倍频系数
⑥ PC机各子系统时钟(存储系统,显示系统,总线等)是由系统频率按 照一定的比例分频得到。
15:28
5
内频 550MHz Pentium III
倍频系数5.5
L1 Cache
L2 550MHz Cache
处理机总线 100MHz
微机原理与接口技术
第四讲
15:28
第二章 8086系统结构
内容提要
z微型计算机的发展概况 z8086CPU内部结构 z8086CPU引脚及功能 z8086CPU存储器组织 z8086CPU系统配置 z8086CPU时序
15:28
2
※有关概念介绍
z 主频,外频,倍频系数 z T状态 z 总线周期 z 指令周期 z 时序 z 时序图
总线操作
读存储器操作 (取操作数)
写存储器操作 (将结果存放到内存)
读 I/O 端口操作 (取 I/O 端口中的数)
写 I/O 端口操作 (往 I/O 端口写数)
中断响应操作
总线周期
存储器读周期 存储器写周期 I/O 端口读周期 I/O 端口写周期 中断响应周期
15:28

《微机原理》8086与PC(2-2)

《微机原理》8086与PC(2-2)
特殊屏蔽方式:在高级中断服务程序执行过程中,允
许临时开放对低优先级中断源的服务
8259A的工作方式(续)
中断结束方式
中断自动结束方式:ISR中在响应时自动置1的位在进
入中断服务程序后自动清0
一般中断结束方式:在全嵌套方式下,EOI命令中不
指定结束的中断级,约定结束ISR中的最高优先级中 断,对应位将被复位
中断向量表的构成
中断向量表:把所有中断源的中断向量集中在
一起,形成中断向量表
8086在内存中地址为00000H~003FFH的 存储区内建立中断向量表,共存放256个中断向 量,每个向量占4个字节,IP在低地址单元、 CS在高地址单元
此表的查询索引为中断类型号
中断类型号及其获取
中断类型号:系统分配给每个中断源的代
为I/O设备服务
中断服务程序执行 中断返回(IRET)
断点和FLAGS从 堆栈中弹出(断点恢复)
恢复现场
给中断控制器发中 断结束(EOI)命令
回到中断前运行 的程序继续执行
中断传送流程
返回
8259A芯片
可编程中断控制器8259A主要功能为:
(1)对8个外部中断源进行管理,具有8级优 先权控制,通过级连可扩展至64级优先权控制。
五、8253/8254定时/计数器
主要功能
3个独立的16位计数器 每个计数器可以按二进制或BCD码计数 计数速率可达2MHz(8254-2达10MHz) 每个计数器有6种工作方式,可编程设置和改
变 输入输出引脚与TTL电平兼容
8253内部结构图
计数器结构
8253有三个独立的计数器(计数通道)
计数初值寄存器(16位)
先读写最低有效字节再
读写最高有效字节

计算机微机原理8086指令

计算机微机原理8086指令
8086从功能上分成两大部分: 总线接口单元BIU(Bus Interface Unit) 执行单元EU (Execution Unit)
7
总线接口单元BIU (Bus Interface Unit)
负责8086CPU与存储器和I/O设备 功能: 间的信息传送。
8
执行单元EU (Execution Unit)
14
通用寄存器的名称与符号
① AX (Accumulator) --累加器
② BX (Base) --基址寄存器
③ CX (Count) --计数寄存器 ④ DX (Data) --数据寄存器 ⑤ SI (Source Index)是源变址寄存器
数据寄存器
⑥ DI (Destination Index)是目的变址寄存器
38
物理地址和逻辑地址的转换
由于段地址一般存放在段寄存器,所以物理地 址和逻辑地址的转换关系也可表示为: (段寄存器) (CS) 物理地址= (DS) (SS ) 左移4位 + 偏移地址
(ES)
逻辑地址的形式为 段寄存器:偏移地址
39
段寄存器
8086有4个16位专门存放段地址的段寄存器 CS--(Code Segment)(代码段)指明代码段的起 始地址 SS-- (Stack Segment)(堆栈段)指明堆栈段的起 始地址 DS-- (Data Segment)(数据段)指明数据段的起 始地址 ES-- (Extra Segment)(附加段)指明附加段的起 始地址 每个段寄存器用来确定一个逻辑段的起始地址,每种逻 辑段均有各自的用途
27
数据信息的表达单位

计算机中信息的单位 二进制位Bit:存储一位二进制数:0或1, 记做b 字节Byte:8个二进制位,D7~D0,记做B 字Word:16位,2个字节,D15~D0 双字DWord:32位,4个字节,D31~D0

微机原理课件第二章 8086系统结构

微机原理课件第二章 8086系统结构

但指令周期不一定都大于总线周期,如MOV AX,BX
操作都在CPU内部的寄存器,只要内部总线即可完成,不 需要通过系统总线访问存储器和I/O接口。
2021/8/17
17
• 8086CPU的典型总线时序,充分体现了总 线是严格地按分时复用的原则进行工作的。 即:在一个总线周期内,首先利用总线传 送地址信息,然后再利用同一总线传送数 据信息。这样减少了CPU芯片的引脚和外 部总线的数目。
• 执行部件(EU)
• 功能:负责译码和执行指令。
2021/8/17
5
• 联系BIU和EU的纽带为流水指令队列
• 队列是一种数据结构,工作方式为先进先出。写入的指令 只能存放在队列尾,读出的指令是队列头存放的指令。
2021/8/17
6
•BIU和EU的动作协调原则 BIU和EU按以下流水线技术原则协调工作,共同完成所 要求的任务: ①每当8086的指令队列中有空字节,BIU就会自动把下 一条指令取到指令队列中。 ②每当EU准备执行一条指令时,它会从BIU部件的指令 队列前部取出指令的代码,然后译码、执行指令。在执 行指令的过程中,如果必须访问存储器或者I/O端口, 那么EU就会请求BIU,完成访问内存或者I/O端口的操 作; ③当指令队列已满,且EU又没有总线访问请求时,BIU 便进入空闲状态。(BIU等待,总线空操作) ④开机或重启时,指令队列被清空;或在执行转移指令、 调用指令和返回指令时,由于待执行指令的顺序发生了 变化,则指令队列中已经装入的字节被自动消除,BIU会 接着往指令队列装入转向的另一程序段中的指令代码。 (EU等待)
•CF(Carry Flag)—进位标志位,做加法时最高位出现进位或 做减法时最高位出现借位,该位置1,反之为0。

微机原理16位32位CPU(8086)

微机原理16位32位CPU(8086)

中 断 允 许
半 进 借 位 标 志
奇 偶 标 志
进 借 位 标 志
1-有进、借位 0-无进、借位
1-低4位向高4位有进、借位 0-低4位向高4位无进、借位
④标志寄存器
根据功能,标志可以分为两类:状态标志和控制标志
状态标志:表示前面的操作执行后,ALU所处的状态,这种状态像某 种先决条件一样影响后面的操作。 控制标志:表示对某一种特定的功能起控制作用。指令系统中有专门 的指令用于控制标志的设置和清除。 状态标志有6个,即SF、ZF、AF、PF、CF和OF ①符号标志SF(Sign Flag) 和运算结果的最高位相同。表示前面运
若TF=0 正常执行程序
返回
④标志寄存器
举例:
+ 0101 0100 0011 1001 0100 0111 0110 1010
3.8086的总线周期的概念
为了取得指令或传送数据,就需要CPU的总线接口部件执行一个 总线周期。 总线周期(机器周期):CPU通过总线与存储器或I/O接口进行一 次数据传输所需的时间。 在8086/8088中,一个最基本的总线周期由4个时钟周期组成,将4
80386
80486 Pentium Pentium IV
32
32 32 32
27.5万
120万 310万 4200万
12.5M,后提高到 20M,25M,33M
25MHz逐步提高到 33MHz、50MHz 60MHZ和66MHZ, 后提高到200MHZ 2.4G
0.1us
2.1 16位微处理器8086
式下各位引脚功能,如出现功能不同的引脚再具体讲解 。
DIP双列直插式封装
QFP塑料方型扁平式封装
Pentium4 3.2GHz LGA775 栅格阵列封装

微机原理接口技术03_指令系统

微机原理接口技术03_指令系统

3.2.1 数据的寻址方式
基址变址寻址同样适用于数组或表格处理,首地 址存放在基址寄存器中,变址寄存器访问数组中各元
素。因两个寄存器都可以修改,所以它比寄存器相对
寻址方式更灵活。需要注意的是,两个寄存器不能均 为基址寄存器,也不能均为变址寄存器。
3.2.1 数据的寻址方式
7.基址变址相对寻址 (Relative Based Indexed Addressing) 操作数的有效地址为指令中规定的1个基址寄存 器和1个变址寄存器的内容及指令中指定的位移量三 者之和。 位移量[基址寄存器][变址寄存器] 可以表示成多种形式组合。寻址寄存器要放在方括 号中。
3.2.1 数据的寻址方式
4.寄存器间接寻址(Register Indirect Addressing) 操作数的有效地址存放在基址寄存器或变址寄存 器中,而操作数则在存储器中。对16位数进行寄存器 间接寻址时可用的寄存器是基址寄存器BX、BP和变 址寄存器SI、DI。使用BP时默认的段寄存器为SS, 使用其他寄存器默认的段寄存器为DS。 操作数有效地址格式为:[间接寻址的寄存器]。 寻址寄存器放在方括号中。
CPU执行指令时,指令是按顺序存放在存储器 中的,而程序执行顺序是由CS和IP的内容来决定的。 当程序执行到某一转移或调用指令时,需脱离程序 的正常顺序执行,而把它转移到指定的指令地址, 程序转移及调用指令通过改变IP和CS内容,就可改 变程序执行顺序。
3.2.2 程序转移地址寻址方式
根据程序转移地址相对于当前程序地址的关 系,可分为段内、段外;又根据转移地址是否直 接出现在指令中,分为直接、间接,所以有四种 程序转移寻址方式:段内直接寻址、段内间接寻
第3章
指令系统
指令是计算机用以控制各个部件协调

微机原理第3章-指令系统

微机原理第3章-指令系统

▲按给出偏移地址方式的不同,分为以下5种: 寄存器间接寻址 寄存器相对寻址 基址加变址寄存器 相对基址加变址寄存器 MOV AL, [ BX ] MOV AL, [ BX + 10H ] MOV AL, [ BX + SI ] MOV AL, [ BX + SI + 10H ]
(1)寄存器间接寻址
寄存器寻址方式的操作数是寄存器的值,指令中直接 使用寄存器名,包括8位或16位通用寄存器和段寄存器。可 使用的16位寄存器:AX、BX、CX、DX、SI、DI、SP、 BP;其中:AX、BX、CX、DX可分成两8位使用。
例: MOV AX,CX
;(AX)
(CX)
INC CX
;(CX)
(CX)+1
3.直接寻址(Direct Addressing)
0002
AH
AL
默认段寄存器的关系: ① 使用BX、SI、DI,默认段寄存器为DS
(BX)
PA = ( DS )×10H + (SI) (DI)
② 使用BP,默认段寄存器为SS PA = ( SS )×10H + ( BP )
使用BX、SI、DI的寄存器寻址,默认段寄存器为DS
寄存器组 AH AL BH BL CH CL DH DL SI DI BP SP AX BX CX DX DS ES SS CS IP 地 址 加 法 器
运 算 器
控制总线CB


PSW标志 寄存器
执行部件控制电路
CPU
总线
内存
例: MOV AX , [ BX + SI ]
若 ( DS ) = 4000H
( BX ) = 2000H ( SI ) = 100H 则内存操作数的物理地址为:

微机原理5_8086指令系统08

微机原理5_8086指令系统08

• 指令中的操作数:
– 可以是一个具体的数值 – 可以是存放数据的寄存器 – 或指明数据在主存位置的存储器地址
6
双操作数指令
MOV dst, src ; (dst) (src) ↑ ↑ ↑ 助记符 目的 源操作数 操作数 例: MOV AH,BL MOV AX,1234H
ADD dst, src ; (dst) (dst)+(src) ↑ ↑ ↑ 助记符 目的 源操作数 操作数 例: ADD AL,36H ADD BX,CX 大多数运算型指令都是双操作数指令,对这种指令, 有的机器(大中型)使用“三地址”指令:除给出参加 运算的两个操作数外,还要指出运算结果的存放地址 7
18
寄存器寻址
19
特 点
(1) 操作数就在寄存器中,不需要访问存
储器来取得操作数(指令执行时,操作就在 CPU的内部进行),因而执行速度快。
(2)寄存器号比内存地址短 * 在编程中,如有可能,尽量使用这种寻址 方式的指令。 * 寄存器寻址方式既可用于源操作数,也可 用于目的操作数,还可以两者都用于寄存器寻 址方式(如 MOV BX , AX )
物理地址 = 16d (DS) +
BP (SS)
(SI)
(DI)
28
物理地址 = 16d (SS) + (BP)
例:
MOV AX, [BX] MOV ES:[BX] , AX MOV DX, [BP] • MOV AX , [BX] ;
设 ( DS) = 2000H ,(BX) = 1000H PA =20000H + 1000H =21000H 指令的执行结果为: (AX) = 50A0H *指令中也可以通过“段跨越前缀”取 得其他段中的数据, 例如: MOV AX,ES: [BX] PA = 16d (DS) + (BX) PA = 16d (ES) + (BX) PA = 16d (SS) + (BP)

微机原理与接口技术 (第三版)电子工业出版社 第03章 8086的指令系统

微机原理与接口技术 (第三版)电子工业出版社 第03章 8086的指令系统

4、寄存器间接寻址(Register indirect addressing) 内存单元的逻辑偏移地址通过寄存器 间接给出。 例: MOV SI , 61A8H MOV DX , [SI]
5、基址/变址寻址(Based/Indexed addressing) 位移量是一带符号的16位16进制数。当 使用BX或BP寄存器时,称基址寻址;使用SI 或DI寄存器时,称变址寻址。 例: MOV CX , 36H[BX] MOV -20[BP] , AL
2、MOV数据传送指令 其格式为: MOV 目的操作数,源操作数 • 目的操作数和源操作数均可采用不同的寻 址方式, • 两个操作数的类型必需一致。
二、寻址方式介绍பைடு நூலகம்
1.立即寻址(Immediate addressing) 操作数就在指令中,紧跟在操作码后面, 作为指令一部分存放在内存的代码段中,这 种操作数称为立即数。 例: MOV AX , 34EAH MOV BL , 20H
3)、段间直接转移 JMP far PTR 目标地址 4)、段间间接转移 JMP WORD PTR[BX][SI]
2、条件转移指令
1)、单条件转移指令 ① JC ② JNC ③ JE/JZ ④ JNE/JNZ ⑤ JS ⑥ JNS ⑦ JO ⑧ JNO ⑨ JP/JPE ⑩ JNP/JPO ;CF标志为1,则转移 ;CF标志为0,则转移 ;ZF标志为1,则转移 ;ZF标志为0,则转移 ;SF标志为1,则转移 ;SF标志为0,则转移 ;OF标志为1,则转移 ;OF标志为0,则转移 ;PF标志为1,则转移 ;PF标志为0,则转移
3、目标地址传送指令
这类指令有: 1)LEA 有效地址传送到寄存器 2)LDS 装入一个新的物理地址 3)LES 装入一个新的物理地址

微机原理第3章指令

微机原理第3章指令

第3章指令系统机器指令:能指示计算机完成基本操作的二进制代码指令系统:CPU可执行的机器指令的集合。

为了方便编程,人们又把完成特定操作的机器码用特定的符号表示,这就产生了符号表示的机器指令-------指令助记符。

第3章8086指令系统机器指令由二进制代码组成,一条指令包括操作码和操作数(或地址)两部分,操作码指明该指令进行何种操作,操作数用来说明操作对象。

个别指只有操作码没有操作数。

由于不同的指令所表达的信息不尽相同,因此指令的长度即机器码字节数也有长有短。

8086指令系统的指令是可变长指令(1~6个字节)3.18086CPU寻址方式重点是存储器寻址存放在存储器中的数据称为存储器操作数。

指令中需要确定存储单元的段地址、偏移地址(亦称有效地址EA),以及存储器操作数的类型。

段地址存放在段寄存器中,确定段地址实际上就是确定段寄存器,采用的方法是默认或添加段超越前缀。

生成存储器有效地址有多种方法,这些方法形成了对存储器操作数的多种寻址形式。

确定数据类型的方法是源操作数和目的操作数类型一致原则或附加类型说明。

立即寻址方式中操作数也在存储器中,但立即寻址中的立即数包含在指令中,随程序存放在代码段,CPU在取指令时就获得操作数。

这里所说的存储器操作数是存放在数据段、附加段或堆栈段中,取指令时也不会被立即取到。

段超越前缀变量的定义在第四章详细介绍直接寻址:MOV AX,[2000H];寄存器间接寻址:MOV ES:[DI],AH基址寻址:MOV BYTE PTR[BX+1200H],10变址寻址:MOV DL,[SI+2AH]基址加变址寻址:MOV CL,[BX+SI+5]MOV AX,[BP+DI]MOV CL,[BX+SI+5]的等价形式:MOV CL,5[BX][SI]、MOV CL,5[BX+SI]、MOV CL,[BX][SI+5]MOV CL,[BX+SI-5]等价于MOV CL,[BX+SI+65531] MOV CL,[BX-SI]MOV CL,[SI+DI]错误!MOV[BX+DI],1000H正确吗?3.2.1数据传送类指令传送指令把数据从一个位置传送到另一个位置使用MOV指令应注意1.立即数只能作为源操作数2.无存储器之间直接传送与交换的指令3.没有用立即数对段寄存器直接赋值的指令4.段寄存器之间无传送指令5.两个操作数的类型要一致6.要能确定是字节还是字操作mov ah,al mov bvar,ch mov ax,bx mov ds,ax mov al,[bx]下列MOV指令正确吗?MOV AL,050AHMOV SI,DLMOV[BX+SI],255MOV DS,100HMOV[BX],[SI]MOV[BX+SI],bvarbvar是一个已定义过的字节变量 MOV CS,[SI]将数据段中偏移地址为2000H、2001H、2002H的3个字节的存储单元置数FFH。

微机原理实验指导书

微机原理实验指导书

实验一数据传送实验目的:1.熟悉8086指令系统的数据传送指令及8086的寻址方式。

2.利用TurboDebugger调试工具来调试汇编语言程序。

实验任务:1.通过下述程序段的输入和执行来熟悉TurboDebugger的使用,并通过显示器屏幕观察程序的执行情况。

练习程序段如下:MOVBL,08HMOVCL,BLMOVAX,03FFHMOVBX,AXMOVDS:[0020H],BX2.用以下程序段将一组数据压入(PUSH)堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。

压栈程序段如下:MOVAX,0102HMOVBX,0304HMOVCX,0506HMOVDX,0708HPUSHAXPUSHBXPUSHCXPUSHDX出栈程序段请自行编写(用不同的出栈顺序)。

3.指出下列指令的错误并加以改正,上机验证之。

(1)MOV[BX],[SI](2)MOVAH,BX(3)MOVAX,[SI][DI](4)MOVBYTEPTR[BX],2000H(5)MOVCS,AX(6)MOVDS,2000H4.设置各寄存器及存储单元的内容如下:(BX)=0010H,(SI)=0001H(10010H)=12H,(10011H)=34H,(10012H)=56H,(10013H)=78H(10120H)=0ABH,(10121H)=0CDH,(10122H)=0EFH说明下列各条指令执行完后AX寄存器中的内容,并上机验证。

(1)MOVAX,1200H(2)MOVAX,BX(3)MOVAX,[0120H](4)MOVAX,[BX](5)MOVAX,0110H[BX](6)MOVAX,[BX][SI](7)MOVAX,0110H[BX][SI]5.将DS:1000H字节存储单元中的内容送到DS:2020H单元中存放。

试分别用8086的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。

003_微机原理-指令系统_2

003_微机原理-指令系统_2

MOV DS, AX
不影响标志位
3.3 指令系统—换码指令
指令书写格式: XLAT
指令执行的操作:
(AL)←((DS:BX+AL)) 查表操作,将BX指定的缓冲区中、AL指定的位移处的一个字节数 据取出赋给AL
指令说明
操作数隐含使用基地址寄存器BX与AL寄存器 换码指令执行前,在主存建立一个字节量表格,内含要转换的目 的码字,表格首地址存放于BX,AL存放相对表格首地址的位移量 换码指令执行后,指令将AL寄存器的内容转换为目标码字,因为 偏移量AL为8位,表格长度≤256字节 不影响标志位
数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令
控制转移指令
处理器控制指令
3.3 指令系统-通用数据传送指令
指令书写格式: MOV dst, src
指令执行的操作:(dst)←(src) 指令说明
操作数类型:立即操作数,寄存器操作数,存储器操作数 立即操作数不能作为目的操作数DST 错误:MOV 30H, AL 两个操作数也不能同时为存储器操作数 错误: MOV [DI+100H], [SI+200H]
dst为目的操作数,操作数类型可为寄存器操 作数或存储器操作数 cnt为移位次数,可为立即数1,或由寄存器 CL指定 SHL、SHR和SAL指令影响标志位CF和OF, cnt=1时,SHL与SAL移位后的最高位和CF不 同,则OF=1;SHR,OF=移位前最高位 SAR指令影响标志位CF、OF、PF、SF、ZF, AF不确定;
; 测试AL中数据的奇、偶
3.3 指令系统-移位指令
逻辑左移指令: SHL dst, cnt 算术左移指令: SAL dst, cnt

微机原理 第2章_8086系统结构

微机原理 第2章_8086系统结构

8086 CPU的引脚及其功能

8086 CPU的两种工作模式


最小模式:用于单机系统,系统所需要的控 制信号由8086直接提供,MN/MX=1,CPU 工作于最小模式 最大模式:用于多处理机系统,系统所需的 控制信号由总线控制器8288提供, MN/MX=0,CPU工作于最大模式

8086 CPU在最小模式下的引脚定义 8088与8086的区别
通 用 寄 存 器
AX BX CX DX SP BP SI DI
8086 CPU结构框图
20位地址总线
Σ
数据 总线 16位
ALU数据总线 (16位) 暂存器
队列 总线 (8位)
CS DS SS ES IP 内部寄存器 指令队列
总线 控制 电路 8086 总线
ALU
标志寄存器
EU 控制器
1 3 4 5 6
PSW
存放状态标志、控制标志和系统标 志
PSW格式:
15 11 10
OF DF
9 IF
8
7
6
4 AF
2 PF
0 CF
TF SF ZF
状态标志




状态标志用来记录程序中运行结果的状态信息,它们根据有关指 令的运行结果由CPU自动设置,这些状态信息往往作为后续条件 转移指令的转移控制条件,包括6位: OF:溢出标志,在运算过程中,如操作数超出了机器数的表示范 围,称为溢出,OF=1,否则OF=0 SF:符号标志,记录结果的符号,结果为负SF=1,否则SF=0 ZF:零标志,运算结果为0,ZF=1,否则ZF=0 CF:进位标志,进行加法运算时从最高位产生进位,或减法运算 从最高位产生借位CF=1,否则CF=0 AF:辅助进位标志:本次运算结果,低4位向高4位产生进位或借 位,AF=1,否则AF=0 PF:奇偶标志,用来为机器中传送信息时可能产生的代码出错情 况提供检验条件,当结果操作数中低8位中1的个数为偶数时PF=1, 否则PF=0

微机原理 第三章1

微机原理 第三章1

(2)立即(数)寻址
② MOV AX,1234H
说明:这条指令的功能就是将立即数 1234H传送到寄存器AX中。 执行完该条指令后, AX=1234H
(3)寄存器寻址(Segment Addressing)
当操作数在寄存器中时为寄存器寻址(或称寄 存器直接寻址)。如: ① MOV AL,12H 说明:目的操作数AL即为寄存器寻址。
DS(BX的默认段)值
0000
Memory
ES值
SS(BP的默认段)值
CS值
BP: +)位移量:
0000 0000 0000
…… ××
0100 0000 0000 0000 0000 0000 0000 0010
20 位 物 理 地 址
MOV [SI]10 ,AH ( 设SI原值为008CH)
Bit 19 4 3 0
1、通用数据传送指令
(1)MOV指令 (2)PUSH和POP指令 (3)交换指令XCHG (4)换码指令XLAT
(1)MOV指令
是基本传送类指令,实现字或字节数据的 复制。
指令格式:MOV dst,src
指令功能:将源操作数src,传送到目的操作 数dst中。 如:MOV AL,12H
功能:执行指令就是将立即数12H传送到 AL中,执行完指令后AL=12H。
(6)寄存器相对寻址方式 使用基址寄存器(BX或BP)、并带位移 量的间接寻址。操作数EA=BX或BP值+位 移量。 例:MOV DL,[BP+2] 其它等效写法: MOV DL,[BP] 2 MOV DL,2 [BP]
MOV DL,[BP+2] ( 设BP原值为4000H)
Bit 19 4 3 0
汇编语言 用指令助记符表示机器码,例如对应于机器码 B8H、C3H的助记符为MOV AX,BX 。 CPU不同,机器码不同,助记符也不同。

微机原理

微机原理
• 有效地址由基址寄存器(BX或BP)的内容加上变 址寄存器(SI或DI)的内容构成: 有效地址=BX/BP+SI/DI • 基址寄存器和变址寄存器默认的段寄存器不同, 一般以基址寄存器决定段寄存器。 • 段地址对应BX基址寄存器默认是DS,对应BP基 址寄存器默认是SS;可用段超越前缀改变。
MOV AX, [BX+SI] MOV AX, [BX][SI] MOV AX, [BP+SI]
MOV AX, BX
;AX←BX
微机原理
§ 4.2.3 存储器寻址方式
存储器段的分配: 在对存储器进行操作时,内存一般可分成4个段,分别称为代码段
、数据段、堆栈段和附加数据段,每个段存放不同性质的数据,进
行不同的操作。 代码段:存放指令。
数据段:存放程序所使用的数据。
堆栈段:程序的堆栈区(子程序调用、系统功能调用、中断处 理等操作使用,是按“先进后出”原则访问的特殊存储区域)或作 为临时数据存储区。 附加数据段:辅助的数据区。 4个逻辑段的段基址分别放在相应的代码段寄存器CS、数据段 寄存器DS、堆栈段寄存器SS和附加段寄存器ES中,由这4个段寄存 器来指明每个段在内存中的起始地址。
, 标号: 指令助记符 操作数 ;注释
(1) 标号是给该指令所在地址取的名字,必须后跟冒号 (“:”),它可以缺省,是可供选择的标识符。规则: – 标识符由字母(a~z,A~Z)、数字(0~9)或某些特殊 字符(@,-,?)组成。 – 第一个字符必须是字母(a~z,A~Z)或某些特殊的符 号(@,-,?),但“?”不能单独作标识符。
MOV AX, [SI+06H] MOV AX, 06H[SI]
微机原理
;AX←DS:[SI+06H] ;AX←DS:[SI+06H]

微机原理_8088(8086)工作原理

微机原理_8088(8086)工作原理

8088/8086寄存器结构 8088/8086寄存器结构
15 AH BH CH DH 8 7 AX AL BX BL CX CL DX DL SP BP DI SI IP FLAGS CS DS ES SS 0 累加器 基址变址 计数 数据 堆栈指针 基址指针 目的变址 源变址 指令指针 标志 代码 数据
AX(Accumulator BX(Base
CX(Count DX(Data
指针寄存器
堆栈指针SP(Stack Pointer): 堆栈指针SP(Stack Pointer):用于实现内存中的堆栈
存储方式(FILO),指示栈顶的偏移地址; ),指示栈顶的偏移地址 存储方式(FILO),指示栈顶的偏移地址;
总线接口部件 (Bus Interface Unit)
执行部件 用来存放计算的中间结果, 用来存放计算的中间结果, (Execution Unit) CPU从寄存器中存取数据比从 CPU从寄存器中存取数据比从
负责指令的译码、 负责指令的译码、 存储器中存取数据要快得多。 存储器中存取数据要快得多。 与微处理器外部总线连接, 与微处理器外部总线连接,负责 执行等。 BIU 执行等。 大量使用寄存器能提高计算机 与存储器、I/O接口进行数据交换 接口进行数据交换, 与存储器、I/O接口进行数据交换, 运行速度, 运行速度,但也提高了成本 存取指令、操作数等。 存取指令、操作数等。
指令指针IP(Instruction Pointer): 指令指针IP(Instruction Pointer):计算机之所以
能自动地一条一条地取出并执行指令,是因为CPU中 能自动地一条一条地取出并执行指令,是因为CPU中 有一个跟踪指令地址的电路,其核心就是指令指针IP, 有一个跟踪指令地址的电路,其核心就是指令指针IP, 它用于指明当前应该调用内存中哪个地址位置的指令 CPU中来运行 中来运行, 到CPU中来运行,从而实现计算机自动运行程序员事 先安排好的软件。 先安排好的软件。

微机原理第3章 8086的指令系统d

微机原理第3章 8086的指令系统d

3.4.4 串操作指令
由多个字节/字组成的数据称为字节/字数据串,简称字节/ 字串。 数据串存放在某一连续的内存区中,最长长度为64kB。 串操作指令的特点: • 采用串寻址,规定源操作数的逻辑地址为(DS):(SI),目的 操作数的逻辑地址为(ES):(DI)。 • 执行串指令时,存储单元的地址指针是自动移动的,DF= 0则地址增大,DF=1则地址减小。 • 串指令通常使用指令前缀,串的长度(数据个数)由CX给定。 • 串指令在同段之间进行传送或比较时,应使(DS)=(ES)。
LEA SI, BUFF1;源操作数偏移地址 LEA DI, BUFF2;目的操作数偏移地址 CLD;DF=0 AG: MOVSW; MOV CX, 100;串长度(CX)=100 LOOP AG;(CX)=(CX)−1, ;(CX)≠0则转移 MOVSW;送1个字,(CX)=100
2. 串比较指令 串比较指令CMPSB/CMPSW (compare byte/word string) 格式:CMPSB/CMPSW 功能:把(DS):(SI)指定的字节/字单元内容减去(ES):(DI)指 定的字节/字单元内容,结果不送回(DS):(SI)指定的单元, 但影响状态标志位,且SI、DI的内容自动加(减)1/2。 例:检查数据段中首地址分别为STR1和STR2的两个长度 为50的字节串是否相等。若相等,则(BX)=0;若不相等, 则BX保存STR1中第1个不相同字节的偏移地址,并将该 数据保存到AL中。 CLD;DF=0 MOV CX, 50;设置串长度 MOV AX, DS;使(EX)=(DS) MOV ES, AX
2. 逻辑与指令 逻辑与指令AND (and) 格式:AND dest, src 功能:把dest的内容与src的内容按位进行逻辑与运算,并 把结果送回dest。 注意:dest不能为立即数;不允许两个操作数都为存储器 操作数;该指令执行后使CF=OF=0,并影响PF、ZF和SF。 例:MOV BL, 38H;(BL)=38H AND BL, 0FH;(BL)=08H, CF=OF=PF=ZF=SF=0 利用AND指令可以使目的操作数的某些位清0。 例:把AX中的D15、D11、D6、D1位保留,其余位清0。 AND AX, 8842H
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Opr位数必须一致
Opr不能同为Mem
Opr不能为CS(或IP)
PUSH
PUSH Src
(SP)← (SP)-2
((SP) +1,(SP)) ← (Src)
Opr只能16位
Opr不能为Imm、CS
PUSH CS合法
一般配对使用
POP
POP Dest
(Dest)←((SP) +1,(SP))
(SP) ← (SP) +2
Cnt是移位数
Cnt>1,其值要先送到CL
ODITSZAPC= x---xxuxx
SAR
SAR Dest,Cnt
SHL
SHL Dest,Cnt
SHR
SHR Dest,Cnt
ROL
ROL Dest,Cnt
将Dest从一端移出的位返回到另一端形成循环
Dest不能为Imm
Cnt是移位数
Cnt>1,其值要先送到CL
LES
LES DES,Src
(Dest) ←EA (Src)
(ES) ← EA(Src+2)




LAHF
LAHF
(AH) ←(FLAGSL)
相反操作
一般配对使用
SAHF标志位=-----rrrrr
SAHF
SAHF
(FLAGSL)← (AH)
PUSHF
PUSHF
(SP)← (SP)-2
((SP) +1,(SP)) ← (PSW)
INC
INC Dest
(Dest) ← (Dest) +1
ODITSZAPC= x---xxxx-


SUB
SUB EST,Src
(Dest)←(Dest)- (Src)
ODITSZAPC= x---xxxxx
SBB
SBB EST,Src
(Dest)←(Dest)- (Src)-CF
ODITSZAPC= x---xxxxx
OR
OR Dest,Src
(Dest)←(Dest)∨(Src)
使Dest的某些位强迫置1
ODITSZAPC= 0---xxux0
NOT
NOT Dest
(Dest)←( )
不允许使用Imm
XOR
)(Src)
使某些位变反
判断两个Opr是否相等
ODITSZAPC= 0---xxux0
IDIV
IDIV Src
(AL) ← (AX)/ (Src)的商
(AH) ← (AX)/ (Src)的余数
(AX) ← (DX,AX)/ (Src)的商
(DX) ← (DX,AX)/ (Src)的余数
CBW
CBW
ALAX
正数前补0
负数前补1
无符号数不能扩展
CWD
CWD
AX(DX,AX)
B
C
D



DAA
DAA
(AL)(AL)组合BCD
紧接在加减指令后
ODITSZAPC= u---xxxxx
DAS
DAS
(AL)(AL)组合BCD
AAA
AAA
(AL)(AL)非组合BCD
紧接在加减指令后
ODITSZAPC= u---uuxux
AAS
AAS
(AL)(AL)非组合BCD
AAM
AAM
(AL)(AL)非组合BCD
OUT
OUT Port,Ac
OUT DX,Ac
(Port) ←Ac
((DX))←Ac






ADD
ADD EST,Src
(Dest)←(Src)+(Dest)
ODITSZAPC=x---xxxxx
ADC
ADC EST,Src
(Dest)←(Src)+ Dest)+CF
ODITSZAPC= x---xxxxx


DIV
DIV Src
(AL) ← (AX)/ (Src)的商
(AH) ← (AX)/ (Src)的余数
(AX) ← (DX,AX)/ (Src)的商
(DX) ← (DX,AX)/ (Src)的余数
单操作数指令
Src为除数
Src不能为Imm
AX(DX,AX)为隐含的被除数
ODITSZAPC= u---uuuuu
有符号数A≤B
JCXZ Dest
(CX)=0则转移
不影响CX的内容
LOOP
LOOP Dest
CX-1≠0,则循环
段内直接短转移
LOOPE
/LOOPZ
LOOPE/LOOPZ Dest
ZF=1且CX-1≠0,则循环
LOOPNE
/LOOPNZ
LOOPNE/LOOPNZ Dest
ZF=0且CX-1≠0,则循环
PF=1则转移
有偶数个“1”
JNP/JPO Dest
PF=0则转移
有奇数个“1”
JA/JNBE Dest
CF=0 AND Z F=0则转移
无符号数A>B
JAE/JNB Dest
CF=0 OR ZF=1则转移
无符号数A≥B
JB/JNAE Dest
CF=1 AND ZF=0则转移
无符号数A<B
JBE/JNA Dest
SI=DS中源串首地址
DI=ES中目的串首地址
CX=数据串的长度
CLD/TD建立方向标志
DF=0,地址增量
DF=1,地址减量
CMPS标志位= x---xxxxx
SCAS标志位= x---xxxxx
LODS
LODS Src
LODSB
LODSW
(Ac)←DS:(SI)
(SI) ←(SI)±1或2
STOS
端口地址256时应采用dx间接寻址outoutportacoutdxacportacdxac算加addaddestsrcdestsrcdestoditszapcxxxxxx术运算法adcadcestsrcdestsrcdestcfoditszapcxxxxxxincincdestdestdest1oditszapcxxxxx减法subsubestsrcdestdestsrcoditszapcxxxxxxsbbsbbestsrcdestdestsrccfoditszapcxxxxxxdecdecdestdestdest1oditszapcxxxxxnegnegdestdest0dest求相反数oditszapcxxxxxxcmpcmpdessrcdestsrc结果不回送后边一般跟jxxoditszapcxxxxxx乘法mulmulsrcaxalsrcdxaxaxsrc单操作数指令src为乘数opr不能为immac为隐含的被乘数oditszapcxuuuuximulimulsrcaxalsrcdxaxaxsrc除法divdivsrcalaxsrc的商ahaxsrc的余数axdxaxsrc的商dxdxaxsrc的余数单操作数指令src为除数src不能为immaxdxax为隐含的被除数oditszapcuuuuuuidividivsrcalaxsrc的商ahaxsrc的余数axdxaxsrc的商dxdxaxsrc的余数cbwcbwalax正数前补0负数前补1无符号数不能扩展cwdcwdaxdxaxbcd码调整daadaaalal组合bcd紧接在加减指令后oditszapcuxxxxxdasdasalal组合bcdaaaaaaalal非组合bcd紧接在加减指令后oditszapcuuuxuxaasaasalal非组合bcdaamaamalal非组合bcd紧接在mul后oditszapcuuuxuxaadaadalal非组合bcddiv指令之前用aaddiv之后用aamoditszapcuxxuxu逻辑运算andanddestsrcdestdestsrc使dest的某些位强迫清0oditszapc0xxux0orordestsrcdestdestsrc使dest的某些位强迫置1oditszapc0xxux0notnotdestdestdest不允许使用immxorxordestsrcdestdestsrc使某些位变反判断两个
相反操作
一般配对使用
POPF标志位=rrrrrrrrr
POPF
POPF
(Dest)←((SP) +1,(SP))
(SP) ← (SP) +2




IN
IN Ac,Port
IN Ac,DX
Ac← (Port)
Ac←((DX))
最多64K个8位端口地址
或32K个16位端口地址;
端口地址≧256时,应采用DX间接寻址


MUL
MUL Src
(AX) ← (AL) *(Src)
(DX,AX)← (AX) *(Src)
单操作数指令
Src为乘数
Opr不能为Imm
Ac为隐含的被乘数
ODITSZAPC= x---uuuux
IMUL
IMUL Src
(AX) ← (AL) *(Src)
(DX,AX)← (AX) *(Src)
DEC
DEC Dest
(Dest) ← (Dest) -1
ODITSZAPC= x---xxxx-
NEG
NEG Dest
(Dest) ←0 - (Dest)
求相反数
ODITSZAPC= x---xxxxx
CMP
CMP DES,Src
(Dest)-(Src)
结果不回送
后边一般跟JXX
ODITSZAPC= x---xxxxx
相关文档
最新文档