第3章(1) 寻址方式和指令系统

合集下载

微机原理 宋志平 第三章课件

微机原理 宋志平 第三章课件

011
100 101
[BP]+[DI]
[SI] [DI]
[BP]+[DI]+D8
[SI]+D8 [DI]+D8
[BP]+[DI]+D16
[SI]+D16 [DI]+D16
110
111
D16(直接地址)
[BX] 15 1 0 0 0 1 0 操作码
[BP]+D8
[BX]+D8 8 D W 7
[BP]+D16
微机原理与接口技术
例: MOV CX , 36H[BX] MOV -20[BP] , AL
11
6、基址加变址寻址(Based Indexed addressing) 它的EA是由三部分组成的,基址寄存 器BX或BP的内容加上变址寄存器的内容 再加位移量。物理地址由基址寄存器按规 则选择段寄存器,也可以使用段超越。
01 11 00 10
CS DS ES SS
210 R/M
MOD
0:数据从寄存器传出 1:数据传至寄存器
24
MOD R/M 000 001 010
微机原理与接口技术 11 00 [BX]+[SI] [BX]+[DI] [BP]+[SI] 01 [BX]+[SI]+D8 [BX]+[DI]+D8 [BP]+[SI]+D8 10 [BX]+[SI]+D16 [BX]+[DI]+D16 [BP]+[SI]+D16 W=0 AL CL DL BL AH CH DH BH 210 R/M W=1 AX CX DX BX SP BP SI DI

第三章 MCS-51单片机的寻址方式和指令系统

第三章 MCS-51单片机的寻址方式和指令系统

由此可把数据传送指令分成三部分
(一)内部数据传送(通用传送指令)
1.以A为目的操作数
MOV A,Rn MOV A,@Ri ;A← (Rn) ;A←((Ri))
双字节
11101rrr 1110011i
MOV A,direct ;A←(direct) 11100101 direct
MOV A,#data ;A←#data 例: MOV A,@R1 若(R1)=20H,(20H)=62H 结果:(A)=62H 11100100 data
指令MOVC A,@A+DPTR;执 行示意图
结果:(ACC)=64H
六、相对寻址

以当前PC的内容为基准,加上指令给出的 偏移量(rel)形成新的PC值(转移地址) 的寻址方式。
转移地址=目的地址 =当前(PC)+rel
目的地址=PC当前值十rel 目的地址=转移指令的PC值+2(或3)十rel 目的地址=转移指令地址+转移指令字节数+rel
单周期:64 双周期:45 四周期:2
若fosc=12MHz, 大多指令执行 仅1μs
按照指令的功能分5大类
一、数据传送类指令(29条) 二、算术运算类指令(24条) 三、逻辑操作类指令(24条) 四、控制转移类指令(17条) 五、位操作类指令 (17条)
在描述指令系统的功能时,常用符号介绍:
@——间址符号,如@Ri,@DPTR 13. / ——位操作数的前缀,表示对该位操作 数取反,如/bit。 14. (×)——由×寻址的单元中的内容。 15. ((X))——由X的内容作为地址的存 储单元的内容。 16. ← ——箭头右边的内容取代箭头左边的 内容。
12.
一、数据传送类指令(29条)

第3章 8086的指令系统—3.1寻址方式

第3章 8086的指令系统—3.1寻址方式
EA=[基址寄存器]+([变址寄存器] *比例因子)+位移量 BX,BP SI,DI 1 0,8,16
例:(BX)=2000H,(SI)=1000H,偏移量=0250H,
则EA= 2000H+1000H+0250H=3250H
寻址目的
确定本条指令的操作数据 在指令中 PA:存储器内的绝对地址(20位) 在存储器中 EA:某个段内的相对地址(16位) 在寄存器中 确定下一条指令的地址 根据指令长度计算 根据转移指令的目标地址
寄存器名表示其内容(操作数)
MOV AX, BX
MOV AL, BH
;AX←BX
;AL←BH
演示
第3章: 3.1.3 存储器寻址方式
操作数在主存储器中,用主存地址表示 程序设计时,8088采用逻辑地址表示主存地址
段地址在默认的或用段超越前缀指定的段寄存器中 指令中只需给出操作数的偏移地址(有效地址EA)
演示
;AX←DS:[SI+06H]
第3章:4. 基址加变址寻址方式
有效地址由基址寄存器(BX或BP)的内容加上 变址寄存器(SI或DI)的内容构成: 有效地址=BX/BP+SI/DI 段地址对应BX基址寄存器默认是DS,对应BP基 址寄存器默认是SS;可用段超越前缀改变
MOV AX, [BX+SI] MOV AX, [BX][SI]
*微型计算机汇编语言特点 *微型计算机指令系统概述 *寻址方式
指令及其格式
指令及指令集 计算机能够识别和执行的基本操作命令
指令的作用
告诉CPU干什么?What? 告诉CPU从哪儿取数据?Where? 告诉CPU下一条指令在哪儿?Where? 操作码 操作数或操作数地址 指令的格式

