微机原理指令系统学习
微机原理指令系统讲解

2012-3-21
10
四、寄存器间接寻址(Register Indirect 寄存器间接寻址 Addressing) MOV AX,[DI] 指令中的16位寄存器的内容不是操作数,而是 指令中的 位寄存器的内容不是操作数, 位寄存器的内容不是操作数 操作数的偏移地址,操作数本身则在存储器中。 操作数的偏移地址,操作数本身则在存储器中。 可用的寄存器有四个,分别是: 、 、 可用的寄存器有四个,分别是:SI、DI、BX 和BP,但如果使用不同的间址寄存器,则相 ,但如果使用不同的间址寄存器, 应的段寄存器有所不同
2012-3-21 23
一般传送指令MOV (Movement) ⑴ 一般传送指令 MOV dest,src ;(dest)←(src) ← 既可传送字节操作数( 位 既可传送字节操作数(8位),也可传送 字操作数( 位 字操作数(16位); 可使用本章讨论过的各种寻址方式; 可使用本章讨论过的各种寻址方式; 可实现以下各种传送: 可实现以下各种传送:
2012-3-21 26
堆栈操作指令PUSH和POP (Push ⑵ 堆栈操作指令 和 word onto stack, Pop word off stack) 堆栈是内存中一个特定的区域, 堆栈是内存中一个特定的区域,用以存放 寄存器或存储器中暂时不用但又必须保存 的数据。 的数据。
2012-3-21
2012-3-21 7
直接寻址: MOV AX,[3200H] 如果DS=5000H,则所 寻找的操作数的物理 地址: 5000H×10H+3200H =50000H+3200H =53200H
2012-3-21 8
段超越 : MOV BX,ES:[2100H]
2012-3-21
微机原理 第四章 微型计算机指令系统

例: 已知: DS=2000H; SI=1000H 指令: MOV [SI+disp],AX
青岛理工大学琴岛学院
寄存器间接相对寻址过程示意图
CPU
寄存器间接相对 SI=1000H
MOV [SI+20H] 程序 ,AX
CS 偏移1000H
DS
SS
ES
位移20H
青岛理工大学琴岛学院
寄存器相对寻址过程示意图
真正数据所在的地址
青岛理工大学琴岛学院
错误指令举例: 6)基址变址寻址: MOV [BX+CX],AX ; CX不能做变址寄存器 MOV [BX+BP],AX ; BP不能作为变址寄存器 操作数的有效地址 EA等于一个基址寄存器( BX或 MOV [BX+DI],ARRAY; BP)与一个变址寄存器( SI或DI)的内容之和;
总时间=基本执行时间+计算EA的时间+执行总线读/写周期的时间
指令的基本执行时间随指令类型的不同差异很大,访问存 储器既要执行总线的读/写周期,又要计算操作数的有效地址 EA,计算EA的时间又与指令的寻址方式有关。
青岛理工大学琴岛学院
4.2 8086/8088指令系统
数据传送类指令
算术运算类指令 位操作类指令 串操作类指令 控制转移类指令 处理器控制类指令
21000H 20 位 物 理 地 址 真正数据所在的地址 Memory DS … 20000H
…
78H 21000H 56H
青岛理工大学琴岛学院
4)寄存器间接寻址:
此方式的操作数存放在存储器单元中,指令给出的 16位寄存器值就是该操作数所在存储单元的EA。
例: 已知: (DS)=2100H,(DI)=2000H 指令: MOV AX,[DI] ;(AX) ((DI)) 注:使用BX、SI、DI,操作数在DS段;BP时在SS段 其中寄存器只能是BX、SI、DI、BP
微机原理知识点归纳总结

