资源描述:
《微机原理第06次课第03章-3-NEW》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、8086指令系统传送类指令数据操作类指令串操作指令控制类指令本章要求串操作类指令串操作指令就是用一条指令实现对一串字符或数据的操作。它主要由以下几种指令组成:一、字符串传送指令:MOVSB/MOVSW二、字符串比较指令:CMPSB/CMPSW三、字符串检索指令:SCASB/SCASW四、取字符串指令:LODSB/LODSW五、存字符串指令:STOSB/STOSW返回串操作类指令特点串操作指令针对数据块或字符串的操作可实现存储器到存储器的数据传送待操作的数据串称为源串,目标地址称为目标串串操作指令是唯一的一组能直接处理源和目的操作数都在存储
2、单元的指令串操作指令的特点源串一般存放在数据段,偏移地址由SI指定。允许段重设目标串必须在附加段,偏移地址由DI指定指令自动修改地址指针,修改方向由DF决定。DF=0增地址方向;DF=1减地址方向数据块长度值由CX指定可增加自动重复前缀以实现自动修改CX内容串操作指令流程取源串地址取目标串地址设串长度传送一个字节或字修改地址指针修改串长度值传送完否?重复前缀REP无条件重复REPE相等重复REPZ为零重复REPNE不相等重复REPNZ不为零重复条件重复CX≠0ZF=1CX≠0ZF=0CX≠0重复串操作指令与重复前缀串操作指令前缀MOVSR
3、EPCMPSREPE/PEPZREPNE/REPNZSCASREPE/PEPZREPNE/REPNZLODSREPSTOSREP示例LEASI,BUFFER1LEADI,BUFFER2MOVCX,17CLDREPMOVSBLEASI,BUFFER1LEADI,BUFFER2MOVCX,17CLDAGAIN:MOVSBDECCXJNZAGAINLEASI,BUFFER1LEADI,BUFFER2MOVCX,17AGAIN:MOVAL,[SI]MOV[DI],ALINCSIINCDIDECCXJNZAGAINREP执行的操作:1)如(CX)=
4、0则退出REP,否则往下执行.2)(CX)=(CX)-13)执行其后的串指令4)重复1)~~3)编写程序实现:将BUFFER1中的17个数传送到BUFFER2中去。怎样编写程序?DATASEGMENTDATAENDSEXTRASEGMENTEXTRAENDSCODESEGMENTCODEENDSASSUMECS:CODE,DS:DATA,ES:EXTRAMOVAX,DATAMOVDS,AXMOVAX,EXTRAMOVES,AXBUFFER1DB‘Hello,everybody!’BUFFER2DB17DUP(?)LEASI,BUFFER1
5、LEADI,BUFFER2MOVCX,17CLDREPMOVSBSTA:ENDSTAOK!返回字符串传送指令指令格式:MOVSDST,SRC;(DI)(SI)字节MOVSB;字节(DI)(DI)±1,(SI)(SI)±1MOVSW;字(DI)(DI)±2,(SI)(SI)±2指令功能:把DS段由SI指出的字节或字传送到ES段由DI指出存储单元中,并修改SI和DI地址指针。MOVSB完成字节操作,MOVSW完成字操作,通常指令前面加重复前缀REP,数据串长度送CX寄存器。指令说明…返回字符串传送指令说明用CLD指令将DF清零,地址指针自动加
6、(MOVSB+1MOVSW+2)增址用STD指令将DF置1,地址指针自动减(MOVSB-1MOVSW-2)减址第二、三种格式明确地注明是传送字节或字,隐含了两个操作数的地址。第一种格式则应在操作数明确是字还是字节操作,如:MOVSES:BYTEPTR[DI],DS:[SI]串传送指令例用串传送指令实现200B数据的传送:LEASI,MEM1LEADI,MEM2MOVCX,200CLDREPMOVSBHLT返回字符串比较指令指令格式:CMPSDST,SRC;(DI)(SI)字节CMPSB;字节(DI)(DI)±1,(SI)(SI)±1CMP
7、SW;字(DI)(DI)±2,(SI)(SI)±2指令功能:把DS段由SI指出的字节或字和ES段由DI指出的字或字节相比较,并比较后修改SI和DI地址指针。指令影响标志位,利用重复前缀可实现在两个字符串中寻找第一个不等的元素或第一个相等的元素。指令说明…返回字符串比较指令说明指令前缀有以下三种形式:(1)REP重复(2)REPZ/REPE相等/为零则重复(3)REPNZ/REPNE不相等/不为零则重复串比较指令例比较两个字符串是否相等,并找出其中第一个不相等字符的首地址,将该地址送到BX中,不想等字符送到AL中。设MEM1为源串首地址,M
8、EN2为目的串首地址,两个字串长度均为200。LEASI,MEM1LEADI,MEM2MOVCX,200CLDREPECMPSBTESTCX,00FFHJZSTOPDECSIMOVAL,[SI