微机原理第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 则内存操作数的物理地址为:

汇编语言第3章 指令系统和寻址方式

汇编语言第3章 指令系统和寻址方式

5.寄存器相对寻址方式(register relative addressing)
EA=基址(base) 或变址( index)+偏移量 (displacement)
基址寄存器有:BX,BP 变址寄存器有:SI,DI 注:默认段是数据段和堆栈段
(SI) 物理地址=(DS)*16+(BX)+displacement
(DI) =(SS)*16+(BP)+ (SI)+displacement (DI)
例:mov AX,ARRAY[BX][DI] (DS)=1000H,(BX)=1200H, (DI)=1000H, ARRAY=1000H 物理地址=DS*16+(BX)+(DI)+ARRAY =DS*16+1200+1000+1000=13200H 若:(13200)=34H,(13201)=12H 则,(AX)=1234H 允许段超越。 例:mov AL,ES:ARRAY[BX][DI] 用途:处理成组数据(举例说明)
2.段内间接寻址(intrasegment indirect addressing) (IP)新=EA=寄存器或存储单元的内容 寄存器:所有寄存器寻址方式可用的寄存器 存储单元:所有存储单元寻址方式均适用 例:JMP SI (IP)=(SI) JMP WORD PTR VAR或简写JMP VAR (DS)=1000H,VAR=2000H 存储单元的物理地址=(DS)*16+VAR=12000H (12000H)=1234H 则,(IP)新=1234H
4.寄存器间接寻址方式(register indirect addressing)
EA=基址(base) 或变址( index) 基址寄存器有:BX,BP 变址寄存器有:SI,DI 注:默认段是数据段和堆栈段 (SI) 物理地址=(DS)*16+(BX) (DI) =(SS)*16+(BP)

寻址方式和指令系统

寻址方式和指令系统

寻址⽅式和指令系统《微机原理》复习思考题第3章 8086的寻址⽅式和指令系统3.1 8086汇编语⾔指令的寻址⽅式有哪⼏类?⽤哪⼀种寻址⽅式的指令执⾏速度最快?3.2 直接寻址⽅式中,⼀般只指出操作数的偏移地址,那么,段地址如何确定?如果要⽤某个段寄存器指出段地址,指令中应如何表⽰?3.3 在寄存器间接寻址⽅式中,如果指令中没有具体指明段寄存器,那么,段地址如何确定?3.4 ⽤寄存器间接寻址⽅式时,BX,BP,SI,DI分别针对什么情况来使⽤?这四个寄存器组合间接寻址时,地址是怎样计算的?举例进⾏说明。

3.5 设DS=2100H,SS=5200H,BX=1400H,BP=6200H,说明下⾯两条指令所进⾏的具体操作:MOV BYTE PTR [BP], 2000MOV WORD PTR [BX], 20003.6 使⽤堆栈操作指令时要注意什么问题?传送指令和交换指令在涉及内容操作数时分别要注意什么问题?3.7 下⾯这些指令中哪些是正确的?哪些是错误的?如果是错误的,请说明原因。

XCHG CS, AXMOV [BX], [1000]XCHG BX, IPPUSH CSPOP CSIN BX, DXMOV BYTE[BX], 1000MOV CS, [1000]3.8 8086系统中,当对SS和SP寄存器的值进⾏修改时,有什么特殊规定?这样做的原因是什么?[解答] 凡是遇到给SS寄存器赋值的传送指令时,系统会⾃动禁⽌外部中断,等到本条指令和下条指令执⾏之后,⼜⾃动恢复对SS寄存器赋值前的中断开放情况。

这样做是为了允许程序员连续⽤两条指令分别对SS和SP寄存器赋值,同时⼜防⽌堆栈空间变动过程中出现中断。

3.9 以下是格雷码的编码表0——0000 1——0001 2——0011 3——0010 4——01105——0111 6——0101 7——0100 8——1100 9——1101请⽤换码指令和其他指令设计⼀个程序段,实现格雷码往ASCII的转换。