微机原理知识点归纳总结微机原理是计算机专业的基础课程之一,它是学习计算机硬件和软件原理的入门课程。
本文将对微机原理课程的主要知识点进行归纳总结,希望可以帮助读者更好地理解微机原理,并为日后的学习和工作提供帮助。
一、计算机系统计算机系统是由硬件和软件两部分组成的,硬件是计算机的物理构成,软件是控制硬件工作的程序。
计算机系统的主要组成部分包括中央处理器(CPU)、存储器、输入输出设备(I/O设备)和总线。
1. 中央处理器(CPU)中央处理器是计算机系统的核心部件,它负责执行计算机程序的指令和控制计算机的操作。
中央处理器由运算器和控制器两部分组成,运算器负责执行算术和逻辑运算,控制器负责控制指令的执行顺序和数据的流动。
2. 存储器存储器是计算机系统用来存储数据和程序的设备,它分为主存储器(RAM)和辅助存储器(ROM、硬盘等)。
主存储器用来临时存储程序和数据,辅助存储器用来长期存储程序和数据。
3. 输入输出设备(I/O设备)输入输出设备用来与外部环境进行交互,包括键盘、鼠标、显示器、打印机等。
它们负责将数据输入到计算机系统中或者将计算机系统的输出结果显示或打印出来。
4. 总线总线是计算机系统各个部件之间传输数据和控制信号的通道,它分为地址总线、数据总线和控制总线。
地址总线用来传输地址信息,数据总线用来传输数据,控制总线用来传输控制信号。
二、数据的表示和运算1. 二进制数计算机是以二进制形式进行运算的,因此需要了解二进制数的表示和运算规则。
二进制数由0和1组成,其表示方法和十进制数类似,但是各位上的权值是2的幂次方。
2. 字符编码计算机系统中的字符是使用字符编码进行表示的,常用的字符编码包括ASCII码和Unicode。
ASCII码是美国标准信息交换码,每个字符用一个字节表示;而Unicode是一种全球字符集,包括了几乎所有国家的字符,每个字符用两个字节表示。
3. 整数表示和运算计算机系统中的整数是通过二进制补码形式进行表示和运算的。
微机原理指令系统课件

指令
8B
05
32000
0B
40
思考: 指令 MOV AX,[ DI ] 与MOV AX, DI有什么不同?
微机原理指令系统课件
13
用 SI、DI、BX 、BP作为间接寻址允许段跨越
指令中可以指定段跨越前缀来取得其他段中的数据。
例:MOV ES:[DI], AX MOV DX, DS:[BP]
例: MOV AX,ES:[2000H]
将ES:2000H单元内容送入AX。
例: MOV AX,LABLE 或 MOV AX,[LABEL]
将标号为LABLE(存放操作数单元的符号地址) ,即
DS:LABLE中的内容送入AX。
微机原理指令系统课件
7
例:MOV AX , [ 1000 H]
若 ( DS ) = 2000H
8B
指令
47
30
21030
76
89
17
(3)基址变址寻址方式:
操作数在存储器中,指令将基址寄存器(BX或BP)与变 址寄存器(SI或DI)内容之和作为操作数所在存储单元的有 效地址。
(BX) (SI)
EA =
+
(BP) (DI)
PA = (DS) * 16 + (BX)+ (SI)或(DI)
PA = (SS) * 16 + (BP) + (SI)或(DI)
指令操作数部分直接给出指令的操作数,操作数与操 作码一起存入代码段中。立即数有8位和16位。
例 :MOV AL, 05H ;源操作数为立即寻址 指令执行后,AL=05H,8位数据05H存入AL寄存器。
微机原理与接口技术第3章(指令部分)

例:编程计算 0+1+2+3+4+ -----10 编程计算
MOV AL,0 , MOV BL,1 , MOV CL,10 NEXT:ADD AL,BL , INC BL DEC CL JNZ NEXT ;CL≠0 转 ≠ HLT
1
3.1 概述 一、指令包含的基本内容
12
(3)相对寻址
例: MOV AX, [SI+100H]
;结果 : 结果 AX (DS×16+SI+100H) ×
例:MOV AL,[BP+DATA] MOV AL, DATA[BP] ; DATA是符号表示的位移量。 表示的位移量 是符号表示的位移量。
结果 : AL (SS×16+BP+DATA) ×
11
(2)间接寻址 例:MOV AX,[BX] , •结果 : AX 结果 (DS×16+BX) ×
...
3000H:0000H : • EA= BX /SI /DI , 物理地址=DS*16+EA 物理地址 • EA= BP 物理地址=SS*16+EA 物理地址 :1234H :50H :1235H :30H
1. 做什么操作? 做什么操作? MOV ,ADD, OR,CMP等助记符 等助记符
2. 操作的数据是什么? ①CPU内的寄存器; 操作的数据是什么? 内的寄存器 内的寄存器; 内存的某一个或几个单元 单元; ②内存的某一个或几个单元; 结果放在那里? 3. 结果放在那里? 立即数。 ③立即数。 端口; 端口 ④I/O端口; 下一条指令在哪里? 4. 下一条指令在哪里? IP←IP+1
微机原理指令系统学习

