当前课程知识点:微机原理与接口技术 >  第6周 串操作指令 >  第24讲 串装入与串存储指令 >  串装入与串存储指令

返回《微机原理与接口技术》慕课在线视频课程列表

串装入与串存储指令在线视频

串装入与串存储指令

下一节:程序控制类指令说明

返回《微机原理与接口技术》慕课在线视频列表

串装入与串存储指令课程教案、知识点、字幕

串操作指令的第四条我们称为串装入

这条指令的助记符叫LODS

它也是一条单操作数格式的指令

这里的这个操作数是源操作数

也就说它的指针必须是SI

一般情况下或者默认情况下

它是在数据段的

如果采用默认

我们同样也使用下边这两种格式

这条指令的操作是这样

将数据段中

SI所指向单元的内容送给AL

或者是

在数据段中

SI所指向的自单元的内容送给AX

串装入是传送类操作的指令

它是将内存某个区域的数据串
依次装入累加器

目的是什么呢? 目的是为了显示输出

或者通过I/O接口输出

因为它一个一个的往累加器里装

如果我们加前缀的话
那么也就说它会连续的装入

那么后边装入的就把前面的覆盖

因此这条指令前面我们一般不加重复前缀

因为这条指令和MOVS指令
执行着几乎完全一样的操作

无非是它的目标不再是一串区域

而是一个累加器而已

因此这条指令我们就不再过多的去解释了

第五条串操作指令

称为串存储 也叫串送存

这条指令也是传送类操作的指令

这里显示给出的操作对象是目标操作数

当然我们也可以用

这样两种格式 这条指令的操作

是这样

如果是按字节操作的话

它是将AL的内容

依次装入到附加段一片区域中去

如果是按字操作的话

那么它就是将AX的内容依次装入到附加段
一块区域中

这条指令在程序中经常用来将
内存的某个区域

置成同样的值

作为传送类指令 它的前面

只能加无条件重复前缀

这个时候会将要送存的数据
放入AL或者是AX中

然后确定操作方向

和区域的大小 也就是串的长度值

然后呢使用串存储指令

再加上无条件重复前缀

就可以实现将一串区域中置成同样的值了

好 串操作指令我们就介绍完了

下边我们来对串操作指令做一个简单的小结

首先

在有串操作指令的程序中
我们未来必须要定义附加段

原因就是

串操作指令规定

它的目标串必须在附加段里头

具体如何定义附加段

我们在第四章学习的时候会介绍给大家

另外呢 请大家注意

我们串操作指令因为一条指令就

在加前缀的情况下

就是一个循环结构

因此我们需要设定串的操作方向

我们可以通过设置DF的状态

来决定数据串的操作方向

另外串操作指令规定源串的指针
必须由SI来给出

目标串的指针必须由DI来给出

而且串的长度值必须是由CX来给出的

这些都是没有道理的
这些就是一些具体的规定

所以大家学习的时候必须要去记住

作为一个非常特殊的
就说唯一可以加前缀的这种指令呢

请大家在使用串操作指令的时候

一定要注意合理的使用重复前缀

除了串装入指令以外

其他的串操作指令在使用的时候
我们都建议大家使用前缀

因为这样子的话可以简化程序的编写

但是前缀请大家注意这几点

就说 无条件重复前缀只能加在
传送类的指令的前面

也就说只能加在串传送和串送存指令的前边

而条件重复前缀

可以加在

串比较和串扫描指令的前边

具体是加相等则重复还是不相等则重复的前缀

那要根据具体的情况来确定

但是有一点要注意

就说前缀虽然完成了修改CX的值

这样的一个工作 但是即使CX为零

它也不会影响ZF的状态

在条件重复前缀后边

对于这种串比较或串扫描指令

它们最后ZF的状态

完全取决于

指令本身执行的结果

这一点是希望大家务必注意的

也就说回顾我们前面讲串比较指令
所举的那个例子

当你完成一次串比较

这条指令

退出这条指令的执行
也就是这条指令执行完

能够执行到下一行指令

它的条件有两个

一个就是

CX为零了

