微机原理与接口技术08第3章 寻址方式和指令系统33 习题3.docx

上传人:b****1 文档编号:1334545 上传时间:2022-10-20 格式:DOCX 页数:30 大小:83.52KB
下载 相关 举报
微机原理与接口技术08第3章 寻址方式和指令系统33 习题3.docx_第1页
第1页 / 共30页
微机原理与接口技术08第3章 寻址方式和指令系统33 习题3.docx_第2页
第2页 / 共30页
微机原理与接口技术08第3章 寻址方式和指令系统33 习题3.docx_第3页
第3页 / 共30页
微机原理与接口技术08第3章 寻址方式和指令系统33 习题3.docx_第4页
第4页 / 共30页
微机原理与接口技术08第3章 寻址方式和指令系统33 习题3.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

微机原理与接口技术08第3章 寻址方式和指令系统33 习题3.docx

《微机原理与接口技术08第3章 寻址方式和指令系统33 习题3.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术08第3章 寻址方式和指令系统33 习题3.docx(30页珍藏版)》请在冰豆网上搜索。

微机原理与接口技术08第3章 寻址方式和指令系统33 习题3.docx

微机原理与接口技术08第3章寻址方式和指令系统33习题3

交通信息与控制工程系教案(理论教学用)

课程名称

微机原理与接口技术

第8次

第4周

2学时

上课教室

WM1310

课程类型

专业基础课

授课对象

自动化专业

章节名称

第三章寻址方式和指令系统(3.3)

教学目的

和要求

1.掌握8086的基本指令,如逻辑运算和移位指令、串操作指令、程序控制指令等。

讲授

主要内容及时间分配

1.逻辑运算和移位指令;(35min)

2.串操作指令;(20min)

3.程序控制指令;(25min)

4.处理器控制指令。

(10min)

教学重点

与难点

重点:

1.逻辑运算和移位指令的基本功能和格式;

2.串操作指令的基本功能和格式;

3.程序控制指令的基本功能和格式。

难点:

逻辑运算和移位指令的基本功能和格式。

要求掌握知识点和分析方法

1.逻辑运算和移位指令的格式、功能及应用方法;

2.串操作指令的格式、功能及应用方法;

3.程序控制指令的格式、功能及应用方法。

启发与提问

1.逻辑移位和算术移位指令的区别?

教学手段

多媒体+板书

作业布置

思考题:

1.远跳转和近跳转的区别?

3.2,3.5

3.9,3.11

3.12,3.14

主要

参考资料

 

备注

 

注:

教案按授课次数填写,每次授课均应填写一份。

重复班授课可不另填写教案。

长安大学讲稿(第八讲)

讲授内容

三、逻辑运算和移位类

1.逻辑运算

逻辑运算指令对操作数的要求大多与MOV指令相同。

逻辑运算是按位操作的,它包括AND(与)、OR(或)、NOT(非)、XOR(异或)和TEST(测试)指令。

除“非”运算指令外,其余指令的执行都会使标志位OF=CF=0,AF位无定义,SF、ZF和PF根据运算结果设置。

“与”运算指令

格式:

ANDOPRD1,OPRD2

操作:

两操作数相“与”,结果送目标地址。

【例】要屏蔽AL中的高4位。

ANDAL,00001111B

【例】ANDAL,AL

此指令执行前后,(AL)无变化,但执行后使标志位发生了变化,即CF=0,OF=0。

“或”运算指令

格式:

OROPRD1,OPRD2

操作:

两操作数相“或”,结果送目标地址

【例】(AL)=0FH,ORAL,10000000B

(AL)=8FH

【例】ORAL,AL

指令执行前后,(AL)不变,但执行后标志位发生了变化,即CF=0,OF=0。

“非”运算指令

格式:

NOTOPRD

操作:

操作数按位取反再送回原地址

指令中的操作数不能是立即数

指令的执行对标志位无影响

例:

NOTBYTEPTR[BX]

“异或”运算指令

格式:

XOROPRD1,OPRD2

