微机原理第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
微机原理与接口技术第3章1PPT课件
12
二、半导体存储器的组成
①地址寄存存储储体地址译器芯片的存主储要体部分,用读写电来存储信数据寄息
AB②存地址译码 码电路
路
存 DB
根据输入的地址编码来选中芯片内某个特 定的存储单元控制电路
③ 片选和读Βιβλιοθήκη 控制逻辑选中存储芯O片E,W控E制CS读写操作
13
存储器需要刷新时间。
5
2、存取速度(续)
存取速度是指每秒从存储器读写信息的数量,用 BM表示,设W为存储器传送的数据宽度(位或字节), 则BM=W/TA,单位为位/秒或字节/秒。
6
三、存储器的分类
存储器
主存储器 外存储器
1、主存储器,简称主存,(也叫内存),可以被 CPU直接访问,以较快的速度进行读写操作,主要用 来存放计算机当前运行所需的程序和数据。
17
三、半导体存储器的读写操作(续)
存储器的写操作可以描述如下: (1)在CPU的控制下,将要访问的存储单元地址码送 地址寄存器中; (2)地址译码器将地址寄存器中的地址码译成相应行、 列信号,标定所访问的存储单元。 (3)在CPU的控制下,将CPU内某部件的内容送数据线 上。
(4)在CPU的统一控制下,由控制电路将写命令转换成 相应的读写电路的操作,将数据线上的信号传到指定单元, 完成存储器的写操作。
主存(内存) 辅存(外存)
8
一、半导体存储器的分类
按制造工艺
双极型:速度快、集成度低、功耗大 MOS型:速度慢、集成度高、功耗低
按使用属性
随机存取存储器RAM:可读可写、断电丢失 只读存储器ROM:正常只读、断电不丢失
详细分类,请看图示
9
微机原理 第三章 微处理器
青岛理工大学琴岛学院
表3.1 通用寄存器的特定用法
寄存器 操作 寄存器 操作 在移位指令中作 移位次数计数器
AX
字乘,字除,字I/O
CL
AL
字节乘,字节除,字节I/O, 查表转换,十进制运算
字节乘,字节除
DX
字乘,字除指令 中作辅助累加器
堆栈操作,做堆 栈指针
AH
SP
BX
查表转换,做基址寄存器
SI
青岛理工大学琴岛学院
2)逻辑地址与物理地址
逻辑地址(LA)和物理地址(PA):
物理地址:就是存储器的实际地址,它是指CPU和存储器 进行数据交换时所使用的地址(20位)。
逻辑地址:是在程序中使用的地址,它由段基址和偏移地
址两部分组成(16位)。
物理地址=段基址(左移4位)+偏移量
形成20位段 起始地址 16位
青岛理工大学琴岛学院
2 . 8086/8088CPU的寄存器结构
8086/8088CPU中可供编程使用的有14个16位寄存器, 按其用途可分为3类:通用寄存器、段寄存器、指针和标 志寄存器,如所示。
AH BH CH DH SP BP SI DI FLAGS IP CS DS SS ES AL BL CL DL 累加器 基址寄存器 计数寄存器 数据寄存器 数据寄存器 通用寄存器 地址指针和 变址寄存器
2
3 4 5
6
存取一般变量(除3、4、5项外)
DS
有效地址EA
根据寻址方式计算出来的偏移量又叫操作数的有效地址EA
青岛理工大学琴岛学院
4. CPU对堆栈的设置与操作
堆栈的功能:用于暂存数据和现场保护 (特别是在过程调用或中断处理时暂存断 点信息) 堆栈的解释:实际上是由特定存储单元 构成的一个存储区,只是在这个存储区中 信息的出入严格按照“先进后出”或“后 进先出”的规则进行。
微机原理第三章习题答案
习题3答案1. 指出下列指令的错误原因。
(1) AND AX, DL ;类型不匹配(2) ADD CS, DX ;CS不能作为目的操作数(3) MOV AX, IP ;IP不能作为指令的操作数(4) MOV [BP][SI], [SI] ;两个操作数不能同时为内存操作数(5) SUB [BP][SI], ES:DX ;段超越前缀只能用在内存操作数之前(6) XCHG AL, [SI][DI] ;没有[SI][DI]这种操作数形式(7) JGE AX ;条件转移指令的操作数只能是标号(8) PUSH DL ;对堆栈不能进行字节操作2. 用一条指令将BX清0。
(请给出3种方法)方法1:MOV BX, 0方法2:SUB BX, BX方法3:AND BX, 0 ;将BX和0做与,可以将BX清零方法4:XOR BX, BX3. 写出实现下列功能的指令序列。
(1) 判断AX的值,若AX等于0,则转到标号LABEL处。
(请写出3种方法)方法1:CMP AX, 0JZ LABEL ; 如果ZF = 0,说明AX为0,因为CMP指令是做减法,但是不写回结果; 因此指令执行后AX内容不会受到破坏方法2:TEST AX, 0FFHJZ LABEL ; 如果ZF = 0,说明AX为0,TEST指令做与运算,可是不写回结果,只影响标志位。
; 和0与清零,和1与不变,所以和FFH做与的结果是AX本身,但是此时标志位已; 经改变了,所以可以利用标志位来判断,但是AX内容却没有受到任何破坏方法3:AND AX, 0FFH ;这个方法的原理和方法2其实是完全一致的JZ LABEL(2) 将AL的高4位与低4位分别放入AH与AL的低4位,并将AH与AL的高4位清0。
MOV AH, ALAND AL, 0FH ; AL高4位通过与清零,而低4位保持不变MOV CL, 4SHR AH, CL ; 这两条指令通过逻辑右移将AH的高4位清零,因为SHR在右移后,高位补零(3) 若AX和BX中的数恰好1个是奇数、1个是偶数,则将奇数放入AX,偶数放入BX;否则,AX和BX不变。
微机原理第3章.ppt
EA 有效转移地址
指令 寻址方式
CS 指令
寻址方式 IP
根据寻址 方式计算 或
EA
(b)
寄存器 有效转移地址
有效转移地址 存储器
根据寻址 方式计算
EA
内存中 两个连续的字 转移地址偏移量
段地址
(c)
(d)
(a)段内直接(相对)寻址; (b) 段内间接寻址; (c) 段间直接寻址; (d) 段间间接寻址
(DS)×10H=30000H
(SI)=2000H
+
10H
32010H
存储器 操作码 操作码
10 H
(DS)×10H=30000H (BX)=1000H
+ COUNT=1050H 32050H
30000H
AX
…
CX
40 H
50 H
32010H
存储器 操作码 操作码
50 H 10 H
30000H …
32050H 30 H 40 H
(DI)=1500H
+
1200H
83700H
存储器
(SS)×10H=60000H
(BP)=1000H
(SI)=1600H
+
200H
62800H
存储器
AX
80 H
56 H
80000H …
83700H 56H 80H
CX
78H
56H
60000H …
62800H 56 H
78 H
2019/12/17
19
8. 隐含寻址
2019/12/17
15
6. 基址变址寻址
微机原理第3章习题(答案)
微机原理第3章习题(答案)1.下列各条指令是否有错?如果有,请指出错误之处并改正(1)MOVDS 1000H(2)MOV[100],23H(3)ADDAX [BX + BP+ 6](4)PUSHDL(5)INAX, [3FH](6)0UT3FFH AL(7)LESSS [SI](8)POP[AX](9)IMUL4CH(10)SHLBX 5(11)INT300(12)XCHGD, 0FFFH答:(1)错误。
不允许直接向段寄存器送立即数,可改为:MOVAX 1000HMOVD, AX(2)错误。
该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则第一操作数前应加上BYTEPT或WORDPT说明,否则汇编程序会因不能确定操作数长度而指示出错。
可改为:MOVBYTEPTR[1O0] 23H(3)错误。
不能同时使用两个基址寄存器BX、BP进行间接寻址,可改为:ADDAX [BX + DI + 6](4)错误。
堆栈操作应以字为单位进行,而DL是一个字节。
可改为:PUSHDX(5)错误。
在输入/输出指令中,8位端口地址应直接写在操作数处。
可改为:INAX, 3FH(6)错误。
端口地址3FFH已超出8位二进制表示范围,16位端口地址应用DX可改为:MOVD, 3FFHOUTDXAL(7)错误。
LES指令的目操作数应该是通用寄存器,不能是段寄存器。
可改为:LESBX [SI](8)错误。
AX不能用于间接寻址,间接寻址只能用BXBP、SI、DI四个寄存器之一。
可改为:POP[BX](9)错误。
立即数不能做乘法指令的操作数,可改为:MOVBJL 4CHIMULBL(10)错误。
当逻辑移位的次数大于1时,应该用CL指示次数。
可改为MOVCL 5SHLBX CL(11)错误。
操作数300>255,已超出有效的中断类型码范围。
(12)错误。
XCHG指令不允许立即数做它的操作数。
可改为:MOVC, 0FFFHXCHGDXCX2•请指出以下各指令的源、目的操作数所使用的寻址方式(1)MOVSI 2100H(2)SBBDISP[BX], 7(3)AND[DI] , AX(4)ORAX [609EH](5)MOV[BXb DI + 30H], CX(6)PUSHES [BP](7)CALL[DI]DISP(8)JNZShort_label答:(1)源操作数:立即数寻址;目的操作数:寄存器寻址(2)源操作数:立即数寻址;目的操作数:基址寻址(3)源操作数:寄存器寻址;目的操作数:寄存器间接寻址(4)源操作数:直接寻址;目的操作数:寄存器寻址5)源操作数:寄存器寻址;目的操作数:(带位移量的)基址变址寻址(6)源操作数:带段超越的寄存器间接寻址;目的操作数:隐含寻址(7)只有一个操作数,为变址寻址(8)只有一个操作数,为相对寻址3. 已知DS=2000H 有关的内存单元值为:(21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H,(23600H)=60H,(23601H)=30H,符号COUNT 勺偏移地址为1200H。
微机原理第3章习题与答案
习题一、选择题1.寻址方式指出了操作数的位置,一般来说_______。
A.立即寻址给出了操作数的地址B.寄存器直接寻址的操作数在寄存器内,而指令给出了存储器C.直接寻址直接给出了操作数本身D.寄存器直接寻址的操作数包含在寄存器内,由指令指定寄存器的名称答案:D2.寄存器寻址方式中,操作数在_________。
A.通用寄存器B.堆栈C.内存单元D.段寄存器答案:A3.寄存器间接寻址方式中,操作数在_________。
A.通用寄存器B.堆栈C.内存单元D.段寄存器答案:C4.下列指令中的非法指令是______。
A. MOV [SI+BX], AXB.MOV CL, 280C.MOV [0260H], 2346HD.MOV BX, [BX]答案:B5.设(SP)=0100H,(SS)=2000H,执行PUSH BP指令后,栈顶的物理地址是_____。
A.200FEHB.0102HC. 20102HD.00FEH答案:A6.指令LEA BX, TAB执行后,其结果是______。
A.将TAB中内容送BXB.将TAB的段基址送BXC.将TAB的偏移地址送BXD.将TAB所指单元的存储内容送BX答案:C7.下列正确的指令格式有______。
A.MOV [BX], 1B.MOV AL, 0345HC.MOV ES: PTR[CX], 3D. XLAT答案:D8.设(AX)=C544H,在执行指令ADD AH,AL之后,______。
A.CF=0,OF=0B.CF=0,OF=1C.CF=1,OF=0 D,CF=1,OF=1答案:C9.若AL、BL中是压缩BCD数,且在执行ADD AL, BL之后,(AL)=0CH,CF=1,AF=0。
再执行DAA后,(AL)=_____。
A.02HB.12HC.62HD.72H答案:B10.执行下列程序后AL的内容为_____。
MOV AL, 25HSUB AL, 71HDASA.B4HB.43HC.54HD.67H答案:C11.下列四条指令中,需要使用DX寄存器的指令是______。
(完整版)微型计算机原理(第三章课后答案)
微型计算机原理第三章80X86微处理器1.简述8086/8088CPU中BIU和EU的作用,并说明其并行工作过程。
答:(1)BIU的作用:计算20位的物理地址,并负责完成CPU与存储器或I/O端口之间的数据传送。
(2)EU的作用:执行指令,并为BIU提供所需的有效地址。
(3)并行工作过程:当EU从指令队列中取出指令执行时,BIU将从内存中取出指令补充到指令队列中。
这样就实现了取指和执行指令的并行工作。
2.8086/8088CPU内部有哪些寄存器?其主要作用是什么?答:8086/8088CPU内部共有14个寄存器,可分为4类:数据寄存器4个,地址寄存器4个,段寄存器4个和控制寄存器2个。
其主要作用是:(1)数据寄存器:一般用来存放数据,但它们各自都有自己的特定用途。
AX(Accumulator)称为累加器。
用该寄存器存放运算结果可使指令简化,提高指令的执行速度。
此外,所有的I/O指令都使用该寄存器与外设端口交换信息。
BX(Base)称为基址寄存器。
用来存放操作数在内存中数据段内的偏移地址,CX(Counter)称为计数器。
在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化,有利于提高程序的运行速度。
DX(Data)称为数据寄存器。
在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。
(2)地址寄存器:一般用来存放段内的偏移地址。
SP(Stack Pointer)称为堆栈指针寄存器。
在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。
BP(Base Pointer)称为基址寄存器。
作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。
SI(Source Index)称为源变址寄存器。
SI存放源串在数据段内的偏移地址。
东华理工微机原理第三章习题答案
东华理工微机原理第三章习题答案3.1给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么?(1) 立即寻址(2) 直接寻址(3) 使用BX的寄存器寻址(4) 使用BX的简接寻址(5) 使用BX的寄存器相对寻址(6) 基址变址寻址(7) 相对基址变址寻址答:(1) 操作数在指令中,即立即数;(2) EA=D=7237H;(3) 无EA,操作数为(BX)=637DH;(4) EA=(BX)=637DH;(5) EA=(BX)+D=0D5B4H;(6) EA=(BX)+(SI)=8E18H;(7) EA=(BX)+(SI)+D=1004FH;超过了段的边界,最高进位位丢失,因此EA=004FH。
3.2试根据以下要求写出相应的汇编语言指令(1) 把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中。
(2) 用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。
(3) 用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器中。
(4) 用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回存储单元中。
(5) 把数0B5H与(AL)相加,并把结果送回AL中。
答:(1) ADD DX, BX(2) ADD AL, [BX][SI](3) ADD [BX+0B2H], CX(4) ADD WORD PTR [0524H], 2A59H(5) ADD AL, 0B5H3.3写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。
要求使用以下几种寻址方式:(1) 寄存器间接寻址(2) 寄存器相对寻址(3) 基址变址寻址答:(1) MOV BX, OFFSET BLOCK ADD BX, (6–1)*2MOV DX, [BX](2) MOV BX, OFFSET BLOCKMOV DX, [BX+(6–1)*2]BLOCK[BX](3) MOV BX, OFFSET BLOCKMOV SI, (6–1)*2MOV DX, [BX][SI]3.4现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。
微机原理第三章习题与参考答案
第三章习题与参考答案3.1 已知 (DS) = 1000H,(ES) = 2000H,(SS) = 3000H,(SI) = 0050H,(BX) =0100H,(BP) =0200H,数据变量DISP的偏移地址为1000。
指出下列指令的寻址方式和物理地址。
(1) MOV AX,0ABH 立即寻址无(2) MOV AX,BX 寄存器寻址无(3) MOV AX,[l000H] 直接寻址 10000H(4) MOV AX,DATA 直接寻址 (DS*16+DATA )(5) MOV AX,[BX] 寄存器间接寻址 10100H(6) MOV AX,ES:[BX] 寄存器间接寻址 20100H(7) MOV AX,[BP] 寄存器间接寻址 30200H(8) MOV AX,[SI] 寄存器间接寻址 10050H(9) MOV Ax,[BX+l0] 寄存器相对寻址 1010AH(10) MOV AX,DISP[BX] 寄存器相对寻址 11100H(1l) MOV AX,[BX+SI] 基址变址寻址 10150H(12) MOV AX,DISP[BX][SI] 相对基址变址寻址 11150H3.2 分别说明下例指令采用的寻址方式和完成的操作功能。
(1) MOV CX,2000H 立即寻址将立即数2000H送CX寄存器(2) MOV DS,AX 寄存器寻址将AX寄存器内容送DS段寄存器(3) AND CH,[1000H] 直接寻址将[DS*16+1000H]单元的内容送CH寄存器(4) ADD [DI],BX 寄存器间接寻址将CL寄存器的内容送[DS*16+DI]单元(5) MOV SS:[3000H],CL 直接寻址将CL寄存器的内容送[SS*16+3000H]单元(6) SUB [BX][SI],1000H 直接寻址将立即数1000H送[DS*16+BX+SI+50H]单元(7) ADD AX,50H[BX][SI] 相对基址变址寻址将[DS*16+BX+SI+50H]单元的内容送AX寄存器(8) PUSH DS 寄存器寻址将DS寄存器的内容送[SS*16+SP]单元(9) CMP [BP][DI],AL 寄存器寻址将AL寄存器的内容送[SS*16+DI+BP]单元3.3 判断下列指令正误,如果错误请指出原因。
第3章(1)微机原理与接口技术(第三版)(王忠民)
第三章 80x86微处理器
第三章 80x86微处理器
2. 数据总线从8086的16位到80586的64位。数据 总线是计算机中组成各部件间进行数据传送时的公共 通道。其位数(宽度)表示CPU的字长,数据总线位数 越多,数据交换的速度越快。
微机原理与接口技术
——第三章 80x86微处理器
西安邮电大学 计算机学院
范琳
第三章 80x86微处理器
1
80x86 微处理器简介
2
8086 微处理器
3
8086 寄存器
4
8086 引脚功能
5
8086 存储器组织
第三章 80x86微处理器
3.1 80x86微处理器简介
80x86微处理器是美国Intel公司生产的系列微处 理器。从8086开始到目前已进入第五代微处理器: 8086(8088)、80286、80386、80486和80586 (Pentium、Pentium ⅡⅣ)。其主要发展特点是:
近的数据可能很快就会被使用。
所以,层次结构的存储器系统,可以将最近访问 过的内容放入Cache,将近期访问过内容所属的整 个块放入Cache。
第三章 80x86微处理器
80x86CPU在发展过程中,存储器的管理机制也 发生了较大变化。
8086/8088CPU:分段实方式 80286CPU:分段实方式、保护方式(可提供虚 拟存储管理和多任务管理机制)。 8038680586CPU:分段实方式、保护方式、虚 拟8086方式(可同时模拟多个8086处理器工作)。
微机原理 第三章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不同,机器码不同,助记符也不同。
微机原理讲义(第三章)
通用寄存器 AX、BX、CX、DX、 SI、DI、BP、SP
指令是计算机执行某种操作的命令。计算机为了 完成不同的功能而要执行不同的指令。一台计 算机能够识别和执行的全部指令称为该计算机 的指令系统或指令集。 不同的微处理器有不同的指令系统, 80X86/Pentium系列微处理器的指令集是在 8086/8088CPU指令系统上发展起来的。
第3章 80X86/Pentium 指令系统
第3章 80X86/Pentium 指令系统
• 8086/8088指令系统中对段地址有个基本 规定: • 在正常情况下,由寻址方式中有效地址 规定的基地址寄存器来确定段寄存器, 即只要寻址方式中出现BP寄存器作为基 地址,段寄存器一定采用堆栈段SS,其余 的情况都采用数据段DS。
第3章 80X86/Pentium 指令ቤተ መጻሕፍቲ ባይዱ统
第3章 80X86/Pentium 指令系统
关注以下三个方面: • 功能 • FR • 结果
第3章 80X86/Pentium 指令系统
数据传送指令
通用数据传送指令
MOV PUSH POP XCHG XLAT IN OUT
LEA LDS LES
MOV
PUSH POP XCHG XLAF IN OUT
第3章 80X86/Pentium 指令系统
设DS=1200H, BX=05A6H, BP=40A0H, SI=2000H, 位移量disp=1618H • MOV AX , [BP]
SS=5000H, DI=3000H,
EA=40A0H PA=SSx16+EA=50000H+40A0H=540A0H 执行结果: 将堆栈段540A0H和540A1H两单元的内容取出送 至AX。
《微机原理与应用教学资料》第三章(课件).ppt
例:STRING1 DB ‘OK’ STRING2 DW ‘OK’
STRING1 ‘O’
‘K’
STRING2 ‘K’
‘O’
例:STRING2 DW ‘GOOD’;错误
电气学院学习部资料库
17
(2)堆栈、出栈指令 PUSH、POP 格式:PUSH 源
POP 目的 功能:PUSH 将源操作数压到堆栈中,POP将堆栈中数据弹
SS 10 20
SP初值 00 30
电气学院学习部资料库
20
入栈操作
堆栈段 起始地
址
栈顶 栈 底
PUSH AX 12 34 PUSH BX 1A B1 10200H 10202H 10204H 10206H 10208H …… 1022CH 1A B1 1022EH 12 34 10230H 00 11
SP 0000 23CE0
电气学院学习部资料库
22
(3) 交换指令 XCHG 格式:XCHG 目的,源 功能:目的操作数与源操作数互换 影响标志位:无
例:XCHG AL,BL XCHG BX,DX XCHG AL,BX;错误
注意: ❖ ① CS、IP 不能做操作数
例:XCHG CS,AX;错误 XCHG IP,BX;错误
(11065H)→AH 若(11064H)=00H,(11065H)=12H,(AX) =1200H
电气学院学习部资料库
5
一个字在存储体中相邻的两个字节存放,字单元的地址以低 位地址表示,存入时以低位字节在低地址,高位字节在高 地址
②段超越前缀:若段地址为CS、SS、ES,应在指令中指定段超 越前缀
❖ ② 不能直接交换两个存储单元 例:XCHG [1000H],[BX];错误
《微机原理与接口技术》教学课件 第3章
立即寻址
寄存器寻址
直接寻址
寄存器间接寻 址
寄存器相对寻 址
基址加变址寻 址
相对基址加变 址寻址
1 立即寻址
3.1 8086指令系统入门
指令中直接给出指令的操作数(跟在操作码的后面),取出指 令的同时就可以获得操作数,这种寻址方式称为立即寻址,这种操 作数称为立即数。立即寻址方式主要用来给寄存器或存储器赋初值。
此外,在8086指令系统中,操作码的长度一般为1~2个字节,指令的总长度一般为1~6个字节。
3.1 8086指令系统入门
把一条指令中所包含的二进制代码的位数称为 指令字长,它通常是机器字长的一倍、两倍、多倍 或半倍。例如,8086 CPU的字长为16位,故其指 令长度可以是1个字节、1个字或多个字节等。
3.1.2 指令格式
计算机指令通常由操作码和操作数两部分组成,其格式如下: 操作码 [目的操作数][,源操作数]
操作码指出了计算机 所要执行的基本操作
操作数则指明了操作 的对象
指令中操作数的个数由指令的功能决定。在8086指令系统中,根据指令中操作数个数的不同,可以将指 令分为:无操作数指令、单操作数指令和双操作数指令。
内容提要
掌握8086指令的分类和格式。 掌握8086指令中操作数和程序转移地址的寻址方式。 掌握调试程序DEBUG的使用方法。 掌握数据传送类指令的功能及用法。 掌握算术运算与逻辑运算类指令的功能及用法。
4
3.1 8086指令系统入门
3.1.1 指令分类
计算机指令是指计算机所能识别并执行的基本操作命令,这些全部操作命令的集合被称为计算机 的指令系统。
行指令: MOV AX, COUNT[BX] 操作数的物理地址为:(DS)×16+(BX)+COUNT=3000H×16+1000H+2000H=33000H,指令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
即数
它可以是8位数值i8(00H~FFH) 也可以是 16 位数值 i16 ( 0000H ~ FFFFH )
立即数寻址方式常用来给寄存器或存
储单元赋值
第3章
立即数寻址指令
MOV AL,05H ;AL←05H MOV AX,0102H ;AX←0102H
立即寻址
第3章
2 寄存器寻址
操作数存放在 CPU 的内部寄存器中,
表征数据存放的地址
9
第3章
传送指令MOV的格式
演示
MOV dest,src
操作数dest,例如:
;dest←src
MOV指令的功能是将源操作数 src传送至目的
MOV AL,30H
;AL←30H
第3章
8088/8086 指令的操作数寻址方式
•1 立即寻址(P96)
参加操作的数,这种操作数被称为立
指令语句:[标号:]助记符 [操作数] [;注释]
例:LOOP:ADD AX,0001H;AX内容加1
第3章
指令格式:
零操作数指令: 操作码
单操作数指令: 操作码 操作数
双操作数指令: 操作码 操作数,操作数
多操作数指令: 三操作数及以上
8
第3章
三、指令中的操作数
立即数 寄存器 存储器
表征参加操作的数据本身
MOV也并非任意传送
第3章
非法传送种种
示例 两个操作数的类型不一致 例如源操作数是字节,而目的操作 数是字;或相反 两个操作数不能都是存储器 示例 传送指令很灵活,但主存之间的直 接传送却不允许 段寄存器的操作有一些限制 示例 段寄存器属专用寄存器,对他们的 操作能力有限
第3章
指令支持的寻址方式 ——该指令中的操作数
可以采用何种寻址方式
指令对标志的影响 ——该指令执行后是否对
各个标志位有影响,以及如何影响
其他方面——该指令其他需要特别注意的地
方,如指令执行时的约定设置、必须预置的 参数、隐含使用的寄存器等
第3章
汇编语言指令格式
由4部分组成:
标号:指令助记符 目的操作数,源操作数 ;注释
第3章
4. 换码指令XLAT(translate)
XLAT
将BX指定的缓冲区中、AL指定的位移
处的一个字节数据取出赋给AL
XLAT ;al←ds:[bx+al]
例题7
换码指令执行前:
在主存建立一个字节量表格,内含要转换成的目的代码 表格首地址存放于BX,AL存放相对表格首地址的位移量
换码指令执行后:
可以是:
8位寄存器r8: AH、AL、BH、BL、CH、CL、DH、DL 16位寄存器r16: AX、BX、CX、DX、SI、DI、BP、SP 4个段寄存器seg: CS、DS、SS、ES
第3章
寄存器寻址指令
MOV AX,1234H ;AX←1234H MOV BX,AX ;BX←AX
寄存器寻址
CWD ;AX的符号扩展至DX
;如AX的最高有效位是0,则DX=00 ;AX的最高有效位为1,则DX=FFFFH。AX不变
什么是符号扩展
例题3
符号扩展指令常用于获得倍长的数据
例题4
第3章
段寄存器指令
LES r16,mem ;r16←mem, ;ES←mem+2 LES 指令将主存中 mem 指 定 的 字 送 至 r16 , 并 将 mem 的 下 一 字 送 ES寄存器
MOV AX,[DI+06H] ;AX←DS:[DI+06H] MOV AX,[BP+06H] ; AX←SS:[BP+06H]
相对寻址
第3章
基址变址寻址方式
有效地址由基址寄存器(BX或BP)
的内容加上变址寄存器(SI或DI) 的内容构成:
有效地址=BX/BP+SI/DI
段地址对应 BX 基址寄存器默认是
2 堆栈操作指令
堆栈是一个“后进先出
LIFO” (或说“先进后 出 FILO” )的主存区域, 位于堆栈段中;SS段寄 存器记录其段地址 堆栈只有一个出口,即 当前栈顶;用堆栈指针 寄存器SP指定 栈顶是地址较小的一端 (低端),栈底不变
第3章
堆栈的操作
堆栈只有两种基本操作:进栈和
将AL寄存器的内容转换为目标代码
第3章
4 输入输出指令
8086通过输入输出指令与外设进行数据
交换;呈现给程序员的外设是端口 (Port)即I/O地址 8086 用于寻址外设端口的地址线为 16 条,端口最多为 216=65536(64K)个, 端口号为0000H~FFFFH 每个端口用于传送一个字节的外设数据
标号表示该指令在主存中的逻辑地址 每个指令助记符就代表一种指令 目的和源操作数表示参与操作的对象 注释是对该指令或程序段功能的说明
教学提示
全面而准确地理解每条指令 的功能和应用,是编写汇编 语言程序的关键
第3章
3.3.1 数据传送类指令
数据传送是计算机中最基本、最
重要的一种操作 传送指令也是最常使用的一类指 令 传送指令把数据从一个位置传送 到另一个位置 除标志寄存器传送指令外,均不 影响标志位
MOV AX,ES:[2000H] ;AX←ES:[2000H] ;指令代码:26A10020
直接寻址
第3章
寄存器间接寻址方式
有效地址存放在基址寄存器 BX 或
变址寄存器SI、DI中 默认的段地址在 DS 段寄存器,可 使用段超越前缀改变
MOV AX,[SI] ;AX←DS:[SI]
间接寻址
push ax push [2000h]
第3章
出栈指令POP
POP
POP r16/m16/seg ;r16/m16/seg←SS:[SP] ;SP←SP+2
pop ax pop [2000h]
第3章
堆栈的特点
堆栈操作的单位是字,进栈和出栈只对字量
字量数据从栈顶压入和弹出时,都是低地址
字节送低字节,高地址字节送高字节 堆栈操作遵循先进后出原则,但可用存储器 寻址方式随机存取堆栈中的数据 堆栈常用来
4
第3章
一、指令与指令系统
指令: 控制计算机完成某种操作的命令 指令系统: 处理器所能识别的所有指令的集合
指令的兼容性:
同一系列机的指令都是兼容的。
5
第3章
二、指令格式
指令中应包含的信息:
运算数据的来源
运算结果的去向 执行的操作
6
第3章
指令格式
•操作码:规定计算机所要执行的操作;
•操作数:指出在指令执行过程中所需要的数 或操作数所在的地址。 格式:
输出指令OUT
OUT
将CPU内的AL/AX数据传送给外设
OUT i8,AL ;字节输出:I/O端口←AL(i8直接寻址)
OUT DX,AL ;字节输出:I/O端口←AL(DX间接寻址)
OUT i8,AX ;字输出:I/O端口←AX(i8直接寻址) OUT DX,AX ;字输出:I/O端口←AX(DX间接寻址)
例题1
例题2 ;立即数送寄存器或主存 MOV reg/mem/seg,reg
例题3 MOV;寄存器送(段)寄存器或主存 reg/seg,mem
例题4 ;主存送(段)寄存器 MOV reg/mem,seg
;段寄存器送寄存器或主存
第3章
MOV指令传送功能
立即数 存 储 器 通用寄存器 AX BX CX DX BP SP SI DI 段寄存器 CS DS ES SS
第3章
8086指令系统概述
Intel 8086 指令系统共有 117 条基
本指令,可分成6个功能组
① ② ③ ④ ⑤ ⑥ 数据传送类指令 算术运算类指令 位操作类指令 串操作类指令 控制转移类指令 处理机控制类指令
第3章
学习指令的注意事项
指令的功能——该指令能够实现何种操作。
通常指令助记符就是指令功能的英文单词或 其缩写形式
第3章
第3章
指令系统
1
第3章
主要内容:
指令系统的一般概念 对操作数的寻址方式 六大类指令的操作原理:
操作码的含义
指令对操作数的要求
指令执行的结果
2
第3章
§3.1
概述
3
第3章
了解:
指令及指令系统;
指令的格式;
指令中的操作数类型;
指令字长与机器字长;
指令的执行时间
P
PUSH ;进栈指令先使 堆栈指针SP减2, 然后把一个字操 作数存入堆栈顶 部 POP ;出栈指令把栈顶 的一个字传送至指 定的目的操作数, 然后堆栈指针SP加2
第3章
进栈指令PUSH
PUSH
PUSH r16/m16/seg ;SP←SP-2 ;SS:[SP]←r16/m16/seg
第3章
3.3.1.1 通用数据传送指令
提供方便灵活的通用传送操作 有12条指令
MOV XCHG
PUSH,POP
IN,OUT XLAT LEA,LDS,LES PUSHF,POPF
第3章
1. 传送指令MOV(move)
MOV
把一个字节或字的操作数从源地址传
送至目的地址
MOV reg/mem,imm
第3章
输入输出寻址方式
8086 的端口有 64K 个,无需分段,
设计有两种寻址方式
直接寻址:只用于寻址 00H ~ FFH 前 256个端口,操作数i8表示端口号 间接寻址:可用于寻址全部 64K 个端 口,DX寄存器的值就是端口号