
2019/9/11 微机技术与仪器系统设计 计算机通过执行指令来完成用户的特定任 务,要使计算机完成一个完整的任务,就 需要执行一组指令,这一组指令通常也称 第二章 撒型计算机指令系统 为程序。 计算机能够执行的各种指令类型的全体称 为该处理器的指令系统。 概念 指令的基本构成 指令 控制计算机亮成指定操作的命令 目的 源 机器指令 指令的二进制代码形式。例如:CD21H 汇编指令 助记符形式的指令。例如:NT21H 操作码 [操作数],[操作数] 指令系统 CPU所有指冷及其使用规则的集合 0 ·汇铺语言寝序写入计算机后,必须由汇铺程序将其咖评成 说明计算机要执行哪种操作, ·是指个执行的参与者,即种 由机器指◆(指个码》触成的机器语言准序,才能由计算 加传道、近算、衫位、酰转 操作的对象。 机议别执行。 它是湘今中不可 有业湘个不需要操作数,通常 少的忽成部分。 的指个都有一个或两个绿作数, 也有个别指令有3个甚至4个操 作
2019/9/11 1 微机技术与仪器系统设计 第二章 微型计算机指令系统 • 计算机通过执行指令来完成用户的特定任 务,要使计算机完成一个完整的任务,就 需要执行一组指令,这一组指令通常也称 为程序。 • 计算机能够执行的各种指令类型的全体称 为该处理器的指令系统。 概念 指令——控制计算机完成指定操作的命令 机器指令——指令的二进制代码形式。例如:CD21H 汇编指令——助记符形式的指令。例如:INT 21H 指令系统——CPU所有指令及其使用规则的集合 • 汇编语言程序写入计算机后,必须由汇编程序将其翻译成 由机器指令(指令码)组成的机器语言程序,才能由计算 机识别执行。 指令的基本构成 说明计算机要执行哪种操作, 如传送、运算、移位、跳转 等操作,它是指令中不可缺 少的组成部分。 •是指令执行的参与者,即各种 操作的对象。 •有些指令不需要操作数,通常 的指令都有一个或两个操作数, 也有个别指令有3个甚至4个操 作数。 目的 源 1 2 3 4

2019/9/11 寻址方式 ·每种指令的操作码: ·指令系统设计了多种操作数的来源; ·用一个唯一的助记符表示(指令功能的英文缩写), 寻找操作数的过程就是操作数的寻址: ·对应着机器指令的一个二进制编码。 指令中的绿作数 寻找操作数的方式叫做(操作数)寻址方式 可以是一个具体的数值, 理解操作数的寻址方式是理解指令功能的前提 可以是存放数据的寄存器, 操作数采取哪一种寻址方式,会形响机器运行的 ·或指明数据在主存位置的存储器地址。 速度和效率。如何寻址一个操作数对程序的设计 来讲也很重要。 操作数在何处? 纳存 存储器操作数MOV AX,1000间 -直接包含在指令中 存储器寻址 立即数 MOV AX,0 立即数寻址 操作最在内存数排区,排作最字度包舍着此绿作敏地址。 在8086中,任何内待地址是由两部分血成: -包含在某个寄存暑中 段的地址: 无所在段的基地址 寄存器操作数 MOV AX,BX (大部分情况是数据段膏存器DS中); 寄存器寻址 叠内偏碧量:此单元与段基地址的矩高。 有藏地址EA(B乐Add): 段内偏形量为道应各升数据些构的需要,可以有几 成,所以也它称为有地址BA。 2
2019/9/11 2 • 每种指令的操作码: • 用一个唯一的助记符表示(指令功能的英文缩写), • 对应着机器指令的一个二进制编码。 • 指令中的操作数: • 可以是一个具体的数值, • 可以是存放数据的寄存器, • 或指明数据在主存位置的存储器地址。 寻址方式 • 指令系统设计了多种操作数的来源; • 寻找操作数的过程就是操作数的寻址; • 寻找操作数的方式叫做(操作数)寻址方式 • 理解操作数的寻址方式是理解指令功能的前提 • 操作数采取哪一种寻址方式,会影响机器运行的 速度和效率。如何寻址一个操作数对程序的设计 来讲也很重要。 操作数在何处? – 直接包含在指令中 立即数 MOV AX,0 立即数寻址 – 包含在某个寄存器中 寄存器操作数 MOV AX,BX 寄存器寻址 •在内存中 存储器操作数 MOV AX,[1000H] 存储器寻址 操作数在内存数据区,操作数字段包含着此操作数地址。 在8086中,任何内存地址是由两部分组成: 段的基地址:单元所在段的基地址 (大部分情况是数据段寄存器DS中); 段内偏移量:此单元与段基地址的距离。 有效地址EA(Effective Address) : 段内偏移量为适应各种数据结构的需要,可以有几个部分组 成,所以也把它称为有效地址EA。 5 6 7 8

2019/9/11 米-、 8086、8088寻址方式 的立即好县 (Immediate addresaing) 在外设中 (二)青存器寻址方式 Register addresaing 1/o操作数 IN AL,12H (三)直接得址 (Direct addre8ing) 1/0寻址 (四)青卉号间楼手址方式(Regserindiectaddeing) (五)寄存号桶时号址方式(Register rel山ative addressing) (六)基址寻址方式(Based indered addressing) (七)盖址加变址哥址方式(Re山ivebaed indered 作)立即寻t址(mmediate addressing) MOV AL,05H 作 操作数直接存放在霜令中,紧在操作马之后,作为指令 指令执行后:(AL)=05H 的一部分,存放在代码段里,这种操作戴赫为立即戴。 立即教可以是8位或16位的。 16位的立即数是高位字节放在高地址,低位字节放在低地址。 例: MOV AX.3064H 指令执行后:(AX)=3064 操作两 使用桶合:经常用于给青存露成存储单元航初值。 代康 注喜:凡能用子源操作数字及,不能用于目的操作数字及。 源操作数与用的操作字长频一致, 立即寻址方
2019/9/11 3 •在外设中 I/O操作数 IN AL,12H I/O寻址 一、8086、8088寻址方式 (一)立即寻址 (Immediate addressing) (二)寄存器寻址方式 (Register addressing) (三)直接寻址 (Direct addressing) (四)寄存器间接寻址方式(Register indirect addressing) (五)寄存器相对寻址方式(Register relative addressing) 或变址寻址(Index Addressing) (六)基址寻址方式(Based indexed addressing) (七)基址加变址寻址方式(Relative based indexed addressing) (一)立即寻址(Immediate addressing) 操作数直接存放在指令中,紧跟在操作码之后,作为指令 的一部分,存放在代码段里,这种操作数称为立即数。 立即数可以是8位或16位的。 16位的立即数是高位字节放在高地址,低位字节放在低地址。 使用场合:经常用于给寄存器或存储单元赋初值。 注意:只能用于源操作数字段,不能用于目的操作数字段。 源操作数与目的操作数字长须一致。 例: MOV AL,05H 指令执行后: (AL)=05H 例: MOV AX,3064H 指令执行后: (AX)=3064H 立即寻址方式 . 操作码 64H 30H 代 码 段 64H . 30H AH AL 指 令 . 操作码 05H 代 码 段 05H . AL 指 令 9 10 11 12

2019/9/11 章(二、寄#悬每址方式(Register addressing) 操作数在寄存器中,潮◆棉定寄存器青。 对于16位操作数,普存器可以是 ·MOV AX,BX MOV AX,BL; AX,BX,CX,DX,SI,DI,SP,BP. MOV AL,BH 以及投青存器。 MOV AX,3064H 对于8位操作数,寄存喜可以是 AL,AH,BL,BH,CL,CE,DL,DE. 注:cs代码段寄存器不能当做目标操作数 站种寻址方式固为禄作戴在寄存厚中 不能使用MOV推令直按赋值 源操作数与目的操作数字长要相同 不需要访同存储喜的运算地度较高。 膏存器寻址与度地址无关 13 14 例: ,(三)直接寻址(Direct addressing) 指令执行前:(AX)=3064H (SS)-1234H 绿作数地址的16位偏夢量,直接包含在牌令中, MOV SS,AX 存放在代码薇中相◆操作码之后, ·[2000H] 指令执行后 但操作数一表存放在数据段中, (SS)=3064H 必须先求出操作数的物理地址, (AX)保持不变 指令执行前: 1234 格后再诗问存情器才能取得操作数 物理地址:PA=16d×(DS+EA 指令执行后: 3064组 3064 寄存器寻址方式 或(10H) 15 16 4
2019/9/11 4 操作数在寄存器中,指令指定寄存器号。 对于16位操作数,寄存器可以是: AX,BX,CX,DX,SI,DI,SP,BP。 以及段寄存器。 对于8位操作数,寄存器可以是: AL,AH,BL,BH,CL,CH,DL,DH。 这种寻址方式因为操作数在寄存器中 不需要访问存储器的运算速度较高。 (二)、 寄存器寻址方式 (Register addressing) • MOV AX, BX • MOV AL, BH • MOV AX, 3064H •MOV AX, BL ; • 注:cs代码段寄存器不能当做目标操作数 • 不能使用MOV指令直接赋值 • 源操作数与目的操作数字长要相同 • 寄存器寻址与段地址无关 例: 指令执行前:(AX)=3064H (SS)=1234H MOV SS,AX 指令执行后: (SS)=3064H (AX)保持不变。 指令执行前: 指令执行后: 寄存器寻址方式 SS AX 3064H 3064H 1234H 3064H 操作数地址的16位偏移量,直接包含在指令中, 存放在代码段中指令操作码之后, 但操作数一般存放在数据段中, 必须先求出操作数的物理地址, 然后再访问存储器才能取得操作数。 物理地址 : PA=16d×(DS)+EA 或(10H) • (三)直接寻址(Direct addressing) 13 14 15 16

2019/9/11 例:MOV AX,3100可 (DS)=6000H,(63100H=3050H 注意: (1)直接平址方武造用于处理单个变量。 则:(AX)=3050H (②)直址方式隐含的段专存是D8 又如:用符号地址代替数值地址, 6000g 8086/8088光许段奇地甲光许使用C3888作为段寄存善, 这时,必须在霜◆中转别拆明。如:MOV AX,ES:2000田 MOV AX,VALUE 60000 00 3100 代康 (3)应用符号地址代普数值地址时,应注意变量奏型。 或MOVAX,VALUE 3 VALUE DB 10 变量的属性 VALUE一有效操作数单元的 8100 MOV AH,VALUE 符号地址。 ·1MOVA区VALUE× MOVA区WORD PTR VALUR√ 如:VALUE在附加段中, 308 ·(4)BMPC机中规定双操作数指个必频有一个操作数使用寄 则应指定段跨越, 存馨方式。 MOVAX,ES:VALUE 5 要处理莱存放在存暗器里的变量,可以用直楼导址方式北变量 或MOVAX,ES:[VALUE到 直接 个等存中再作处理。 17 ·(四膏存赛间接寻址方式 (Register indirect addressing) 希数在存储器中 操作数地址的16位偏移量包含在:BP、BX、SL、DI寄存器中。 只有SI、DI、BX和BP可作间址寄存暑 ·注 ·若选择S1、D1、BX作为间楼导址 例:MOV AX,B为 (BX) 操作敢一般在现行数据段区域中,用DS作为段 MOV CL,CS:[DI] (BP) 地址 EA= (S) 若选海BP膏存器作为间接寻址 幢误例, X MOV AX,[DX] (DI) 操作薰在堆找段区域中,用$寄存器的内容作为 段地址 X MOV CL,[A刈 19 20 5
2019/9/11 5 例:MOV AX,[3100H] (DS)=6000H , (63100H)=3050H 则:(AX)=3050H 又如:用符号地址代替数值地址。 MOV AX,VALUE 或 MOV AX,[VALUE] VALUE——有效操作数单元的 符号地址。 如:VALUE在附加段中, 则应指定段跨越。 MOV AX,ES:VALUE 或MOV AX,ES:[VALUE] 直接寻址方式 6000H . 操作码 00 31 . 50H 30H . 6 0 0 0 0 + 3 1 0 0 6 3 1 0 0 63100H 30H 50H AH AL 代 码 段 数 据 段 DS 注意: (1)直接寻址方式适用于处理单个变量。 (2)直接寻址方式隐含的段寄存器是 DS, 8086/8088允许段跨越,即允许使用 CS SS ES作为段寄存器, 这时,必须在指令中特别标明。如:MOV AX, ES: [2000H] (3)应用符号地址代替数值地址时,应注意变量类型。 VALUE DB 10 变量的属性 •MOV AH, VALUE • MOV AX, VALUE •MOV AX, WORD PTR VALUE •(4) IBM PC机中规定双操作数指令必须有一个操作数使用寄 存器方式。 要处理某存放在存储器里的变量,可以用直接寻址方式把变量 先取到一个寄存器中再作处理。 操作数在存储器中, 操作数地址的16位偏移量包含在:BP、BX、SI、DI寄存器中。 • 只有SI、DI、BX和BP可作间址寄存器 • • 例: MOV AX, [BX] • MOV CL, CS:[DI] • 错误例 : • × MOV AX, [DX] • × MOV CL, [AX] • (四) 寄存器间接寻址方式 (Register indirect addressing) EA = (BX) (BP) (SI) (DI) • 注: • 若选择SI、DI、BX作为间接寻址 • 操作数一般在现行数据段区域中,用(DS)作为段 地址 • 若选择BP寄存器作为间接寻址 • 操作数在堆栈段区域中,用SS寄存器的内容作为 段地址 17 18 19 20

2019/9/11 到MOV IBPI,Ax 80000 执行前:(SS=1000H, 2000 (BP=3000H 例:MOV BX,DI 62000 (AXN=1234H 10000 (DS)=6000H A组 +000 60 执行后:PA=13000H 1000 (D0)=2000H (13000=1234H PA=62000H (62000H)-=50A0H (BX)=50A0H 存端问接导址方过 BX,[DI] 22 赛存酵相对寻址方式(Register relative addressing) 或基、变址寻址(Index Addressing). 地址对应BXS/DI寄存需默认是DS,对应BP膏存馨默 认是S$:可用段相越前服改变。 操作数的有效地址是一个基址或变址寄存器的内容和指令中指定 的8位或16位位移量(displacement)之和。 80 8位位整量 PA=16d x (DS)+ (SI) (DI) 16位位卷量 8位位移量 (EP) 队 8位位移量 (sI) 16位位移量 PA=16d x (SS)+(BP) L16位位移量 DI) 23 24 6
2019/9/11 6 例:MOV BX,[DI] (DS)=6000H (DI)=2000H PA=62000H (62000H)=50A0H (BX)=50A0H 寄存器间接寻址方式 MOV BX,[DI] 6000H 2000H DS DI 6 0 0 0 0 + 2 0 0 0 6 2 0 0 0 . AOH 50H . 62000H 50H A0H BH BL 数 据 段 例: MOV [BP], AX 执行前: (SS)=1000H , (BP)=3000H , (AX)=1234H 执行后:PA=13000H (13000H)=1234H 1000H 3000H SS BP 1 0 0 0 0 + 3 0 0 0 1 3 0 0 0 . 34H 12H . 13000H 12H 34H AH AL 堆 栈 段 寄存器间接寻址方式 MOV [BP], AX 操作数的有效地址是一个基址或变址寄存器的内容和指令中指定 的8位或16位位移量(displacement)之和。 EA = (BX) (SI) (DI) + 8位位移量 16位位移量 (BP) (五) 寄存器相对寻址方式(Register relative addressing) 或基、变址寻址 (Index Addressing) PA=16d ×(DS)+ (BX) (SI) (DI) + 8位位移量 16位位移量 PA=16d ×(SS)+ (BP) + 8位位移量 16位位移量 • 段地址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默 认是SS;可用段超越前缀改变。 21 22 23 24

2019/9/11 例: MOV AX,COUNT BPI 用途:这种寻址方式也用于表格处理。 或MOV AX,ICOUNT+BP ] 表格首地址COUNT 或MOV AX,COUNT+HBPI 修改基址或变址寄存器来取得表格中的值, COUNT为16位位移量. 代得表 例:某数据表的首地址为COUNT 28 指令执行前:(S9=5000H 欲读取表中第10个数据,存放到(4L)中。 (BP)=3000H. 000 第10个数据的有效地址:EA=COUNT+9 COUNT-2040H 4 (AX=1234H MOV SI,09H MOV AL,[SH+COUNT] 指令执行后:EA=5040H PA=55040H 直接变址寻址方式也可以使用段跨越前掇 (55040H=5548 寄存器相对寻址方式 MOV AX.COUNTIBPI MOV DL,ES:STRING[SI] (AX=5548H 25 26 (六)基址加变址寻址方式 (Based indexed addressing) 参有段跨越前缀之外,形成物理地址有二种方式: 作数的有效地址是 个基址寄存器 个变址寄存器的 内容之和,基址寄存器名和变址寄存器名均有指令指定。 (SI) PA=16dx(DS)+(BX) (SI) (DI) EA=(BX) (DI) (SI) (SI) PA=16dX(SS)+(BP) EA=(BP) (DH (DI) 27
2019/9/11 7 例: MOV AX, COUNT [BP] 或MOV AX, [COUNT+BP] 或MOV AX, COUNT+[BP] COUNT为16位位移量。 指令执行前: (SS)=5000H, (BP)=3000H, COUNT=2040H, (AX)=1234H 指令执行后:EA=5040H PA=55040H (55040H)=5548H (AX)=5548H 寄存器相对寻址方式 MOV AX,COUNT[BP] OP OP 40H 20H . . 48H 55H . 55H 48H 存储器 操 作 码 位移量 COUNT 代 码 段 堆 栈 段 55040H 50000H AH AL 用途:这种寻址方式也用于表格处理。 表格首地址COUNT 修改基址或变址寄存器来取得表格中的值。 例:某数据表的首地址为COUNT 欲读取表中第10个数据,存放到(AL)中。 第10个数据的有效地址: EA= COUNT + 9 MOV SI , 09H MOV AL , [SI+COUNT] * 直接变址寻址方式也可以使用段跨越前缀 MOV DL,ES:STRING[SI] 操作数的有效地址是一个基址寄存器和一个变址寄存器的 内容之和,基址寄存器名和变址寄存器名均有指令指定。 ( B P ) + ( D I ) ( S I ) E A = ( B X ) + ( D I ) ( S I ) E A = (六) 基址加变址寻址方式 (Based indexed addressing) 除有段跨越前缀之外,形成物理地址有二种方式: P A = 1 6 d× ( D S ) + ( B X ) + ( D I ) ( S I ) PA=16d× (SS)+ (BP) + (DI) (SI) 25 26 27 28

2019/9/11 MOV AX.IBXJISI 存神最 或MOV AX,IB+SI 都浦:这种址方式样用于数或表格处理。 执行指令前: 2000 (DS)=3200H 表格首地址盖址寄存露中, (BX)=045 费费 用变址等存居来齿问数血中的元素。 (S=1094H 烟 二个号存器部能修戒, 所以比直接变址方式更更, 执行指令后: EA=14EAH 这种寻址方式允许段跨越 其th蛮h计叶方式 PA=334EAH 使用段跨越前缀格式: (AX)=4567H MOVAX,ES:[BX]ISI] 29 30 (七)相对基址加变址寻址方式 (Relative based indexed addressing) 除有段跨越前凝之外,形成物理地址有二种方式: 操作数有效地址是一个基址寄存器和一个变址寄存器的内容 (SI) 8位位移量 和8位或16位位移量之和。 PA=16dX (DS)+(B)+ 8位位移量 (DI) 16位位移量 (SI) 16位位移量 8位位移量 PA=16dx (SS)+(BP)+ (SI) 8位位移量 16位位移量 EA=(BP) (Dr) 16位位移量 3 8
2019/9/11 8 例: MOV AX, [BX][SI] 或 MOV AX, [BX+SI] 执行指令前: (DS)=3200H, (BX)=0456H, (SI) =1094H (334EAH)=4567H 基址加变址寻址方式 MOV AX,[BX+SI] . . . 67H 45H 存储器 32000H 45H 67H 334EAH AH AL 数 据 段 . 执行指令后: EA=14EAH PA=334EAH (AX)=4567H 用途:这种寻址方式同样适用于数组或表格处理。 表格首地址 基址寄存器中, 用变址寄存器来访问数组中的元素。 二个寄存器都能修改, 所以比直接变址方式更灵。 这种寻址方式允许段跨越。 使用段跨越前缀格式: MOV AX,ES:[BX][SI] 操作数有效地址是一个基址寄存器和一个变址寄存器的内容 和8位或16位位移量之和 。 (BP) + (DI) (SI) + 8位位移量 16位位移量 EA= (BX) + (DI) (SI) + 8位位移量 16位位移量 EA= (七)相对基址加变址寻址方式 (Relative based indexed addressing) 除有段跨越前缀之外,形成物理地址有二种方式: (DI) PA=16d×(SS)+ (BP) + (SI) + 8位位移量 16位位移量 (DI) PA=16d×(DS)+ (BX) + (SI) + 8位位移量 16位位移量 29 30 31 32

2019/9/11 ,例: MOV AX,MASKIBX]IDI] 情语 MOV AX,MASK BX+DI 着MOV AX.IMASY+BX+DI 代药款 执行指令前: 美作有销主版 用途 (DS=3000H 这种寻址方式为堆栈处理提供方便: (BX-346 (D0-0500H 000 (BP)→栈顶(一般BP可指向栈顶) MASK=1234H 从栈顶到数组的首地址可以用位移量表示MASK). (32A7AH=4050H 变址寄存器(S)或(D)一指向数组中某个元素, ·执行代后: ·EA-2A7AH ·PA三32A7AH 相时基址加变 ·(AX)=4050H MOV AX.MASK 33 指令学习的注意事项 二.8086的指令系统 令的功能一该指令能够实现何种操作。通常指 数据传送类指令 令助记符就是指令功能的英文单词或其缩写形式。 指令支持的寻址方式一该指令中的操作数可以采 算术运算类指令 用何种寻址方式。 逻辑运算与移位指令 指令对标志的影响一该指令执行后是否对各个标 串操作指令 志位有影响,以及如何影响。 ·其他方面一该指令其他需要特别注意的地方,如 控制转移类指令 指令执行时的的定设置、必须预置的参数、隐含使 处理器控制类指令 用的寄存器等。 9
2019/9/11 9 • 执行指令后: • EA=2A7AH • PA=32A7AH • (AX)=4050H 例: MOV AX, MASK[BX][DI] MOV AX, MASK [BX+DI] MOV AX,[MASX+BX+DI] 执行指令前: (DS)=3000H (BX)=1346H (DI)=0500H MASK=1234H (32A7AH)=4050H 相对基址加变址 MOV AX, MASK+[BX+DI] OP OP 34H 12H . . 50H 40H 存储器 30000H 40H 50H 32A7AH AH AL 数 据 段 操 作 码 位移 量 MASK 代 码 段 用途: 这种寻址方式为堆栈处理提供方便: (BP) 栈顶(一般 BP 可指向栈顶) 从栈顶到数组的首地址可以用位移量表示(MASK). 变址寄存器(SI)或(DI)——指向数组中某个元素。 二. 8086的指令系统 数据传送类指令 算术运算类指令 逻辑运算与移位指令 串操作指令 控制转移类指令 处理器控制类指令 指令学习的注意事项 • 指令的功能——该指令能够实现何种操作。通常指 令助记符就是指令功能的英文单词或其缩写形式。 • 指令支持的寻址方式——该指令中的操作数可以采 用何种寻址方式。 • 指令对标志的影响——该指令执行后是否对各个标 志位有影响,以及如何影响。 • 其他方面——该指令其他需要特别注意的地方,如 指令执行时的约定设置、必须预置的参数、隐含使 用的寄存器等。 33 34 35 36

2019/9/11 数据传送类指令 道用数据传送类指令 一、通用数据传送类指令 1. MOV传送指今 二、输入输出数据传送指令IN/OUT 2. 堆栈操作指令PS/POP 三、地址传送指令 3. 交换指令XCH0 四、标志位传送指令 4. 查表转换指令ⅪAI(或称换码指今) 37 38 .一般传送指令MOV 。注意:立即最和段寄存毒CS不能作为目标操作教 一般传送指令具有数据复制的性质,即数 立即数不能直接传必到段寄存器: 据从源地址传送到目的地址,而源地址中的内容 两个存情单元之间不能直按传送数据 保持不变。 两个段膏存暴之间不能直按传送数据。 ·根据激据传送的源和目的的不同,又可分为: ()主存单元之间的传送。 段寄存器□ (2)从主存单元传送到寄存器。 DS,ES,SS,(CS) 通用寄存器 (3)从寄存器传送到主存单元。 立即数 AX,BX,X,DX (④寄存器之间的传送。 BP SPSI.DI 存储器 MOV指令允许传送兼据的地径 39 40 10
2019/9/11 10 数据传送类指令 一、通用数据传送类指令 二、输入输出数据传送指令IN/OUT 三、地址传送指令 四、标志位传送指令 一、通用数据传送类指令 1. MOV传送指令 2. 堆栈操作指令PUSH/POP 3. 交换指令XCHG 4. 查表转换指令XLAT(或称换码指令) • 1.一般传送指令MOV • 一般传送指令具有数据复制的性质,即数 据从源地址传送到目的地址,而源地址中的内容 保持不变。 • 根据数据传送的源和目的的不同,又可分为: • ⑴ 主存单元之间的传送。 • ⑵ 从主存单元传送到寄存器。 • ⑶ 从寄存器传送到主存单元。 • ⑷ 寄存器之间的传送。 注意:立即数和段寄存器CS不能作为目标操作数; 立即数不能直接传送到段寄存器; 两个存储单元之间不能直接传送数据; 两个段寄存器之间不能直接传送数据。 通用寄存器 AX,BX,CX,DX BP,SP,SI,DI 段寄存器 DS,ES,SS,(CS) 存储器 立即数 MOV指令允许传送数据的途径 37 38 39 40