自制PPT讲义-微机原理课件第7讲优质PPT.ppt
- 文档编号:15557772
- 上传时间:2022-11-04
- 格式:PPT
- 页数:69
- 大小:1.17MB
自制PPT讲义-微机原理课件第7讲优质PPT.ppt
《自制PPT讲义-微机原理课件第7讲优质PPT.ppt》由会员分享,可在线阅读,更多相关《自制PPT讲义-微机原理课件第7讲优质PPT.ppt(69页珍藏版)》请在冰豆网上搜索。
SI指向源串首地址,每执指向源串首地址,每执行一次串操作:
字节串操作时,行一次串操作:
字节串操作时,SI、DI分别增分别增1;
字串操;
字串操作时,作时,SI和和DI分别增分别增2;
DF1为递减方向为递减方向。
SI指向源串末地址,每执行指向源串末地址,每执行一次串操作:
字节串操作时减一次串操作:
字节串操作时减1;
字串操作时减;
字串操作时减2。
STD使使DF置置1,CLD将将DF清清0。
串长度串长度要处理的字符串长度要处理的字符串长度(字节或字数字节或字数)放在放在CX寄存器中。
寄存器中。
隐含约定功能在基本指令前加重复前缀,可加快串运算指令的执行速度。
每重复执行一次,地址指针SI和DI按方向标志自动修改,CX的值自动减1。
类型和格式REP:
无条件重复,重复操作直到CX0为止。
REPE/REPZ:
相等/结果为零则重复,重复直到ZF0或CX0为止。
REPNE/REPNZ:
不相等/结果非零则重复,重复直到ZF1或CX0为止。
重复前缀带有重复前缀的串指令执行过程中允许有中断进入。
带有重复前缀的串指令执行过程中允许有中断进入。
MOVS字符串传送指令MOVS字符串传送指令(MoveString)格式MOVS目的串,源串。
功能SI作指针的源串中的一个字节或字,DI作指针的目的串;
自动修改指针SI和DI。
应用l解决MOV指令不能直接在存储单元间进行数据传送的问题。
l若使用重复前缀,还可以利用一条指令传送一批数据。
MOVS字符串传送指令举例要求把数据段中以SRC_MESS为偏移地址的一串字符“HELLO!
”,传送到附加段中以NEW_LOC开始的单元中。
DATASEGMENT;
数据段;
数据段SRC_MESSDBHELLO!
;
源串;
源串DATAENDS;
EXTRASEGMENT;
附加段;
附加段NEW_LOCDB6DUP(?
);
存放目的串;
存放目的串EXTRAENDS;
CODESEGMENTASSUMECS:
CD,DS:
DATA,ES:
EXTRASTART:
MOVAX,DATAMOVDS,AX;
DS数据段段址数据段段址MOVAX,EXTRAMOVES,AX;
ES附加段段址附加段段址LEASI,SRC_MESS;
SI指向源串偏移地址指向源串偏移地址LEADI,NEW_LOC;
DI指向目的串偏移地址指向目的串偏移地址MOVCX,6;
CX作串长度计数器作串长度计数器CLD;
清方向标志,地址增量;
清方向标志,地址增量REPMOVSB;
重复传送串中各字节,直到;
重复传送串中各字节,直到CX=0CodeENDSEndstartCMPS字符串比较指令CMPS字符串比较指令(CompareString)格式格式CMPS目的串,源串。
功能功能SI作指针的源串减去DI作指针的目的串数据,结果反映在标志位上;
两个数据串的原始值不变;
源串和目的串指针自动修改,指向下一对待比较的串。
常用来比较两个字符串是否相等。
CMPS字符串比较指令加重复前缀lREPE/REPZCMPS;
直至CX0(比完了)或ZF0(两串不相等)时停止操作。
lREPNE/REPNZCMP;
直至CX0(比完了)或ZF1(两串相等)时停止比较。
SCAS字符串扫描指令SCAS字符串扫描指令(ScanString)格式SCAS目的串。
功能AL/AX(字节/字操作)内容减去ES:
DI中的串元素,结果反映在标志位上,源操作数不变,操作后目的串指针会自动修改,指向下一个待搜索的串元素。
应用l利用SCAS指令,可在内存中搜索关键字。
指令执行前,必须事先将关键字存在AL(字节)或AX(字)中,才能用SCAS指令进行搜索。
lSCAS指令可以加重复前缀。
SCAS字符串扫描指令举例在某一字符串中搜寻是否有字符A,若有,则把搜索次数记下来,送到BX寄存器中,若没有查到,则将BX寄存器清0。
设字符串起始地址STRING的偏移地址为0,字符串长度为CX。
解:
MOVDI,OFFSETSTRING;
DI字符串偏移地址字符串偏移地址MOVCX,COUNT;
CX字符串长度字符串长度MOVAL,A;
AL关键字关键字A的的ASCII码码CLD;
清标志方向;
清标志方向REPNESCASB;
CX0(没查完没查完)和和ZF=0(不相等不相等)时重复时重复JZFIND;
若;
若ZF=1,表示已搜到,转出,表示已搜到,转出MOVDI,0;
若ZF=0,表示没搜到,表示没搜到,DI0FIND:
MOVBX,DI;
BX搜索次数搜索次数HLTLODS取字符串指令LODS取字符串指令(LoadString)格式格式LODS源串。
功能功能DS:
SI中的串元素AL/AX(字节/字操作)中,修改SI,以指向串中的下一个元素。
SI的修改量由方向标志DF和源串的类型确定。
STOS存字符串指令STOS存字符串指令(StoreString)格式格式STOS目的串。
功能功能AL/AX(字节/字操作)的一个字节或字ES:
DI所指的目的串;
修改DI,以指向串中的下一个单元。
关于重复前缀:
“REPSTOS”,可用累加器中的常数,对数据串初始化。
如初始化为全0串。
控制转移指令作用改变CS和IP的值,从而改变指令的执行顺序。
类型l无条件转移和过程调用指令l条件转移指令l条件循环控制指令l中断指令控制转移指令(28条)无条件转移和过程调用条件转移指令JMP无条件转移JZ/JE等等10条指令条指令直接标志转移CALL过程调用JA/JNBE等等8条指令条指令间接标志转移RET过程返回条件循环控制中断指令LOOPCX0循环INT中断LOOPE/LOOPZCX0和和ZF=1INTO溢出中断LOOPNE/LOOPNZCX0和和ZF=0IRET中断返回JCXZCX=0则转移无条件转移和过程控制指令命令命令含义含义时钟数时钟数JMP无条件转移1124+EACALL过程调用1637+EARET过程返回1624JMP无条件转移指令JMP无条件转移指令(Jump)格式JMP目的。
功能程序无条件地转移到指定的目的地址去执行。
转移类型l段内转移或近(NEAR)转移转移指令的目的地址和JMP指令在同一代码段中,转移时,仅改变IP寄存器的内容,段地址CS的值不变。
l段间转移,又称为远(FAR)转移转移时,CS和IP的值都要改变,转到另一代码段去执行。
JMP无条件转移指令两种提供地址的方式l直接转移指令码中直接给出转移的目的地址,目的操作数用一个标号来表示,它又可分为段内直接转移和段间直接转移。
l间接转移目的地址包含在某个16位寄存器或存储单元中,CPU根据寄存器或存储器寻址方式,间接求出转移地址。
JMP无条件转移指令无条件转移指令的类型和方式类型类型方式方式寻址目标寻址目标指令举例指令举例段内转移直接立即短转移(8位)JMPSHORTPROG_S直接立即近转移(16位)JMPNEARPTRROG_N间接寄存器(16位)JMPBX间接存储器(16位)JMPWORDPTR5BX段间转移直接立即转移(32位)JMPFARPTRPROG_F间接存储器(32位)JMPDWORDPTRDIJMP无条件转移指令段内直接转移指令格式JMPSHORT标号JMPNEARPTR标号(或:
JMP标号)。
特点l目的操作数均用标号表示;
l程序转向的有效地址当前IP寄存器的内容8/16位位移量(DISP)。
16位:
近转移,范围在-32768+32767个字节之间;
8位:
短转移,范围在-128+127个字节之间;
JMP无条件转移指令段内间接转移指令格式JMP16位寄存器/字存储单元特点l16位有效地址存放在一个16位寄存器、字存储器单元;
l寄存器间接寻址:
有效地址存放在寄存器中,即IP寄存器内容;
l存储单元间接寻址:
有效地址存放在存储单元中,即IP字存储单元内容;
l要计算出存储单元的物理地址,再从该地址处取一个字送到IP。
段内间接转移指令【例】JMPBX解:
若该指令执行前BX4500H;
则指令执行时,将当前IP修改成4500H;
程序转向段内偏移地址为4500H处执行。
【例】JMPWORDPTR5BX解:
设指令执行前,DS2000H,BX100H,(20105H)04F0H;
则指令执行后,IP(20000H+100H+5H)(20105H)04F0H;
转到代码段内偏移地址为04F0H处执行。
JMP无条件转移指令段间直接(远)转移指令格式JMPFAR标号特点用远标号直接给出了转向的段地址和偏移量,即IP标号的段内偏移量CS标号所在段的段地址段间直接(远)转移指令【例】JMPFARPTRPROG_F解:
设标号PROG_F所在段的基地址3500H,偏移地址080AH;
则指令执行后,IP080AH,CS3500H;
程序转到3500:
080AH处执行。
JMP无条件转移指令段间间接转移指令格式JMPDWORDPTR存储单元特点目的地址的段地址和偏移量放在存储器中的4个连续地址单元中:
前两个字节为偏移量;
后两个字节为段地址。
指令中给出存放目标地址的存储单元的首字节地址值;
段间间接转移指令【例】JMPDWORDPTRSI+0125H设指令执行前:
CS1200H,IP05H,DS2500H,SI1300H;
内存单元(26425H)4500H,(26427H)32F0H。
目的操作数地址DS16SIDISP25000H1300H0125H26425H从单元中取出转移地址,赋与IP和CS:
IP4500H,CS32F0H;
程序转到32F0:
4500H处执行。
过程调用及返回指令过程:
程序中能完成特定功能而又独立的模块,也称子程序。
过程嵌套:
在过程运行中又去调用另一个过程。
过程调用和返回指令的格式:
CALL过程名RET近过程调用:
调用指令CALL和被调用的过程在同一代码段中。
远过程调用:
两者在不同代码段中。
CALL过程调用指令CALL过程调用指令(Call)格式Call过程名功能将当前主程序的返回地址压入堆栈保存,转到子程序入口地址执行子程序。
近调用时:
IP入栈;
远调用时,CS和IP入栈。
RET过程返回指令RET过程返回指令(Return)格式RET。
功能从堆栈中弹出返回地址,使程序返回主程序继续执行。
l如果从近过程返回:
从栈中弹出一个字IP,并且使SPSP+2。
l如果从远过程返回:
先从栈中弹出一个字IP,并且使SPSP+2;
再从个字栈中弹出一个字CS,并使SPSP+2。
RETn过程返回指令RETn过程返回指令(Return)格式RE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自制 PPT 讲义 微机 原理 课件