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

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

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

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

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

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

ADDAX,BX

逻辑右移

SHRDST,CNT

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

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

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

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

串比较指令

CMPSOPRD1,OPRD2

CMPSB

CMPSW

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

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

BX和AL中。

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:

串送存指令

STOSOPRD

STOSB

STOSW

AL([ES:

DI])

对字:

AX([ES:

五、程序控制指令

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

CHE:

LODSBORAL,AL

JSX1

JZX2

INCPLUS

JMPNEXT

X1:

INCMINUSJMPNEXT

X2:

INCZERO

NEXT:

LOOPCHECK

2.循环控制指令

控制程序在以当前IP

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

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

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

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