南昌航空大学微型计算机原理与接口技术课件讲稿3.ppt

上传人:F****n 文档编号:109622223 上传时间:2019-10-27 格式:PPT 页数:92 大小:163.50KB
返回 下载 相关 举报
南昌航空大学微型计算机原理与接口技术课件讲稿3.ppt_第1页
第1页 / 共92页
南昌航空大学微型计算机原理与接口技术课件讲稿3.ppt_第2页
第2页 / 共92页
南昌航空大学微型计算机原理与接口技术课件讲稿3.ppt_第3页
第3页 / 共92页
南昌航空大学微型计算机原理与接口技术课件讲稿3.ppt_第4页
第4页 / 共92页
南昌航空大学微型计算机原理与接口技术课件讲稿3.ppt_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《南昌航空大学微型计算机原理与接口技术课件讲稿3.ppt》由会员分享,可在线阅读,更多相关《南昌航空大学微型计算机原理与接口技术课件讲稿3.ppt(92页珍藏版)》请在金锄头文库上搜索。

1、第三章 微型计算机的指令系统 指令的构成和操作数的类型 一、指令构成 一条指令由操怍码字段和操作数字段构成。 1、操作码字段 操作码字段表明指令执行何种性质的操作。 2、操作数字段 操作数字段是指明指令执行的操作所需要的操作数. 该字段中,可以是操作数本身或是操作数地址。,二、操作数类型 操作数有以下三种类型:立即数操作数、寄存器操 作数和存储器操作数。 1、立即数操作数 立即数只能作为源操作数,而不能作为目标操作 数。立即数可以是8位和16位带符号数或者无符号 数,并只能是整数,不能是小数。 2、寄存器操作数 寄存器操作数可以存放于CPU内部寄存器中,即通 用寄存器、地址指针寄存器、变址寄存

2、器、段寄存 器。所有的通用寄存器和地址指针寄存器既可以用 作源操作数,又可以用作目标操作数。 3、存储器操作数 存储器操作数的数据可能是8位、16位和32位的二进 制数。在指令中,存储器操作数可以分别作为源操 作数和目标操作数,但是不允许二者同时都为存储 器操作数。,2 8086的寻址方式 一、立即寻址 操作数包含在指令中,此操作数又称为立即数,(立 即数只能作源操作数)立即数可为8位,也可为16 位,它用来给寄存器存贮器赋初值。 二、寄存器寻址 操作数在某一寄存器中。一条指令中,可以对源 操作数采用寄存器寻址,也可对目的操作数采用 寄存器寻址,还可两者都用寄存器寻址。 寄存器可为:AX,BX

3、,CX,DX,SI,DI,SP,BP AH,AL,BH,BL,CH,CL,DH,DL。,三、直接寻址 操作数的地址包含在指令中。 (注意:此地址为16位偏移地址) 通常操作数一般在数据段区域中,如果要对其他段 寄存器所指出的存贮区进行寻址(所谓段超越), 则在本条指令中,须用前缀指出段寄存器名。,四、寄存器间接寻址 操作数的地址在某寄存器中, 这些寄存器可以为:BX,BP,SI,DI之一。 有效地址: EA=BX或BP或SI或DI 注:如果指令前没有用前缀指明具体的段寄存器,则 寻址时默认为DS/SS。 采用寄存器间址允许在指令中指定一个位移量(8位 或16位)。其有效地址EA为寄存器内容加上

4、此位移 量。(称寄存器相对寻址) 有效地址: EA=( BX或BP或SI或DI )位移量(带符号数),、数据段基址寻址 用BX寄存器进行间接寻址 。 、堆栈段基址寻址 用BP寄存器进行间接寻址。 、变址寻址 用SI,DI寄存器进行间接寻址。 、基址加变址寻址 用BX、BP和SI、DI寄存器组合起来进行间接寻址。 有效地址EA=(BX或BP)(SI或DI) 注:只要用上BP寄存器,那么默认的段寄存器就是SS, 在其他情况,则为DS。否则应用前缀指出相应段 寄存器名。,附:几种常见的书写形式 MOV AX,VALUE MOV AX,VALUE (VALUE为符号地址) MOV AX,ES:VALU

5、E MOV AX,ES:VALUE MOV AX,COUNTSI MOV AX,COUNT+SI (COUNT为位移量的符号地址) MOV AX,BXDI MOV AX,BX+DI MOV AX,MASKBXSI MOV AX,MASKBX+SI MOV AX,MASK+BX+SI,、例1:DS=2000H, ES=2100H, SS=1500H, SI=00A0H, BX=0100H, BP=0010H, VAL=0050H, 请指出下列的源操作数字段是什么寻址方式? 它的物理地址是多少? 、MOV AX,OABH B、MOV AX,BX 、MOV AX,VAL+100H D、MOV AX,

6、BX E、MOV AX,ES:BX F、MOV AX,BP G、MOV AX,SI H、MOV AX,VAL+BX+SI,例:根据以下要求写出相应的汇编语言指令 、把数OB5H与(AL)相加,结果送回AL中。 、把BX和DX内容相加,结果存入DX中。 、用位移量0524H的直接寻址方式把存贮器中一个字 与数2A59相加,结果送回存贮单元中。 、用BX和SI的基址变址寻址方式,把存贮器中一个字 节与AL 内容相加,结果存入AL中。 、用BX和位移量OB2H 的寄存器相对寻址方式把存贮 器中一个字和CX相加,结果存入内存单元中。, 8086/8088CPU 指令系统 一、数据传送指令 、通用数据传