第三章 8086的寻址方式和指令系统

第三章 8086的寻址方式和指令系统
习题 CH3 寻址方式和指令系统
计算机的指令通常包含 操作码 和 操作数 两部分。
设SP为0100H,SS为1000H,则执行PUSH AX 后,
00FE H,SS= 1000 H。 8086系统中,栈底在堆栈的 最高地址 (最高地址端、 最低地址端)。
如果VAL为数据段中0056H单元的符号名,其中存放
16
习题 CH3 寻址方式和指令系统
(6)MOV [SI],[BX] 源、目的操作数不能同时为存储单元 (7)MOV DS,0200H 立即数不能直接送给段寄存器 (8)IN BL,05H BL不能作为IN指令的目的操作数 (9)MOV AX,IP IP不能作为操作数 (10)MOV SI,[DX] DX不能进行寄存器间接寻址 (11)PUSH AL PUSH指令以字为操作单位
用单条指令或程序片段,实现下述功能
(1)将AX高8位取反,低四位置1,其余位不变。
XOR AX, 0FF00H
OR AX, 0FH (2)将AL的高四位与低四位互换。 MOV CL, 4 ROL AL, CL
(3)将BX、AX内容互换。
XCHG AX, BX
12
习题 CH3 寻址方式和指令系统
[BP+SI+4]源操作数的有效地址为
地址为 数的有效地址为
,物理 0214H 24514H 。指令MOV AX,[DI+100H]源操作
0306H,物理地址
为 24306H 。 设AX=2000H,BX=2002H,则在执行了指令CMP AX,
BX后,标志位CF为

1 , AX=
。 2000H
基址变址寻址
(5)MOV AX,10[BX][DI] 相对基址变址寻址

汇编语言、微机原理及接口技术(第3版)郑初华_课后题解答

汇编语言、微机原理及接口技术(第3版)郑初华_课后题解答

第1章进制及码元1.进制转换129= 81H= 10000001B=201Q298= 12AH= 100101010B=452Q1000= 3E8H= 1111101000B= 1750Q5DH= 1011101 B= 135 Q= 93 D3E8H= 1111101000 B= 1750Q= 1000 D;357Q=11101111 B= 0EF H= 239 D3.数据表示范围:一字节的无符号数表示范围为0~255,有符号数(补码)表示范围为-l28—+127。

一个字的无符号数表示范围为0~65535,有符号数(补码)表示范围为—32768~+32767。

N位二进制数的无符号数表示范围为0~(2N-1),有符号数(补码)表示范围为-2N-1~(2N-1-1).4.35H代表的ASCII字符为'5',代表十六进制数时等价的十进制值为53 ,代表压缩8421BCD码等价的十进制值为35 ,代表非压缩8421BCD码等价的十进制值为5。

5.FFH代表无符号数时等价的十进制值为255 ,代表补码有符号数时等价的十进制值为一1 ,代表反码有符号数时等价的十进制值为一0 ,代表原码有符号数时等价的十进制值为一l27。

6.--20的8位二进制补码为ECH ,原码为94H ,反码为EBH 。

158的16位二进制补码为009EH,原码为009EH ,反码为009EH 。

第2章微机硬件基础1.计算机系统硬件的五大功能部件及其主要功能?答:硬件系统按功能模块分为运算器、控制器、存储器、输入设备、输出设备。

运算器主要完成算术运算、逻辑运算及移位运算,其中主要包括算术逻辑运算单元Arithmetic Logic Unit,ALU)和暂存数据(原始、中间、结果)的寄存器(Register,R)。

控制器实现对计算机部件的协调调度完成指令的分析执行,其中主要有程序计数器Program Counter,PC)或叫指令指针(Instruction Pointer,IP)、指令寄存器(Instruction register,IR)、指令译码器(Instruction Decoder,ID)、微操作命令发生器、时序发生器等。

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