例3: MOV [CX], 2000H ;错,不能对CX间接寻址
16
五、 变址寻址 操作数在内存中,由指定的寄存器内容,加上指令中给出的8位或16位偏移量作为操作数的偏移地址,计算 方法:
偏移地址=寄存器内容+指令中给定的偏移量 同样,作为变址的寄存器只能有4个:BX, SI, DI, BP,其他寄存器无此功能。
SP
SP
SP 31
3. 交换指令XCHG 格式:XCHG OPRD1, OPRD2
功能:(OPRD1) (OPRD2) 完成通用寄存器之间,通用寄存器与累加器之间、与存储器之间8位,16位数据的相互交换。
例如:XCHG BL, AH
1) 内存之间的数据、累加器之间不可相互交换 2) CS,IP不能参与交换 3) 段寄存器和立即数不能作为一个操作数
寻址方式:是指令中用于说明如何寻找操作数的方法。
计算机中操作数常存放在以下几个地方: 指令代码中,存放常量;MOV AX, 2070H 寄存器中:MOV AX, BX 内存中: MOV AX, [2000H] I/O端口中(仅对INLeabharlann OUT指令): IN AL, 40H
6
8086/8088的基本寻址方式有六种:
XCHG AX, [BX]
32
4. 累加器专用指令(只与AX或AL有关,与AH无关)
1)输入输出指令 输入
CPU
21000H 21001H 21002H 21003H 21004H 21005H 21006H 21007H
12H 34H 56H 78H 9AH BCH DEH F0H
31000H 31001H 31002H 31003H 31004H 31005H 31006H 31007H
微机与原理指令

微机与原理指令
微机原理与指令
微机是由微处理器、存储器、输入输出设备和总线等组成的一种计算机系统。
微机的核心是微处理器,它负责执行计算机指令以完成各种数据处理任务。
微机原理主要涉及微处理器的工作原理和系统结构。
微处理器是由控制器和运算器组成的,控制器负责解码和执行指令,运算器负责进行数值运算。
微处理器通过总线与存储器和输入输出设备进行数据交换。
微机的指令是由二进制代码表示的,每条指令都有特定的操作码和操作数。
操作码指示了要执行的操作,操作数表示参与操作的数据。
指令的执行过程包括指令的取指、指令的解码和指令的执行。
微机的指令集是由一组基本指令组成的,这些指令可以完成各种不同的数据处理操作,包括算术运算、逻辑运算、数据传输等。
微机的指令集通常由机器语言和汇编语言表示,机器语言是计算机能直接识别和执行的,而汇编语言是机器语言的助记符表示。
微机的指令执行是按照指令周期进行的,指令周期包括取指周期和执行周期。
取指周期是指从存储器中读取指令的时间,执行周期是指执行指令的时间。
微机的时钟信号控制着指令周期的运行。
微机的指令集架构有多种类型,常见的有精简指令集计算机(RISC)和复杂指令集计算机(CISC)。
RISC架构的微机指令简单、指令执行速度快,而CISC架构的微机指令复杂、功能强大。
总之,微机原理与指令是了解和学习微机工作原理必不可少的内容,通过对微机原理和指令的学习,可以更好地理解计算机系统的运行和指令的执行过程。
微机原理与接口技术 指令系统整理