7、送指令 MOV传送指令 格式: MOV DST, SRC DST:目的操作 操作: DST SRC SRC:源操 、立即数到寄存器存贮器 reg , data 注:不包括段寄 mem , data,B、从寄存器到寄存器 reg , reg 从存贮器到寄存器 mem , reg 从寄存器到存贮器 reg , mem 注:不包括段寄,、从存贮器寄存器到段寄存器 (mem/reg,segreg) 注:不能往CS中传送数据. 、从段寄存器到存贮器寄存器 (segreg,mem/reg),注: 1,不影响标志 2,不允许两操作数都使用存储器 3,不允许往CS中送数 4,8位传送16位传送决定于指令中寄存

8、器及立 即数形式 5,凡给SS赋值时,系统会自动禁止中断,等下 条指令执行完后才会恢复 E、例:一批数的传送, PUSH进栈与POP出栈指令 、堆栈 堆栈是以“后进先出”方式工作的一个存贮区。它存 在于堆栈段中.堆栈在计算机工作中起着重要作用, 它在子程序结构的程序以及中断程序中是不可少 的。堆栈指针寄存器SP用来指示堆栈在那里。它始 终指向当前堆栈的栈顶。 注:在8086中堆栈的存取是以字为单位进行的 、PUSH/POP指令格式与操作 格式:PUSH SRC 操作:1,SP-1 SP 2,高字节 (SP) 3,SP-1 SP 4,低字节 (SP) 格式:POP DST 操作:1,低字节 弹出

9、 2,SP+1 SP 3,高字节 弹出 4,SP+1 SP,C、注:PUSH/POP指令可使用除立即数以外的所有寻址 方式。指令也可以指定段寄为操作数,但POP指 令不允许用CS寄存器。 所有标志不受影响。 D、例1:两寄存器内容交换 分析下面程序段: 设SP=2000H,SS=1000H ST:PUSH BX PUSH CX POP BX POP CX,例2 :设BX=2A0CH, CX=A530H, SS=2000H 程序执行后, BX= AX= CX= SP= ST:MOV SP, 1000H PUSH BX PUSH CX MOV AX, 62CEH ADD AX, SP POP BX

10、 HLT 例3 :分析下面程序: ST:MOV CX,5 POP CX L1:PUSH CX DEC CX MOV CX,10 JNZ L1 L2:DEC CX HLT JNZ L2, XCHG指令(交换) 、XCHG指令格式与操作 XCHG OPR1, OPR2 OPR1OPR2 、XCHG指令可以在寄存器之间或寄存器与存贮器之 间交换信息。 C、例 注:不允许使用段寄。 该指令不影响标志位。,、累加器专用传送指令 IN/OUT输入输出指令 、指令的格式与操作 长格式:IN AL, PORT AL (PORT) IN AX, PORT AX (PORT+1,PORT) OUT PORT,AL

11、 (PORT) AL OUT PORT,AX (PORT+1,PORT) AX 短格式:IN AL,DX AL (DX) IN AX,DX AX (DX+1,DX) OUT DX,AL (DX) AL OUT DX,AX (DX+1,DX)AX 注:I/O指令中只能用AX/AL与DX和8位的端口地址。,B、 用长格式时可以在指令中直接指定端口号,但只限 于外设的前256个端口,当端口号256时,只能使 用短格式,(间接),必须注意端口号即为外设地 址,它与段寄无关。 I/O指令不影响标志位。 C、 例1: D、 例2: OUT DX, AL, XLAT换码指令 、指令格式与操作 XLAT OP

12、R 或 XLAT AL BX + AL 、注:使用XLAT指令,应先建立一个表格。 表格首址存入BX中,需转换的代码应是相对于 表格首址的位移量(即项号)也提前放入AL 中。 表格的内容(即项值)则是所要换取的代码 它将存入AL中。 指令格式中的OPR为表格首址(符号地址)。,所有标志不受影响。,、例 设:BX=0040H, AL=02H, DS=F000H 项号 项值 表格: 0 (F0040H)=11H (0040H为表格首址) 1 (F0041H)=22H 2 (F0042H)=33H 3 (F0043H)=44H 4 (F0044H)=55H 5 (F0045H)=66H 则:执行XL

13、AT后, AL=,、地址传送指令 、指令格式与操作 偏移地址送寄存器 LEA REG REG SRC 把源操作数的偏移地址送寄存器。 指针送寄存器和DS LDS REG,SRC REG (SRC) DS (SRC+2) 把源操作数提供的32位数送寄存器与段寄DS 指针送寄存器和ES LES REG,SRC REG (SRC) ES (SRC+2) 把源操作数提供的32位数送寄存器与段寄ES 注:所有标志不受影响 REG必须为16位通用寄存器SRC为内存单元地址。,、例 LEA BX,BX+SI 执行前:BX=0400H SI=003CH 执行后:BX= LDS SI,10H 执行前:DS=C0

14、00H, (C0010H)=0180H (0012H)=2000H 执行后:SI= DS= LES DI,BX 执行前:DS=B000H, BX=080AH (B080AH)=05AEH, (B080CH)=4000H 执行后:DI= ES=,、标志寄存器传送指令 标志送AH: LAHF AH PSW的低字节 AH送标寄: SAHF PSW的低字节 AH 标志进栈: PUSHF SPSP-2; (SP+1,SP) PSW 标志出栈: POPF PSW(SP+1,SP) SP SP+2 PSW 15 8 7 0 AH,三、算术运算指令 、加法指令 加: ADD DST,SRC DSTSRC+DST reg,reg; reg,mem; mem,reg reg,data; mem,data; ac,data 带进位加:ADC DST,SRC (DST) (SRC)+(DST)+CF reg,reg; reg,mem; mem,reg reg,data; mem,data; ac,data 加1: INC OPR (OPR) (OPR)+1 (reg;mem) 注:INC指令不影响CF标志,、减法指令 减: SUB DST,SRC

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 小学教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号