或者是

ZF的状态不满足重复的条件了

那么到底是哪一种情况?

使得这种串比较指令结束执行

或者串扫描指令结束执行

这个直接影响着我们最后的判断

也就是像我们前面讲串比较指令举得那个

200个字节数去比较的那样一个例子里头

就说如果是因为CX为零
来结束这条串比较指令的话

那么就意味着我们两个串是完全一样的

就是说明我们可能
刚才在这之前的数据传送是正确的

那么如果不是因为CX为零

而是因为ZF等于1而退出这个

而是因为ZF等于零

退出这个CMPS的执行

那么就意味着两个数据串是不相等的

所以这个非常重要

到底是因为哪一个因素呢?

我们在那个例子里
我们曾经说到用条件转移指令就是

JZ指令 就说去判断ZF的状态这条指令

来看一下到底是什么因素

所以在这个程序里头 大家千万要注意

在CMPS指令的后边不能再随便的去跟一条

类似于TEST或者ADD这种
影响ZF状态的指令

而是要直接去判断当前ZF的状态

这一点是很重要的

这个在我们前面那个

这一点是很重要的

好 有关串操作指令呢我们就介绍到这里

希望大家通过实际的编程

能够去理解这一类指令

这一类指令

本身它的这个看上去

原理并不复杂

因为它做的就是传送和比较

但是它因为

一条指令就对应着一个循环体

所以在

有时候大家在理解起来 它的底层原理上

可能会造成一些 错误

可能会造成一些错误

还有一点需要注意的是什么呢? 就说

我们前面的那个

控制流程里头
大家一定要去理解那个流程图

从那个流程图里 大家会有

那个流程图反映出来这么一个信息

就说每一次的串操作完成

不论是串传送完成还是串比较完成

不管是满足还是不满足

继续重复的条件

它都要先修改指针

然后再去修改串的长度值

然后再去判断是不是满足重复的条件

这一点非常重要

这就说我们

哪怕它两个串比较是不相等

我们应该不再继续了

但是不再继续了之后呢
它的指针实际上已经在

刚才操作的那个单元的下边

这个也是希望提醒大家注意的

这个我们在前面讲指令的时候
用例子已经跟大家解释了

所以在这里就是再次提醒大家
学习的时候关注这一点

好 有关串操作指令我们就介绍到这里

微机原理与接口技术课程列表:

第1周 微型计算机基础概论

-第1讲 关于本课程

--关于本课程

-第2讲 微型计算机系统

--微机系统_01

--微机系统_02

-第3讲 微型计算机一般工作过程

--微机的一般工作过程_01

--微机的一般工作过程_02

-第4讲 数制与编码

--常用计数制及其转换

--计算机中的编码

-第5讲 计算机中数的表示与运算

--数的表示

--符号数的表示

--数的表示与运算

-第6讲 基本逻辑运算与逻辑电路

--基本逻辑运算与逻辑门

--常用逻辑运算及电路

-第7讲 本周小结

--本周小结

-第1周 微型计算机基础概论--第一周单元测验

第2周 8088微处理器

-第8讲 8088微处理器

--8088 CPU_01

--8088 CPU_02

-第9讲 8088 CPU主要引线及机构

--8088 CPU主要引线

--8088 CPU内部结构

--8088 CPU内部寄存器

-第2周 8088微处理器--第二周单元测验

第3周 实模式存储器寻址与总线

-第10讲 实模式存储器寻址

--实模式存储器寻址_01

--实模式存储器寻址_02

--实模式存储器寻址_03

-第11讲 8088系统总线

--8088系统总线

-第12讲 微处理器小结

--微处理器小结

-单元测验--作业

第4周 数据传送指令

-第13讲 指令概述

--指令概述

-第14讲 寻址方式

--寻址方式

-第15讲 通用数据传送指令

--通用数据传送指令_01

--通用数据传送指令_02

--通用数据传送指令_03

-第16讲 地址传送指令

--地址传送指令

-第17讲 输入输出指令

--输入输出指令

-第4周 数据传送指令--第四周单元测验

第5周 算术运算、逻辑运算与移位操作指令

-第18讲 算术运算指令

--加法运算指令

--减法指令

--乘除运算指令

-第19讲 逻辑运算指令

--逻辑运算指令_01

--逻辑运算指令_02

-第20讲 移位操作指令

--移位操作指令

-第5周 算术运算、逻辑运算与移位操作指令--第五周单元测验

第6周 串操作指令

-第21讲 关于串操作指令的说明

--串操作指令说明

-第22讲 串传送与串比较

--串传送与串比较

-第23讲 串扫描指令

--串扫描指令

-第24讲 串装入与串存储指令

--串装入与串存储指令

-第六周单元测验--作业

第7周 程序与处理器控制

-第25讲 程序控制指令说明

--程序控制类指令说明

-第26讲 转移类指令

--无条件转移指令

--条件转移指令

-第27讲 循环控制指令

--循环控制指令

-第28讲 过程调用指令

--过程调用指令

-第29讲 中断指令

--中断指令

-第30讲 处理器控制指令

--处理器控制指令

-第31讲 指令系统小结

--指令系统小结

-第7周 程序与处理器控制--第七周单元测验

-第7周 程序与处理器控制--第七周作业

第8周 汇编语言程序设计

-第32讲 汇编语言源程序

-- 汇编语言源程序_01

-- 汇编语言源程序_02

-第33讲 伪指令

--数据定义伪指令

--符号与段定义伪指令

--汇编语言源程序结构例

--其它伪指令

-第34讲 系统功能调用

--系统功能调用_01

--系统功能调用_02

-第35讲 汇编语言程序设计示例详解

--程序设计示例1

--汇编语言程序设计示例_02

-第36讲 汇编语言程序设计小结

--汇编语言程序设计小结

-第8周 汇编语言程序设计--第八周单元测验

-第8周 汇编语言程序设计--第八周作业

第9周 半导体存储器

-第37讲 半导体存储器概述

--半导体存储器概述

-第38讲 内存单元编址

--存储单元编址

-第39讲 随机存取存储器RAM

-- RAM_01

--RAM_02

-第40讲 只读存储器ROM

--ROM_01

--ROM_02

-第九周单元测验--作业

第10周 半导体存储器扩展技术

-第41讲 半导体存储器扩展

--半导体存储器扩展_1

--存储器扩展_2

--半导体存储器扩展_3

-第42讲 半导体存储器小结

--半导体存储器小结

-第十周单元测验--作业

-第十周作业--作业

第11周 输入输出与中断技术

-第43讲 基本I/O接口

--I/O系统概述_01

--I/O系统概述_02

-第44讲 简单接口芯片

--简单接口芯片

-第45讲 基本输入输出方法

--基本I/O方法

-第46讲 简单I/O控制系统设计

--简单I/O控制系统设计1

--简单I/O控制系统设计2

-第47讲 中断技术

--中断技术1

--中断技术2

-第48讲 输入输出与中断技术小结

--本周小结

-第十一周单元测验--作业

第12周 可编程并行数字接口

-第49讲 可编程定时计数器

--可编程定时计数器8253_01

--可编程定时计数器8253_02

--可编程定时计数器8253_03

-第50讲 可编程并行接口

--可编程并接口8255_01

--可编程并行接口8255_02

--可编程并行接口8255_03

-第51讲 可编程接口小结

--本周小结_01

--本周小结_02

-第十二周单元测验

第13周 模拟量的输入输出

-第52讲 模拟量的输入输出

--模拟量的输入输出

-第53讲 D/A转换器

--D/A转换器_01

--D/A转换器_02

-第54讲 A/D转换器

-- A/D转换器_01

--A/D转换器_02

-第十三周单元测验--作业

第14周 系统综合设计示例详解

-第55讲 I/O接口系统综合设计示例详解I

--综合设计示例详解I_01

--综合设计示例详解I_02

-第56讲 综合设计示例详解II

--综合设计示例详解II_01

--综合设计示例详解II_02

-第57讲 结束语

--结束语

串装入与串存储指令笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。