微机原理与接口技术指令系统整理一、引言微机原理与接口技术是计算机科学与技术专业中的重要课程之一,它主要介绍了微机的基本原理和接口技术。
其中,指令系统是微机的核心组成部份,它定义了微机的指令集和指令的执行方式。
本文将对微机原理与接口技术中的指令系统进行整理和总结,旨在匡助读者更好地理解和掌握微机的指令系统。
二、指令系统概述1. 定义指令系统是计算机硬件与软件之间的接口,它定义了计算机的指令集和指令的执行方式。
指令系统包括指令的格式、指令的编码方式、指令的功能等内容。
2. 指令集指令集是指计算机所能执行的所有指令的集合。
常见的指令集有精简指令集(RISC)和复杂指令集(CISC)等。
3. 指令的格式指令的格式包括操作码、操作数和寻址方式等部份。
操作码用于指示所执行的操作,操作数用于指定操作的对象,寻址方式用于确定操作数的地址。
4. 指令的编码方式指令的编码方式决定了指令在计算机内部的表示方式。
常见的编码方式有二进制编码、十进制编码和十六进制编码等。
5. 指令的功能指令的功能包括数据传送、算术运算、逻辑运算、控制转移等。
不同的指令可以实现不同的功能。
三、指令系统分类1. 指令的类型指令可以根据其功能和操作对象的不同进行分类。
常见的指令类型有数据传送指令、算术运算指令、逻辑运算指令、控制转移指令等。
2. 指令的寻址方式指令的寻址方式决定了指令如何获取操作数的地址。
常见的寻址方式有即将寻址、直接寻址、间接寻址、寄存器寻址等。
3. 指令的执行顺序指令的执行顺序决定了指令的执行顺序和流程。
常见的执行顺序有顺序执行、条件执行、循环执行等。
四、指令系统设计原则1. 简洁性原则指令系统应尽量简洁,避免冗余和复杂的指令,以提高执行效率和降低设计成本。
2. 完备性原则指令系统应包含常用的指令,能够满足大部份应用需求。
3. 兼容性原则指令系统应与硬件和软件环境兼容,以便于系统的扩展和升级。
4. 可扩展性原则指令系统应具有良好的扩展性,能够支持新的指令和功能的添加。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DS= 2000H SS=3000H BX=1000H BP=3000H
MOV AX, BX MOV AX, [3000H] MOV AX, [BX] MOV AL, [BP] MOV SI, 0002H MOV CX, [BX][SI] MOV DL, [BX+06H]
AX= 1000H AX= 2010H AX= 3412H AL= 1BH SI= 0002H CX= 7856H DL= DEH
23000H 10H 23001H 20H 23002H 30H 23003H 40H 23004H 50H 23005H 60H 23006H 70H 23007H 80H
33000H 1BH 33001H 2BH 33002H 3BH 33003H 4BH 33004H 5BH 33005H 6BH 33006H 7BH 33007H 8BH
MOV AX, BX MOV AL, BH
;将 BX中的内容传送到AX中去 ;将 BH中的内容传送到AL中去
MOV CL, AX
错误! 不匹配 8
二、 立即寻址 操作数直接放在指令中,紧跟在操作码的后面,与操作码一起放在存储器的代码段中(8/16位)。
MOV AX, 2030H 对应机器码: B8H 2030H
寄存器寻址 ;操作数存放在寄存器中 立即寻址 ;操作数存放在内存代码段 直接寻址 ;操作数存放在内存 寄存器间接寻址;操作数存放在内存 变址寻址 ;操作数存放在内存 基址加变址寻址 ;操作数存放在内存
7
一、 寄存器寻址
操作数放在CPU内部的寄存器中,可以是8位或16位寄存器,注意源操作数和目的操作数的位数应 一致。
AX
34
AH
12 AL
…… ……
内存内容 偏移地址
…… ……
12H 34H 56H ……
0000H 0001H …… 0020H 0021H 0022H ……
数据段 11
也可以指向内存中其他段的数据,这时要在相应的偏移地址前加段超越符和“ :”。 MOV AL, ES:[0020H]
;将 扩展段中偏移地址为0020H单元中的内容传送到AL中去
23
2.2 8086/8088指令系统
8088/8086指令系统可以分为以下六个功能组:
• 数据传送(Data Transter) • 算术运算(Arithmetic) • 逻辑运算(Logic) • 程序控制(Program Control) • 串操作(String Menipulation) • 标志处理 和CPU控制(Processor Control)
AX: 0078H
码段
堆栈段 DS:0000H
AX
00
AH
78 AL
…… ……
内存内容 偏移地址
…… ……
78H 00H 56H ……
0000H 0001H …… 1100H 1101H 1102H ……
数据段 15
例1:MOV AX, ES:[BX] ;传送的操作数在附加段中,偏移地址存放在BX中。
操作码 操作数…
操作码:计算机所要执行的操作,或指出操作类型,是一种助记符。
操作数:操作的对象,可以是操作数本身或存放操作数的内存(I/O端口)地址或其它有关操作数的 信息 。
4
汇编语言是一种符号语言,它用助记符来表示操作码,用符号或符号地址来表示操作数或操作数地址,它与 机器指令是一一对应的。
5
21000H 21001H 21002H 21003H 21004H 21005H 21006H 21007H
12H 34H 56H 78H 9AH BCH DEH F0H
31000H 31001H 31002H 31003H 31004H 31005H 31006H 31007H
1AH 2AH 3AH 4AH 5AH 6AH 7AH 8AH
寻址方式:是指令中用于说明如何寻找操作数的方法。
计算机中操作数常存放在以下几个地方: 指令代码中,存放常量;MOV AX, 2070H 寄存器中:MOV AX, BX 内存中: MOV AX, [2000H] I/O端口中(仅对IN/OUT指令): IN AL, 40H
6
8086/8088的基本寻址方式有六种:
25
注意: • CS,IP不能作为目的操作数 MOV CS, AX • 两个段寄存器间不能直接传送 MOV SS, DS • 立即数不能直接传送给段寄存器 MOV DS,2000H • 内存单元间不能直接传送 MOV [SI], [2000H] • 立即数不能作为目的操作数 MOV 1000H, AX
(1) [SP]BL SP+1SP (2) [SP]BH SP+1SP 先出数据, 再加指针,先低后高
20000H
100个字节
FFH
弹出低字节
SP
34H
弹出高字节
SP
12H
SP
20064H
29
注意: 只能对16位数进行操作,一次压入弹出一个字
PUSH AH;错 必须对寄存器的内容或内存单元的内容进行操作
MOV AX, [BX+SI+0200H]
;欲传送的操作数在数据段中,其偏移地址是BX寄存器中的内容加上SI寄存器中的内容加上0200H
MOV AX, VAL[BX+SI] MOV AX, 0200H[BX][SI] MOV AX, 0200H[BX][BP];错误 MOV AX, 0200H[SI][DI];错误 MOV AX, COUNT[BP+SI] ;欲取的数据在堆栈段
17
注意:用BP变址寻址,操作数默认在堆栈段,用其余3个寄存器时,操作数默认在数据段。
1、对DI、SI、BX变址寻址 物理地址: (DS)×16+计算出的偏移地址
2、对BP变址寻址 物理地址: (SS)×16+计算出的偏移地址 18
MOV DH, [SI+0200H]
;此时传送的操作数在数据段中,其偏移地址是SI寄存器中的内容加上0200H
SP
SP
SP 31
3. 交换指令XCHG 格式:XCHG OPRD1, OPRD2
功能:(OPRD1) (OPRD2) 完成通用寄存器之间,通用寄存器与累加器之间、与存储器之间8位,16位数据的相互交换。
例如:XCHG BL, AH
1) 内存之间的数据、累加器之间不可相互交换 2) CS,IP不能参与交换 3) 段寄存器和立即数不能作为一个操作数
20000H 100个字节 20064H
28
堆栈的操作有两种:入栈/出栈 1、格式:PUSH OPRD
功能: (OPRD)入栈
(1) SP-1SP AH[SP] (2) SP-1SP AL[SP] 先减指针, 再压数据, 先高后低
例: MOV AX, 1234H PUSH AX;入栈
2、格式:POP OPRD 功能: 栈顶内容送OPRD
4000H 4001H 4002H 4003H 4004H
…… B8H 30H 20H ……
注意别错!
4000H 4001H 4002H 4003H 4004H
内存偏移地址
单元内容
…… B8H
高字节 高地址 低字节 低地址
30H
20H
……
AX 20H AH
30H AL 9
三、 直接寻址 操作数存放在内存中,在指令中给出存放单元的偏移地址,如果不加说明,操作数默认在数据段。
24
一、数据传送指令 1. 通用数据传送指令 格式:MOV OPRD1, OPRD2 功能: (OPRD2) OPRD1 •CPU内部寄存器之间数据的传送(除CS、IP) •立即数传送至CPU内部的通用寄存器组 •CPU内部的寄存器(除CS、IP)与存储器(所有寻址方式)之间 •能实现用立即数给存储单元赋值
变址寻址可以有多种格式: MOV AX, [BX+0A00H] MOV AX, TAB[DI]
如:MOV AX, 0200H+[BX] 假设DS:3000H, BX: 1000H 则操作数所在地址:
高8位: 31201H 低8位: 31200H 19
六、 基址加变址寻址 操作数存放在内存中,但其偏移地址是由三部分相加而成:
13
注意:用BP间接寻址,操作数默认在堆栈段,用其余3个寄存器时,操作数默认在数据段。
1、对DI、SI、BX间接寻址 物理地址: (DS)×16+DI/SI/BX中给的16位偏移地址
2、对BP间接寻址 物理地址: (SS)×16+BP中给的16位偏移地址 14
MOV BX, 1100H MOV AX, [BX]
微机原理指令系统学习
第二章 8086/8088指令系统 2
2.1 寻址方式 2.2 8086/8088指令系统
2.2.1 数据传送指令 2.2.2 算术运算指令 2.2.3 逻辑运算和移位指令 2.2.4 程序控制指令 2.2.5 串操作指令 2.2.6 标志处理与CPU控制指令
3
2.1 8086/8088寻址方式 指令格式:
例2:MOV [BP], BX ;将BX中的内容传送到堆栈段中,其目的地的偏移地址存放在BP中。
例3: MOV [CX], 2000H ;错,不能对CX间接寻址
16
五、 变址寻址 操作数在内存中,由指定的寄存器内容,加上指令中给出的8位或16位偏移量作为操作数的偏移地址,计算 方法:
偏移地址=寄存器内容+指令中给定的偏移量 同样,作为变址的寄存器只能有4个:BX, SI, DI, BP,其他寄存器无此功能。
27
2. 堆栈指令
堆栈是按先进后出的原则组织的一段内存区域,一般作临时存储器用(仓库)。其指针SP为16位的寄存器, 始终指向栈顶(货物堆放的位置)。堆栈的空间大小可用户指定。如: