文档介绍:该【第4章 汇编语言程序设计第3讲课件 】是由【iluyuw9】上传分享,文档一共【66】页,该文档可以免费在线阅读,需要了解更多关于【第4章 汇编语言程序设计第3讲课件 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。汇编语言程序设计
第四章
汇编语言程序设计基本步骤
顺序程序的基本结构和设计方法
循环程序的结构形式和程序设计
分支程序的结构形式和程序设计
2
本章要点
子程序的基本过程和设计方法
3
4
5
6
1
汇编语言概述
循环结构:由条件是否成立,确定是否重复执行某段程序。
串操作指令:
数据传送类指令每次只能传送一个数据,若要传送大批数据就需要重复编程,这样就浪费了大量的时间和空间。为此8086提供了一组处理主存中连续存放数据串的指令,这就是串操作指令。
功能:传送MOVS、比较CMPS、搜索SCAS、存STOS、取LODS。
SI用于寻址源操作数(存于数据段),由DS提供段地址。
DI用于寻址目的操作数(存于附加段),由ES提供段地址。
重复执行串操作指令(由CX控制次数),可实现串操作。
SI、DI中的地址减小(DF=1)
SI、DI中的地址增大(DF=0)
执行一次串操作指令后
特点:
串操作中“B”为字节操作,“W”为字操作。
1
2
相等重复前缀
REPE/REPZ
3
不相等重复前缀REPNE/REPNZ
重复操作前缀有下列三种形式:
重复前缀
REP
1、REP(Repeat)
REP前缀用在MOVS、STOS指令前,使后面的串指令重复执行
功能:每执行一次串指令(CX)-1,直到(CX)=0,重复执行结束。
2、REPZ/REPE相等/为零时重复操作前缀
(Repeatwhileequal/zero)
该指令一般用在CMP、SCAS指令前,当(CX)不等于0且比较相等的情况下,重复执行串指令。
功能:每执行一次串指令(CX)-1,并判断ZF标志是否为0,只要(CX)=0或ZF=0,则重复执行结束。
重复前缀指令REPREPZREPNZ
语句格式:MOVSDST,SRC
MOVSB——字节串传送
MOVSW——字串传送
功能:将以SI为指针的源串中的一个字节(或字)存储单元中的数据传送至以DI为指针的目的地址中去,并自动修改指针,使之指向下一个字节(或字)存储单元。
即:1)(DS:[SI])→(ES:[DI])。
2)当DF=0时,(SI)和(DI)增量。
当DF=1时,(SI)和(DI)减量。
Movstring
语句格式:STOSDST
STOSB——往字节串中存数
STOSW——往字串中存数
功能:将AL或AX中的数据送入DI所指的目的串中的字节(或字)存储单元中。
即:①字节操作:(AL)→(DI)
字操作:(AX)→(DI)。
②修改指针DI,使之指向串中的下一个元素。
当DF=0时,(DI)增量;
当DF=1时,(DI)减量。
Storeintostring
语句格式:LODSDST
LODSB——从字节串中取数
LODSW——从字串中取数
功能:将SI所指的源串中的一个字节(或字)存储单元中的数据取出来送入AL(或AX)中。
即①字节操作:((SI))→AL,
字操作:((SI))→AX。
②修改指针SI,使它指向串中的下一个元素。
当DF=0时,(SI)增量;
当DF=1时,(SI)减量。
Loadfromstring