操作:

两操作数相“异或”,结果送目标地址

两操作数自身相异或,结果

XORAX,AX

“测试”指令

格式:

TESTOPRD1,OPRD2

操作:

执行“与”运算,但运算的结果不送回目标地址。

应用:

常用于测试某些位的状态

“测试”指令例

从地址为38F0H的端口中读入一个字节数,如果该数的bit1位为1,则可从38FEH端口将DATA为首地址的一个字输出,否则继续读写端口数据。

编写相应的程序段。

LEASI,DATA

MOVDX,38F0H

WATT:

INAL,DX

TESTAL,02H

JZWATT;ZF=1转移

MOVDX,38FEH

MOVAX,[SI]

OUTDX,AX

2.移位指令

(1)逻辑/算术左移指令。

格式:

SHL/SALDST,CNT

操作:

指令按照CNT指定的移位次数对目的操作数进行左移位,移位结果送DST,最后一次移出的位送CF中。

移动一位后,若CF与最高不相等,则OF=1;否则OF=0

例:

MOVAL,41H

SHL(SAL)AL,1

执行结果(AL)=82H,CF=0,OF=1

【例】将(AX)乘以10。

十进制数10的二进制形式为1010,即权为2和权为8的位为1,故采用2×(AX)+8×(AX),结果为10×(AX),程序段如下:

SHLAX,1

MOVBX,AX

SHLAX,1

SHLAX,1

ADDAX,BX

逻辑右移

格式:

SHRDST,CNT

移动一位后,若次高位与最高位不相等,则OF=1;否则OF=0

算术右移(有符号数的右移)

格式:

SAROPRD,I

SAROPRD,CL

循环移位指令

不带进位位的循环移位

带进位位的循环移位

循环移位指令的格式、对操作数的要求与非循环移位指令相同

带进位位的循环移位

循环移位指令的应用

例如:

有一个4字节数存放在DX和AX中,(DX)=0123H,(AX)=0456H,要求该数的4个字节一起左移一位。

执行SALAX,1

RCLDX,1

注意:

将AX的D15移到CF,再将CF移到DX的D0,DX的D15最后移到CF中。

用于对某些位状态的测试;

测试BL寄存器的第三位状态,并保持原内容不变。

MOVCL,04H

ROLBL,CL

JNZZERO

RORBL,CL

……

ZERO:

RORBL,CL

例:

将1000H开始存放的四个压缩BCD码转换为ASCII码存放在3000H开始的单元中去。

MOVSI,1000H

MOVDI,3000H

MOVCX,4

BBB:

MOVAL,[SI]

MOVBL,AL

ANDAL,0FH

ORAL,30H

MOV[DI],AL

INCDI

MOVAL,BL

PUSHCX

MOVCL,4

SHRAL,CL

ORAL,30H

MOV[DI],AL

INCDI

INCSI

POPCX

DECCX

JNZBBB

HLT

四、串操作指令

针对数据块或字符串的操作;

可实现存储器到存储器的数据传送;

待操作的数据串称为源串,目标地址称为目标串。

串操作指令的特点

源串一般存放在数据段,偏移地址由SI指定。

允许段重设;

目标串必须在附加段,偏移地址由DI指定;

指令自动修改地址指针,修改方向由DF决定。

DF=0增地址方向;DF=1减地址方向;

数据块长度值由CX指定

可增加自动重复前缀以实现自动修改CX内容。

重复前缀

REP无条件重复

REPE相等重复

REPZ为零重复

REPNE不相等重复

REPNZ不为零重复

串传送指令

格式:

MOVSOPRD1,OPRD2

MOVSB

MOVSW

串传送指令常与无条件重复前缀连用

对比用MOV指令和MOVS指令实现将200个字节数据从内存的一个区域送到另一个区域的程序段。

用串传送指令实现200个字节数据的传送:

LEASI,MEM1

LEADI,MEM2

MOVCX,200

CLD

REPMOVSB

HLT

串比较指令

格式:

CMPSOPRD1,OPRD2

