3)微型计算机的指令系统课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《3)微型计算机的指令系统课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 指令系统 课件
- 资源描述:
-
1、 第三章第三章 微型计算机的指令系统微型计算机的指令系统 指令的构成和操作数的类型指令的构成和操作数的类型 一、指令构成一、指令构成 一条指令由操怍码字段和操作数字段构成。一条指令由操怍码字段和操作数字段构成。1 1、操作码字段、操作码字段 操作码字段表明指令执行何种性质的操作。操作码字段表明指令执行何种性质的操作。2 2、操作数字段、操作数字段 操作数字段是指明指令执行的操作所需要的操作数操作数字段是指明指令执行的操作所需要的操作数.该字段中,可以是操作数本身或是操作数地址。该字段中,可以是操作数本身或是操作数地址。 二、操作数类型二、操作数类型 操作数有以下三种类型:立即数操作数、寄存器操
2、操作数有以下三种类型:立即数操作数、寄存器操 作数和存储器操作数。作数和存储器操作数。1 1、立即数操作数、立即数操作数 立即数只能作为源操作数,而不能作为目标操作立即数只能作为源操作数,而不能作为目标操作数。立即数可以是数。立即数可以是8 8位和位和1616位带符号数或者无符号位带符号数或者无符号数,并只能是整数,不能是小数。数,并只能是整数,不能是小数。2 2、寄存器操作数、寄存器操作数 寄存器操作数可以存放于寄存器操作数可以存放于CPUCPU内部寄存器中,即通内部寄存器中,即通用寄存器、地址指针寄存器、变址寄存器、段寄存用寄存器、地址指针寄存器、变址寄存器、段寄存器。所有的通用寄存器和地
3、址指针寄存器既可以用器。所有的通用寄存器和地址指针寄存器既可以用作源操作数,又可以用作目标操作数。作源操作数,又可以用作目标操作数。3 3、存储器操作数、存储器操作数 存储器操作数的数据可能是存储器操作数的数据可能是8 8位、位、1616位和位和3232位的二进位的二进制数。在指令中,存储器操作数可以分别作为源操制数。在指令中,存储器操作数可以分别作为源操作数和目标操作数,但是不允许二者同时都为存储作数和目标操作数,但是不允许二者同时都为存储器操作数。器操作数。 2 2 8086 8086的寻址方式的寻址方式 一、立即寻址一、立即寻址 操作数包含在指令中操作数包含在指令中,此操作数又称为立即数
4、,此操作数又称为立即数,(立立 即数只能作源操作数即数只能作源操作数)立即数可为立即数可为8 8位,也可为位,也可为1616 位,它用来给寄存器存贮器赋初值。位,它用来给寄存器存贮器赋初值。二、寄存器寻址二、寄存器寻址 操作数在某一寄存器中。一条指令中,可以对源操作数在某一寄存器中。一条指令中,可以对源 操作数采用寄存器寻址,也可对目的操作数采用操作数采用寄存器寻址,也可对目的操作数采用 寄存器寻址,还可两者都用寄存器寻址。寄存器寻址,还可两者都用寄存器寻址。寄存器可为:寄存器可为:AX,BX,CX,DX,SI,DI,SP,BPAX,BX,CX,DX,SI,DI,SP,BP AH,AL,BH,
5、BL,CH,CL,DH,DL AH,AL,BH,BL,CH,CL,DH,DL。 三、直接寻址三、直接寻址 操作数的地址包含在指令中。操作数的地址包含在指令中。(注意:此地址为注意:此地址为1616位偏移地址位偏移地址)通常操作数一般在数据段区域中,如果要对其他段通常操作数一般在数据段区域中,如果要对其他段 寄存器所指出的存贮区进行寻址寄存器所指出的存贮区进行寻址(所谓段超越),所谓段超越),则在本条指令中,须用前缀指出段寄存器名。则在本条指令中,须用前缀指出段寄存器名。 四、寄存器间接寻址四、寄存器间接寻址 操作数的地址在某寄存器中,操作数的地址在某寄存器中,这些寄存器可以为:这些寄存器可以为
6、:BX,BP,SI,DIBX,BP,SI,DI之一。之一。有效地址:有效地址:EA=BXEA=BX或或BPBP或或SISI或或DIDI 注:如果指令前没有用前缀指明具体的段寄存器,注:如果指令前没有用前缀指明具体的段寄存器,则则 寻址时默认为寻址时默认为DS/SSDS/SS。采用寄存器间址允许在指令中指定一个位移量采用寄存器间址允许在指令中指定一个位移量(8(8位位 或或1616位位)。其有效地址。其有效地址EAEA为寄存器内容加上此位移为寄存器内容加上此位移 量。量。(称寄存器相对寻址称寄存器相对寻址)有效地址:有效地址:EA=EA=(BXBX或或BPBP或或SISI或或DI DI)位移量)
7、位移量(带符号数带符号数) 、数据段基址寻址、数据段基址寻址 用用BXBX寄存器进行间接寻址寄存器进行间接寻址 。、堆栈段基址寻址、堆栈段基址寻址 用用BPBP寄存器进行间接寻址。寄存器进行间接寻址。、变址寻址、变址寻址 用用SI,DISI,DI寄存器进行间接寻址。寄存器进行间接寻址。、基址加变址寻址、基址加变址寻址 用用BXBX、BPBP和和SISI、DIDI寄存器组合起来进行间接寻址。寄存器组合起来进行间接寻址。有效地址有效地址EA=EA=(BXBX或或BPBP)()(SISI或或DIDI)注:只要用上注:只要用上BPBP寄存器,那么默认的段寄存器就是寄存器,那么默认的段寄存器就是SS,S
8、S,在其他情况,则为在其他情况,则为DSDS。否则应用前缀指出相应段。否则应用前缀指出相应段 寄存器名。寄存器名。 附:几种常见的书写形式附:几种常见的书写形式 MOV AX,VALUE MOV AX,VALUE MOV AX,VALUE MOV AX,VALUE (VALUE (VALUE为符号地址为符号地址)MOV AX,ES:VALUE MOV AX,ES:VALUE MOV AX,ES:VALUE MOV AX,ES:VALUE MOV AX,COUNTSI MOV AX,COUNT+SI MOV AX,COUNTSI MOV AX,COUNT+SI (COUNT (COUNT为位移量
9、的符号地址为位移量的符号地址)MOV AX,BXDI MOV AX,BX+DI MOV AX,BXDI MOV AX,BX+DI MOV AX,MASKBXSI MOV AX,MASKBX+SI MOV AX,MASKBXSI MOV AX,MASKBX+SI MOV AX,MASK+BX+SI MOV AX,MASK+BX+SI、例、例1 1:DS=2000H,ES=2100H,SS=1500H,DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H SI=00A0H,BX=0100H,BP=0010H,VAL=0050HVAL=0050H
10、,请指出下列的源操作数字段请指出下列的源操作数字段是什么寻址方式?是什么寻址方式?它的物理地址是多少?它的物理地址是多少?、MOV AX,OABH MOV AX,OABH B B、MOV AX,BX MOV AX,BX 、MOV AX,VAL+100H MOV AX,VAL+100H D D、MOV AX,BX MOV AX,BX E E、MOV AX,ES:BX MOV AX,ES:BX F F、MOV AX,BP MOV AX,BP G G、MOV AX,SI MOV AX,SI H H、MOV AX,VAL+BX+SI MOV AX,VAL+BX+SI 例:根据以下要求写出相应的汇编语言
11、指令例:根据以下要求写出相应的汇编语言指令 、把数、把数OB5HOB5H与与(AL)(AL)相加,结果送回相加,结果送回ALAL中。中。、把、把BXBX和和DXDX内容相加,结果存入内容相加,结果存入DXDX中。中。、用位移量、用位移量0524H0524H的直接寻址方式把存贮器中一个字的直接寻址方式把存贮器中一个字 与数与数2A592A59相加相加,结果送回存贮单元中。结果送回存贮单元中。、用、用BXBX和和SISI的基址变址寻址方式的基址变址寻址方式,把存贮器中一个字把存贮器中一个字 节与节与AL AL 内容相加内容相加,结果存入结果存入ALAL中。中。、用、用BXBX和位移量和位移量OB2
12、H OB2H 的寄存器相对寻址方式把存贮的寄存器相对寻址方式把存贮 器中一个字和器中一个字和CXCX相加,结果存入内存单元中。相加,结果存入内存单元中。 8086/8088CPU 8086/8088CPU 指令系统指令系统 一、数据传送指令一、数据传送指令 、通用数据传送指令、通用数据传送指令 MOV MOV传送指令传送指令 格式:格式:MOV DST,SRC MOV DST,SRC DSTDST:目的操作:目的操作 操作操作:DST SRC SRCDST SRC SRC:源操:源操 、立即数到寄存器存贮器、立即数到寄存器存贮器 regreg,data,data 注:不包括段寄注:不包括段寄
13、memmem,data ,data B B、从寄存器到寄存器、从寄存器到寄存器 reg,regreg,reg 从存贮器到寄存器从存贮器到寄存器 mem,regmem,reg 从寄存器到存贮器从寄存器到存贮器 reg,memreg,mem 注:不包括段寄注:不包括段寄 、从存贮器寄存器到段寄存器、从存贮器寄存器到段寄存器 (mem/reg,segreg(mem/reg,segreg)注注:不能往不能往CSCS中传送数据中传送数据.、从段寄存器到存贮器寄存器、从段寄存器到存贮器寄存器 (segreg,mem/reg(segreg,mem/reg) 注:注:1,1,不影响标志不影响标志 2,2,不允
14、许两操作数都使用存储器不允许两操作数都使用存储器 3,3,不允许往不允许往CSCS中送数中送数 4,84,8位传送位传送1616位传送决定于指令中寄存器及立位传送决定于指令中寄存器及立 即数形式即数形式 5,5,凡给凡给SSSS赋值时,系统会自动禁止中断,等下赋值时,系统会自动禁止中断,等下 条指令执行完后才会恢复条指令执行完后才会恢复 E E、例:一批数的传送、例:一批数的传送 PUSH PUSH进栈与进栈与POPPOP出栈指令出栈指令 、堆栈、堆栈 堆栈是以堆栈是以“后进先出后进先出”方式工作的一个存贮区。它方式工作的一个存贮区。它存存 在于堆栈段中在于堆栈段中.堆栈在计算机工作中起着重要
15、作用,堆栈在计算机工作中起着重要作用,它在子程序结构的程序以及中断程序中是不可少它在子程序结构的程序以及中断程序中是不可少的。堆栈指针寄存器的。堆栈指针寄存器SPSP用来指示堆栈在那里。它始用来指示堆栈在那里。它始终指向当前堆栈的栈顶。终指向当前堆栈的栈顶。注:在注:在80868086中堆栈的存取是以字为单位进行的中堆栈的存取是以字为单位进行的 、PUSH/POPPUSH/POP指令格式与操作指令格式与操作 格式:格式:PUSH SRCPUSH SRC 操作:操作:1,SP-1 SP 2,1,SP-1 SP 2,高字节高字节 (SP)(SP)3,SP-1 SP 4,3,SP-1 SP 4,低字
16、节低字节 (SP)(SP)格式:格式:POP DSTPOP DST 操作:操作:1,1,低字节低字节 弹出弹出 2,SP+1 SP2,SP+1 SP 3,3,高字节高字节 弹出弹出 4,SP+1 SP4,SP+1 SP C C、注:、注:PUSH/POPPUSH/POP指令可使用除立即数以外的所有寻址指令可使用除立即数以外的所有寻址 方式。指令也可以指定段寄为操作数,但方式。指令也可以指定段寄为操作数,但POPPOP指指 令不允许用令不允许用CSCS寄存器。寄存器。所有标志不受影响。所有标志不受影响。D D、例、例1 1:两寄存器内容交换:两寄存器内容交换 分析下面程序段:分析下面程序段:设设
17、SP=2000H,SS=1000H ST ST:PUSH BX PUSH BX PUSH CX PUSH CX POP BX POP BX POP CX POP CX 例例2 2:设:设BX=2A0CH,CX=A530H,SS=2000HBX=2A0CH,CX=A530H,SS=2000H 程序执行后,程序执行后,BX=AX=CX=SP=BX=AX=CX=SP=ST ST:MOV SP,1000HMOV SP,1000H PUSH BX PUSH BX PUSH CX PUSH CX MOV AX,62CEH MOV AX,62CEH ADD AX,SP ADD AX,SP POP BX PO
18、P BX HLT HLT 例例3 3:分析下面程序:分析下面程序:STST:MOV CXMOV CX,5 5 POP CX POP CX L1 L1:PUSH CXPUSH CX DEC CX DEC CX MOV CX MOV CX,10 JNZ L110 JNZ L1 L2 L2:DEC CX HLTDEC CX HLT JNZ L2 JNZ L2 XCHG XCHG指令指令(交换交换)、XCHGXCHG指令格式与操作指令格式与操作 XCHG OPR1,OPR2 XCHG OPR1,OPR2 OPR1OPR2 OPR1OPR2 、XCHGXCHG指令可以在寄存器之间或寄存器与存贮器之指令可
19、以在寄存器之间或寄存器与存贮器之 间交换信息。间交换信息。C C、例、例 注:不允许使用段寄。注:不允许使用段寄。该指令不影响标志位。该指令不影响标志位。 、累加器专用传送指令、累加器专用传送指令 IN/OUT IN/OUT输入输出指令输入输出指令 、指令的格式与操作、指令的格式与操作 长格式:长格式:IN AL,PORT AL(PORT)IN AL,PORT AL(PORT)IN AX,PORT AX (PORT+1,PORT)IN AX,PORT AX (PORT+1,PORT)OUT PORT,AL (PORT)AL OUT PORT,AL (PORT)AL OUT PORT,AX (P
20、ORT+1,PORT)AX OUT PORT,AX (PORT+1,PORT)AX 短格式:短格式:IN AL,DX AL (DX)IN AL,DX AL (DX)IN AX,DX AX IN AX,DX AX(DX+1,DXDX+1,DX)OUT DX,AL (DXOUT DX,AL (DX)AL AL OUT DX,AX (DX+1,DX)AX OUT DX,AX (DX+1,DX)AX 注:注:I/OI/O指令中只能用指令中只能用AX/ALAX/AL与与DXDX和和8 8位的端口地址。位的端口地址。 、用长格式时可以在指令中直接指定端口号用长格式时可以在指令中直接指定端口号,但只限但只限
21、 于外设的前于外设的前256256个端口,当端口号个端口,当端口号256256时,只能使时,只能使 用短格式,用短格式,(间接间接),必须注意端口号即为外设地,必须注意端口号即为外设地 址,它与段寄无关。址,它与段寄无关。I/OI/O指令不影响标志位。指令不影响标志位。C C、例、例1 1:D D、例、例2 2:OUT DX,ALOUT DX,AL XLAT XLAT换码指令换码指令 、指令格式与操作、指令格式与操作 XLAT OPR XLAT OPR 或或 XLAT XLAT AL BX+AL AL BX+AL 、注:使用、注:使用XLATXLAT指令,应先建立一个表格。指令,应先建立一个表
22、格。表格首址存入表格首址存入BXBX中,需转换的代码应是相对中,需转换的代码应是相对于于 表格首址的位移量(即项号)也提前放入表格首址的位移量(即项号)也提前放入AL AL 中。中。表格的内容(即项值)则是所要换取的代码表格的内容(即项值)则是所要换取的代码它将存入它将存入ALAL中。中。指令格式中的指令格式中的OPROPR为表格首址(符号地址)。为表格首址(符号地址)。所有标志不受影响。所有标志不受影响。、例、例 设:设:BX=0040H,AL=02HBX=0040H,AL=02H,DS=F000HDS=F000H 项号项号项值项值 表格:表格:0 (F0040H)=11H 0 (F0040
23、H)=11H(0040H0040H为表格首址)为表格首址)1 (F0041H)=22H 1 (F0041H)=22H 2 (F0042H)=33H 2 (F0042H)=33H 3 (F0043H)=44H 3 (F0043H)=44H 4 (F0044H)=55H 4 (F0044H)=55H 5 (F0045H)=66H 5 (F0045H)=66H 则:执行则:执行XLATXLAT后,后,AL=AL= 、地址传送指令、地址传送指令 、指令格式与操作、指令格式与操作 偏移地址送寄存器偏移地址送寄存器 LEA REGLEA REG REG REG SRC SRC 把源操作数的偏移地址送寄存器
24、把源操作数的偏移地址送寄存器。指针送寄存器和指针送寄存器和DS LDS REG,SRCDS LDS REG,SRC REG (SRC)REG (SRC)DS (SRC+2)DS (SRC+2)把源操作数提供的把源操作数提供的3232位数送寄存器与段寄位数送寄存器与段寄DS DS 指针送寄存器和指针送寄存器和ES LES REG,SRCES LES REG,SRC REG (SRC)REG (SRC)ES (SRC+2)ES (SRC+2)把源操作数提供的把源操作数提供的3232位数送寄存器与段寄位数送寄存器与段寄ESES 注:所有标志不受影响注:所有标志不受影响 REGREG必须为必须为161
25、6位通用寄存器位通用寄存器SRCSRC为内存单元地址。为内存单元地址。 、例、例LEA BX,BX+SILEA BX,BX+SI 执行前:执行前:BX=0400H SI=003CHBX=0400H SI=003CH执行后:执行后:BX=BX=LDS SI,10HLDS SI,10H 执行前:执行前:DS=C000H,(C0010H)=0180HDS=C000H,(C0010H)=0180H (0012H)=2000H (0012H)=2000H执行后:执行后:SI=DS=SI=DS=LES DI,BXLES DI,BX 执行前:执行前:DS=B000H,BX=080AHDS=B000H,BX=
展开阅读全文