EA的组成不同,寻找其中的操作数的方式也随之不同。如何寻找操作数 的有效地址,进而找到所需操作数的方式就是寻址方式 因为EA的组成方式都体现在指令中,故寻址方式也可以说是在指令中获得 操作数所在地址的方法。
3.1 Pentium的寻址方式
• 指令的两个问题
– 指出进行什么操作 – 涉及的操作数和操作结果放在何处
在这种寻址方式中,操作数是在存储器中,但是,操作 数的地址的16位偏移量包含在以下四个寄存器SI、DI、 BP、BX之一中。这又可分成两种情况: 1、 BX、SI、DI间址时以DS为默认段地址; 例:MOV AX,[SI] 2、BP间址时以SS为默认段地址。 例:MOV AX,[BP]
医药信息工程学院 何永玲
二、操作数存在方式
在微型计算机中,操作数可能以以下四种方式存在:
• 操作数包含在指令中——即指令的操作数场就包含着操作数本身。
MOV AX, 1234 ; ADD AL, 2
• 操作数包含在CPU的某一个内部寄存器中—— 这时指令中的操作数场是
CPU内部 寄存器的一个编码。
MOV DS, AX
• 操 作 数 在 内 存 的 数 据 区 中 —— 这 时 指 令 中 的 操 作 数 场 包 含 着 此 操 作 数 的
医药信息工程学院 何永玲
3.2.2 算术运算指令(1-P88)
– 不带进位位的加法指令ADD
比如: ADD ADD ADD ADD 比如: ADC ADC ADC CX,1000H ;CX=CX+1000h DI,SI [BX+DI],AX EAX,[BX+2000H]
• 无符号数和有符号数采用同一套加法指令及减法 所有算术运算指令均影响状态标志。 指令有两个条件:
规则: – 同为无符号数或有符号数 当无符号数运算产生溢出时, CF为1; – 用不同的方法检测无符号数或有符号数的运算结果是 否溢出 当有符号数运算产生溢出时,OF为1; 无符号数 SF和OF支持有符号数的运算; 8位位范围为: 0~255, 16位范围为0~65 535 如运算结果为0,则ZF=1; 有符号数 如运算结果为负数,则 SF=1; -32 768~+32 767 8位范围为-128~+127, 16位范围为: 如运算结果的低 8 位中有偶数个 1 ,则 PF=1 。
间接的I/O指令 IN IN IN OUT OUT
AL,DX AX,DX EAX,DX DX,AX DX,EAX
① 只能用累加器作为执行 输入输出的机构 ② 寻址范围: 直接: 0~255 间接: 0~65 535 ③ 用 间 接 I/O 指 令 时 , 只能 用DX
医药信息工程学院 何永玲源自 3.2.1 传送指令(5-P84)
医药信息工程学院 何永玲
5 相对的基址加变址寻址
医药信息工程学院 何永玲
存储器寻址
6 相对的带比例因子的变址寻址 IMUL EBX,[ESI*4+7] 7 基址加比例因子的变址寻址 MOV EAX,[EBX][ESI*4] MOV ECX,[EDI*8][EAX] 8 相对的基址加比例因子的变址寻址 MOV EAX,[EDI*4][EBP+80]
医药信息工程学院 何永玲
4 基址加变址的寻址
医药信息工程学院 何永玲
存储器寻址
5 相对的基址加变址寻址 MOV AX,[BP+SI+0050] • 相对基址加变址寻址即以某 一基地址寄存器(通常为 BX、BP)的内容,加上某 一变址寄存器(通常为SI, DI)的内容,再加上给定的 8位或16位偏移量,形成了 操作数的有效地址。 • 段地址规则同上。
医药信息工程学院 何永玲
3 寄存器相对寻址
医药信息工程学院 何永玲
存储器寻址
4 基址加变址的寻址 MOV AX,[BX+SI] MOV EDX,[EBX+ESI] MOV EDX,[EBX] [ESI] 基址加变址寻址即以某一基 地址寄存器(通常为BX、 BP)的内容,加上某 一 变址寄存器(通常为SI, DI)的内容,形成操作数 的有效地址。段地址规则 同上。
医药信息工程学院 何永玲
3.2.1 传送指令(6-P85)
• 地址传送指令LEA和LDS/LES/LSS/LFS/LGS 比如: LEA AX,[2728] LEA BX,[BP+SI] LEA ESI,[EBX+ECX+2530H] LEA EDI,[BX+1946H]
源操作数总是来 自存储器!!!
取段码和偏移量的指令LDS/LES/LSS/LFS/LGS 比如: LDS DI,[2530H] :将2531H和2530H中的内容(16位)送DI,
2533H和2532H中的内容送DS。
LES LSS
EDI,[1000H] ESP,[EDX]
医药信息工程学院 何永玲
3.2.2 算术运算指令-P86
• XLAT/XLATB
– 换码指令XLAT/XLATB 格雷码编码规则如下:
0——11000 2——00101 4——01001 6——01100 8——10010 1——00011 3——00110 5——01010 7——10001 9——10100
MOV BX,1000H MOV AL,5 XLAT ;AL=(BX+AL)
POP POP POP
BX ES EAX
② 推入指令,SP减2或4,低地址低 字节,数据在栈顶。弹出指令正好 相反。 ③ 允许PUSH CS,但不允许POP CS。 ④ 堆栈的后进先出。
医药信息工程学院 何永玲
3.2.1 传送指令(3-P82)
• 字节交换指令 思考P82: XCHG
XCHG AL,BL 为什么说一条 XCHG指令相当于三条MOV XCHG BX,CX 指令? XCHG [2530],CX
医药信息工程学院 何永玲
3.2 Pentium指令系统
• Pentium的指令分为如下几类:
– – – – – – – – – – 传送指令; 串操作指令; 算术运算指令; 逻辑运算和移位指令; 转移和调用指令; 标志操作和处理器指令; 控制指令; 条件测试和字节设置指令; 系统管理指令; 支持高级语言的指令。
医药信息工程学院 何永玲
数据传送指令
将数据从机器的一个地方传送到机器 的另 一个地方。它们有数据传送、交换、堆栈 操作和其它传送等不同类型的指令
医药信息工程学院 何永玲
医药信息工程学院 何永玲
3.2.1 传送指令(1-P80)
• 通用传送指令MOV
– 两个操作数的数位相同的传送指令MOV
MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV AL,BL ;AL=BL ES,DX AX,[BX] [DI],AX CX,[1000] WORD PTR [SI],6070H DX,5040H EAX,[EBX+ECX*2+1000H] CRn,EAX DRn,EAX
第3章(2) Pentium的指令系统
重点内容: •寻址方式; •传送指令中的堆栈指令、交换指令、换码 指令、输入/输出指令; •算术运算指令中的比较指令; •串操作指令;
医药信息工程学院 何永玲
指令系统
计算机是通过执行指令来管理计算机并完成一系列给定功能的。因而, 每种计算机都有一组指令集提供给用户使用,这组指令集叫做计算机的指令 系统。不同的计算机指令不同,指令集中指令的数量也不同,大体上在几十 种到百余种。 指令通常应提供的信息 1. 做什么操作 2. 操作数从哪里来 3. 操作结果放在哪里 4. 对于调用和转移指令,还要涉及转移或调用地址的提供方式 一、 8086的指令格式 指令的一般格式为: 操作码 操作数 … 操作数
AL,80H 80H,AX EAX,80H
IN OUT OUT
AL,DX DX,AX DX,EAX
医药信息工程学院 何永玲
存储器寻址
1 直接寻址 MOV
AX,[2000H]
医药信息工程学院 何永玲
1 直接寻址
医药信息工程学院 何永玲
存储器寻址
2 寄存器间接寻址 MOV MOV
AX,[BX] EAX,[EBX]
操作数是
由指令中的寄存器决定
医药信息工程学院 何永玲
立即数寻址
医药信息工程学院 何永玲
立即数寻址
医药信息工程学院 何永玲
寄存器寻址
医药信息工程学院 何永玲
寄存器寻址
医药信息工程学院 何永玲
寻址方式
• 3.1.3 输入/输出端口寻址
– I/O直接寻址 比如:
IN OUT IN
– I/O间接寻址
交换指令注意点:
XCHG XCHG
EAX,EDI ESI,[EBX]
① 目的操作数和源操作数不能均为内存单元。 ② 段寄存器和IP、EIP不能作为交换指令的 操作数。
医药信息工程学院 何永玲
3.2.1 传送指令(4-P83)
• 累加器专用传送指令IN/OUT
– 输入/输出指令IN/OUT
直接的I/O指令比如: IN AL,50H IN AX,70H IN EAX,70H OUT 80H,AX
操作码 —— 告诉计算机要执行的操作是什么,如:加、减、逻辑与等。 操作数 ——指出指令在执行过程中所需要的 操作数(值为多少 或者放在什么地方),以及操作结果送到哪里
操作码场
字节1 字节2 字节3
操作数的 低位地址 或 低位数据 字节
操作数场
字节4
操作数的 高位地址 或 位数据 字节
字节5
操作数的 低位数据 字节
• 两种情况下涉及寻址方式
– 操作数寻址 – 转移地址和调用地址进行寻址
医药信息工程学院 何永玲
寻址方式
相关文档
最新文档