CMPSB

CMPSW

串比较指令常与条件重复前缀连用,指令的执行不改变操作数,仅影响标志位。

测试200个字节数据是否传送正确,如果不正确,找出第一个不相等的字符,并将其地址和不相等的字符送到:

BX和AL中。

LEASI,MEM1

LEADI,MEM2

MOVCX,0C8H

CLD

REPECMPSB

JZSTOP

DECSI

MOVAL,[SI]

MOVBX,SI

STOP:

HLT

串扫描指令

格式:

SCASOPRD

SCASB

SCASW

执行与CMPS指令相似的操作,只是这里的源操作数是AX或AL

【例】SCAS指令的举例。

假设有一起始地址为BLOCK,长度为100个字节的存储区,现要对这一存储区进行测试,看其中是否有内容为00H的存储单元。

 

MOVDI,OFFSETBLOCK

CLD

MOVCX,100

XORAL,AL

REPNESCASB

JZFOUND

FOUND:

   

串装入指令

格式:

LODSOPRD

LODSB

LODSW

对字节:

AL←([DS:

SI])

对字:

AX←([DS:

SI])

串送存指令

格式:

STOSOPRD

STOSB

STOSW

操作:

对字节:

AL([ES:

DI])

对字:

AX([ES:

DI])

五、程序控制指令

1.转移指令

①段内直接转移。

格式:

JMPNEARPTRTARGET

JMPSHORTTARGET

操作:

(IP)←(IP)+16位位移量;

(IP)←(IP)+8位位移量。

②段内间接寻址

格式:

JMPOPRD

操作:

(IP)←(EA)。

说明:

转向有效地址是一个通用寄存器或一个存储器单元的内容。

该指令是绝对转移。

 

例如:

若(DS)=0A000H,(BX)=0056H,TABLE=3200H,(SI)=0256H,(0A3256H)=1688H。

执行JMPSI;

JMPTABLE[BX]

③段间直接转移

汇编格式1:

JMPFARPTR转移地址标号

执行的操作:

(IP)←转移地址标号的偏移地址

(CS)←转移地址标号的段地址

功能:

无条件转移到指定标号地址处往下执行。

汇编格式2:

JMP段地址值:

偏移地址

执行的操作:

(IP)←偏移地址值

(CS)←段地址值

功能:

无条件转移到指定段的指定偏移地址处往下执行。

P1SEGMENT

JMPFARPTRNEXT1

P1ENDS

P2SEGMENT

NEXT1:

P2ENDS

JMP6000H:

1000H

④段间间接转移

汇编格式:

JMPDWORDPTR存储器寻址方式

执行的操作:

(IP)←寻址到的存储单元的第一个字

(CS)←寻址到的存储单元的第二个字

功能:

无条件转移到指定段的指定偏移地址处。

【例】如果TABLE是数据段中定义的一变量,偏移地址为0010H,(DS)=1000H,(10015H)=12H,(10016H)=34H,(10017H)=56H,(10018H)=78H,有指令

JMPDWORDPTRTABLE[BX]

执行时若(BX)=0005H,则执行后,(IP)=3412H,(CS)=7856H,即程序转移到7856H:

3412H处。

(2)条件转移指令。

条件转移指令有16条,转移的条件是依据对除AF之外的五个状态标志位的判断。

可对一个标志位进行判断,也可对两个甚至三个标志位进行判断。

在内存中存放了100个8位的有符号数,其首地址位Table,

试统计其中的正、负数以及零的个数,并分别放到相应的存储单元Plus,Minus,Zero中。

Start:

MOVAL,0

MOVPlus,AL

MOVMinus,AL

MOVZero,AL

LEASI,TABLE

MOVCX,100

CLD

CHE:

LODSBORAL,AL

JSX1

JZX2

INCPLUS

JMPNEXT

X1:

INCMINUSJMPNEXT

X2:

INCZERO

NEXT:

LOOPCHECK

HLT

2.循环控制指令

控制程序在以当前IP

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1