最新微机原理第06次课第03章3NEWPPT课件

上传人:博****1 文档编号:569191021 上传时间:2024-07-28 格式:PPT 页数:75 大小:773.50KB
返回 下载 相关 举报
最新微机原理第06次课第03章3NEWPPT课件_第1页
第1页 / 共75页
最新微机原理第06次课第03章3NEWPPT课件_第2页
第2页 / 共75页
最新微机原理第06次课第03章3NEWPPT课件_第3页
第3页 / 共75页
最新微机原理第06次课第03章3NEWPPT课件_第4页
第4页 / 共75页
最新微机原理第06次课第03章3NEWPPT课件_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《最新微机原理第06次课第03章3NEWPPT课件》由会员分享,可在线阅读,更多相关《最新微机原理第06次课第03章3NEWPPT课件(75页珍藏版)》请在金锄头文库上搜索。

1、微机原理第微机原理第0606次课第次课第0303章章-3-3-NEWNEW微机原理及应用微机原理及应用微机原理及应用微机原理及应用串操作类指令 串操作指令就是用一条指令实现对一串字符或数据的串操作指令就是用一条指令实现对一串字符或数据的操作。操作。 它主要由以下几种指令组成:一、字符串传送指令:一、字符串传送指令:MOVSB/MOVSWMOVSB/MOVSW二、字符串比较指令:二、字符串比较指令:CMPSB/CMPSWCMPSB/CMPSW三、字符串检索指令:三、字符串检索指令:SCASB/SCASWSCASB/SCASW四、取字符串指令:四、取字符串指令:LODSB/LODSWLODSB/L

2、ODSW 五、存字符串指令:五、存字符串指令:STOSB/STOSWSTOSB/STOSW返回返回串操作类指令特点微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用微机原理及应用怎样编写程序?DATA SEGMENTDATA ENDSEXTRA SEGMENTEXTRA

3、ENDSCODE SEGMENTCODE ENDS ASSUME CS:CODE,DS:DATA,ES:EXTRA MOV AX , DATA MOV DS , AX MOV AX , EXTRA MOV ES , AX BUFFER1 DB Hello, everybody! BUFFER2 DB 17 DUP(?)LEA SI , BUFFER1LEA DI , BUFFER2MOV CX , 17CLDREP MOVSBSTA:END STA返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用字符串传送指令指令格式: MOVS DST, SRC ; (DI) (SI) 字节字

4、节 MOVSB ; 字节字节 (DI) (DI) 1,(SI) (SI) 1 MOVSW ; 字字 (DI) (DI) 2,(SI) (SI) 2指令功能:把把DSDS段由段由SISI指出的字节或字传送到指出的字节或字传送到ESES段由段由DIDI指出存储单元中,并修改指出存储单元中,并修改SISI和和DIDI地址指针。地址指针。MOVSBMOVSB完成完成字节操作,字节操作,MOVSWMOVSW完成字操作,通常指令前面加重复前缀完成字操作,通常指令前面加重复前缀REPREP,数据串长度送,数据串长度送CXCX寄存器。寄存器。指令说明指令说明返回返回微机原理及应用微机原理及应用微机原理及应用微

5、机原理及应用字符串传送指令说明用用CLDCLD指令将指令将DFDF清零,地址指针自动加清零,地址指针自动加(MOVSB(MOVSB1 MOVSW 1 MOVSW 2)2)增址增址用用STDSTD指令将指令将DFDF置置1 1,地址指针自动减,地址指针自动减(MOVSB(MOVSB1 MOVSW 1 MOVSW 2)2)减址减址第二、三种格式明确地注明是传送字节或字,隐含了两第二、三种格式明确地注明是传送字节或字,隐含了两个操作数的地址。第一种格式则应在操作数明确是字还个操作数的地址。第一种格式则应在操作数明确是字还是字节操作,如:是字节操作,如: MOVS ES:BYTE PTRDI, DS:

6、SI MOVS ES:BYTE PTRDI, DS:SI 微机原理及应用微机原理及应用微机原理及应用微机原理及应用串传送指令例用串传送指令实现用串传送指令实现200B200B数据的传送:数据的传送: LEA SI,MEM1 LEA DI,MEM2 MOV CX,200 CLD REP MOVSB HLT返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用字符串比较指令指令格式:指令格式: CMPS DST, SRC ; (DI) (SI) 字节字节 CMPSB ; 字节字节 (DI) (DI) 1,(SI) (SI) 1 CMPSW ; 字字 (DI) (DI) 2,(SI) (S

7、I) 2指令功能:指令功能:把把DSDS段由段由SISI指出的字节或字和指出的字节或字和ESES段由段由DIDI指出指出的字或字节相比较,并比较后修改的字或字节相比较,并比较后修改SISI和和DIDI地址指针。指地址指针。指令影响标志位,利用重复前缀可实现在两个字符串中寻令影响标志位,利用重复前缀可实现在两个字符串中寻找第一个不等的元素或第一个相等的元素。找第一个不等的元素或第一个相等的元素。指令说明指令说明返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用字符串比较指令说明指令前缀有以下三种形式:指令前缀有以下三种形式: (1)REP 重复重复 (2)REPZ/REPE 相等相

8、等/为零则重复为零则重复 (3)REPNZ/REPNE 不相等不相等/不为零则重不为零则重复复微机原理及应用微机原理及应用微机原理及应用微机原理及应用串比较指令例 比较两个字符串是否相等,并找出其中第一个不相等字符比较两个字符串是否相等,并找出其中第一个不相等字符的首地址,将该地址送到的首地址,将该地址送到BXBX中,不想等字符送到中,不想等字符送到ALAL中。设中。设MEM1MEM1为源串首地址,为源串首地址,MEN2MEN2为目的串首地址,两个字串长度为目的串首地址,两个字串长度均为均为200200。LEA SI,MEM1LEA DI,MEM2MOV CX,200CLD REPE CMPS

9、B TEST CX,00FFH JZ STOP DEC SI MOV AL,SI MOV BX,SISTOP:HLT 返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用字符串检索指令指令格式:指令格式: SCAS DST ; SCASB ; 字节字节 (AL ) (DI) ,(DI) (DI) 1 SCASW ; 字字 (AX) (DI) ,(DI) (DI) 2指令功能:指令功能:用用ALAL中的字节或中的字节或AXAX中的字,与位于中的字,与位于ESES段段由由DIDI寄存器指出内存单元的字节或字相比较。通过前寄存器指出内存单元的字节或字相比较。通过前缀控制,可以实现缀控制,

10、可以实现ALAL中的字节或中的字节或AXAX中的字与内存单元中的字与内存单元相等或不等的比较。相等或不等的比较。指令说明指令说明返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用字符串检索指令说明指令指令REPNZ SCASBREPNZ SCASB有以下两种退出情况:有以下两种退出情况: (1 1)字符串中某字节与)字符串中某字节与ALAL中的字节相等,从中的字节相等,从而退出。而退出。 (2 2)字符串中没有字节与)字符串中没有字节与ALAL中的字节相等,中的字节相等,但检索完毕,从而退出。可通过但检索完毕,从而退出。可通过ZFZF检测来判断检测来判断当前处于哪种情况,当前处于

11、哪种情况,ZF=1ZF=1,为前一种情况,为前一种情况,ZF=0ZF=0,为后一种情况,为后一种情况,ZFZF与与CXCX无关。无关。返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用取字符串指令指令格式:指令格式: LODS SRC ; LODSB ; 字节字节 (AL) (SI) ,(SI) (SI) 1 LODSW ; 字字 (AX) (SI) ,(SI) (SI) 2指令功能:指令功能:将位于将位于DSDS段由段由SISI寄存器指出内存单元的寄存器指出内存单元的内容取到内容取到ALAL或或AXAX中。中。返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用存字

12、符串指令指令格式:指令格式: STOS DST ; STOSB ; 字节字节 (AL) (DI) ,(DI) (DI) 1 STOSW ; 字字 (AX) (DI) ,(DI) (DI) 2指令功能:指令功能:把把ALAL中的字节或中的字节或AXAX中的字,存到中的字,存到ESES段由段由DIDI寄存器指出内存单元,并自动修改地址指针。加上寄存器指出内存单元,并自动修改地址指针。加上前缀前缀REPREP后,可使一串内存单元中填满相同的数。后,可使一串内存单元中填满相同的数。返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用控制类指令此类指令主要由以下几部分组成:此类指令主要由以下

13、几部分组成:一、一、子程序调用和返回指令子程序调用和返回指令二、二、无条件转移和条件转移指令无条件转移和条件转移指令三、三、循环控制指令循环控制指令四、四、中断控制指令中断控制指令五、五、处理器控制指令处理器控制指令返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用子程序调用和返回指令子程序结构相当于高级语言中的过程。为子程序结构相当于高级语言中的过程。为了方便模块化程序设计,往往把程序中某了方便模块化程序设计,往往把程序中某些具有独立功能的部分编写成独立的程序些具有独立功能的部分编写成独立的程序模块,称之为程序。子程序调用和返回指模块,称之为程序。子程序调用和返回指令都不影响标

14、志位。令都不影响标志位。一、一、子程序调用指令:子程序调用指令:CALL CALL 二、二、子程序返回指令:子程序返回指令:RETRET返回返回指令说明:微机原理及应用微机原理及应用微机原理及应用微机原理及应用调用指令的执行过程将调用指令的下一条指令的地址(断点)压入将调用指令的下一条指令的地址(断点)压入堆栈堆栈获取子过程的入口地址(子过程第获取子过程的入口地址(子过程第1 1条指令的条指令的偏移地址)偏移地址)(执行子过程,含相应参数的保存及恢复)(执行子过程,含相应参数的保存及恢复)将断点偏移地址由堆栈弹出,返回原程序将断点偏移地址由堆栈弹出,返回原程序返回返回微机原理及应用微机原理及应

15、用微机原理及应用微机原理及应用子程序调用指令该类指令提供了子程序内直接调用指令、段内该类指令提供了子程序内直接调用指令、段内间接调用指令、段间直接调用指令和段间间接间接调用指令、段间直接调用指令和段间间接调用指令。调用指令。 一、一、段内直接调用段内直接调用 二、二、段内间接调用段内间接调用 三、三、段间直接调用段间直接调用 四、四、段间间接调用段间间接调用 指令说明指令说明返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用段内直接调用指令格式:CALL DST ; (SP) (SP)-2, (SP)-2, (SP)-1) (IP) (IP) (IP)+16位偏移量位偏移量例如:

16、 CALL 1000H ; 段内直接调用,调用地址段内直接调用,调用地址 在指令中给出在指令中给出返回返回l子过程与原调用程序在同一代码段,在调用子过程与原调用程序在同一代码段,在调用之前只需保护断点的偏移地址之前只需保护断点的偏移地址微机原理及应用微机原理及应用微机原理及应用微机原理及应用段内间接调用指令格式:CALL DST ; (SP) (SP)-2, (SP)-2, (SP)-1) (IP) (IP) (EA)例如: CALL AX ; ; 段内间接调用,调用地址段内间接调用,调用地址 由由AXAX给出。给出。(IP) (AX)返回返回l子过程与原调用程序在同一代码段,在调用子过程与原

17、调用程序在同一代码段,在调用之前只需保护断点的偏移地址之前只需保护断点的偏移地址微机原理及应用微机原理及应用微机原理及应用微机原理及应用段间直接调用指令格式:CALL DST ; (SP) (SP)-2, (SP)-2, (SP)-1) (CS)段地址段地址 (SP) (SP)-2, (SP)-2, (SP)-1) (IP)偏移地址偏移地址 例如: CALL 2500:3600 ; ; 段间直接调用,调用段地段间直接调用,调用段地 址和偏移量在指令中给出址和偏移量在指令中给出返回返回l子过程与原调用程序不在同一代码段,子过程与原调用程序不在同一代码段,在调用之前在调用之前需保护断点的段基地址和

18、偏移地址。先将断点的需保护断点的段基地址和偏移地址。先将断点的CSCS压栈,再压入压栈,再压入IPIP微机原理及应用微机原理及应用微机原理及应用微机原理及应用段间间接调用指令格式:指令格式:CALL DST ;CALL DST ; (SP) (SP)-2, (SP)-2, (SP)-1) (CS) (SP) (SP)-2, (SP)-2, (SP)-1) (IP) (IP) (EA) 寻址方式确定的有效地址寻址方式确定的有效地址 (CS) (EA+2) 例如:例如: CALL DWORD PTRDI ; ; 段间间接调用,指令给段间间接调用,指令给出出 调用段地址和偏移量的存调用段地址和偏移量

19、的存 放地址放地址微机原理及应用微机原理及应用微机原理及应用微机原理及应用示例设设(DS)=6000H,( (SI)=0560H,指令指令 CALL DWORD PTRDI 的操作示意图的操作示意图XXHXXHXXHXXHIPCSCALL 代代码码段段数数据据段段60560H返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用子程序调用指令说明调用指令在执行时,会把下一条指令的地址推入堆栈,这个地址叫返回地址。在段内调用的情况下,只把返回地址的偏移量推入堆栈,在段间调用的情况下,把返回地址的段地址和偏移量都推入堆栈。返回返回断点断点入口入口地址地址微机原理及应用微机原理及应用微机原

20、理及应用微机原理及应用子程序返回指令该指令有以下两条:该指令有以下两条: 一、一、子程序返回指令:子程序返回指令:RETRET 二、二、带参数的返回指令:带参数的返回指令:RET nRET n 所有返回指令都不影响标志位所有返回指令都不影响标志位返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用子程序返回指令:RET指令格式:指令格式:RET ; (IP) (SP)+1, (SP) (SP) (SP)+2指令说明:指令说明:返回指令返回指令RETRET作为子程序的最后一作为子程序的最后一条指令用来返回高一层的程序。执行时,会从条指令用来返回高一层的程序。执行时,会从堆栈顶部弹出返

21、回地址出栈送堆栈顶部弹出返回地址出栈送IPIP寄存器寄存器 ( (段内段内或段间或段间) )和和CSCS寄存器寄存器( (段间段间) )。80868086指令系统中,指令系统中,段内返回指令和段间返回指令形式是一样的。段内返回指令和段间返回指令形式是一样的。不影响标志位。不影响标志位。 返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用带参数的返回指令:RET n指令格式:指令格式:RET EXP ; (IP) (SP)+1, (SP) (SP) (SP)+2 (SP) (SP)+D16指令说明:指令说明:EXPEXP是一个表达式,根据它的值计算出常数为是一个表达式,根据它的值计

22、算出常数为指令中的位移量指令中的位移量n n。n n可以表示为可以表示为0FFFFH0FFFFH范围中的任何一范围中的任何一个偶数。个偶数。应用范围:应用范围:主程序为某个子程序提供一定的参数或参数主程序为某个子程序提供一定的参数或参数地址,在进入子程序之前,主程序将这些参数或参数的地址,在进入子程序之前,主程序将这些参数或参数的地址压入堆栈中,通过堆栈供子程序调用,子程序使用地址压入堆栈中,通过堆栈供子程序调用,子程序使用后,这些参数已无使用价值,堆栈中不需要保存这些参后,这些参数已无使用价值,堆栈中不需要保存这些参数,因而在返回指令数,因而在返回指令RETRET中提供参数中提供参数n n在

23、返回同时堆栈指在返回同时堆栈指针自动增加几个字节,以去掉堆栈中的几个字节。针自动增加几个字节,以去掉堆栈中的几个字节。返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用无条件转移和条件转移指令一、一、无条件转移指令无条件转移指令 无条件转移到目标地址,执行新的指令无条件转移到目标地址,执行新的指令二、二、条件转移指令条件转移指令 在具备一定条件的情况下转移到目标地址在具备一定条件的情况下转移到目标地址返回返回通过修改指令的通过修改指令的偏移地址偏移地址或或段地址及偏移地址段地址及偏移地址实实现程序的转移现程序的转移微机原理及应用微机原理及应用微机原理及应用微机原理及应用无条件转移

24、指令:JMP指令功能:指令功能: 无条件转移指令可以转移到内存中存放的任何程序段。无条件转移指令可以转移到内存中存放的任何程序段。指令必须指定转移的目标地址(或称转移地址)。无指令必须指定转移的目标地址(或称转移地址)。无条件转移指令条件转移指令不影响标志位不影响标志位。指令分类:指令分类: 段内转移和段间转移。段内转移只须改变段内转移和段间转移。段内转移只须改变IPIP寄存器的寄存器的内容,用新的转移目标地址代替原有的内容,用新的转移目标地址代替原有的IPIP的值就可以。的值就可以。段间则转到另一段去执行程序,因此,不仅要修改段间则转到另一段去执行程序,因此,不仅要修改IPIP寄存器的内容,

25、而且还要修改寄存器的内容,而且还要修改CSCS寄存器的内容。寄存器的内容。指令格式指令格式返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用无条件转移指令格式指令格式:指令格式:JMP LABEL (1) (1) 段内直接短转移:段内直接短转移:格式:格式:JMP SHORT OPR ; ; (IP) (IP) (IP)+8(IP)+8位移量位移量 ; 8 ; 8位移量是一个带符号位移量是一个带符号 数,转移范围在数,转移范围在 128-+127 128-+127 例如:例如:JMP SHORT 10H ; JMP SHORT 10H ; 转移地址偏移量在指令转移地址偏移量在指令

26、 中给出中给出 (2)(2)段内直接近转移:段内直接近转移:格式:格式:JMP NEAR PTR OPRJMP NEAR PTR OPR (IP) (IP) (IP)+16(IP)+16位移量位移量;16;16位移量是一个带符号位移量是一个带符号 数,转移范围在段内任意位置数,转移范围在段内任意位置 例如例如:JMP 1000H JMP 1000H ;段内直接转移,转移地址偏;段内直接转移,转移地址偏移量在指令中给出移量在指令中给出返回返回下一页下一页微机原理及应用微机原理及应用微机原理及应用微机原理及应用无条件转移指令格式 (3) (3) 段内间接转移:段内间接转移:格式:格式:JMP WO

27、RD PTR OPR ;JMP WORD PTR OPR ; (IP) (IP) (EA);(EA); EA EA值由值由OPROPR的寻址方式确定。的寻址方式确定。 它可以使用除立即数以外的任一种寻址方式。它可以使用除立即数以外的任一种寻址方式。 例如:例如:JMP CX ; JMP CX ; 段内间接转移,转移地址偏移段内间接转移,转移地址偏移 量由量由CXCX给出给出(4) (4) 段间直接段间直接( (远远) )转移转移 :格式:格式:JMP FAR PTR OPR ;JMP FAR PTR OPR ; (IP) OPR (IP) OPR的段内偏移地址的段内偏移地址; (CS) OPR

28、; (CS) OPR所在所在 段的段地址段的段地址例如:例如:JMP 2000:0100H ; JMP 2000:0100H ; 段间直接转移,转移段段间直接转移,转移段 地址和偏移量在指令中给出地址和偏移量在指令中给出返回返回下一页下一页微机原理及应用微机原理及应用微机原理及应用微机原理及应用无条件转移指令格式(5) (5) 段间间接转移:段间间接转移: 格式:格式:JMP DWORD PTR OPR ;JMP DWORD PTR OPR ; (IP) (EA) (CS) (EA+2) (IP) (EA) (CS) (EA+2) EA EA值由值由OPROPR的寻址方式确定。它可以使用除立即

29、数以外的寻址方式确定。它可以使用除立即数以外的任一种寻址方式。的任一种寻址方式。例如:例如:JMP DWORD PTRSI JMP DWORD PTRSI 段间间接转移,转移地址在段间间接转移,转移地址在SISI,SI+1SI+1,SI+2SI+2,SI+3SI+3所指的内存单元中,前两个字节为偏移量,后两个所指的内存单元中,前两个字节为偏移量,后两个字节为段地址。字节为段地址。 返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用条件转移指令条件转移指令是以某一个标志位的值或者某几个标志条件转移指令是以某一个标志位的值或者某几个标志位的值作为判断是否进行转移的依据,如果满足要求位

30、的值作为判断是否进行转移的依据,如果满足要求则转移,否则执行后续指令。则转移,否则执行后续指令。条件转移指令可以分为以下几大类:条件转移指令可以分为以下几大类: 一、一、根据单个条件标志的设置情况转移根据单个条件标志的设置情况转移 二、二、比较两个无符号数比较两个无符号数 三、三、比较两个带符号数比较两个带符号数 四、四、CXCX寄存器值判断寄存器值判断 指令说明指令说明返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用单个条件标志转移指令指令格式:指令格式: JZ/JE OPR ; 结果为结果为0 0或相等,则转移或相等,则转移 ZF=1 JNZ/JNE OPR ;结果不为结果

31、不为0 0或不相等,则转移或不相等,则转移ZF=0 JS OPR ; 结果为负,则转移结果为负,则转移 SF=1 JNS OPR ; 结果为正,则转移结果为正,则转移 SF=0 JO OPR; 溢出,则转移溢出,则转移 OF=1 返回返回下一页下一页微机原理及应用微机原理及应用微机原理及应用微机原理及应用单个条件标志转移指令 JNO OPR ; 不溢出,则转移不溢出,则转移 OF=0 JP/JPE OPR ; 奇偶位为奇偶位为1 1,则转移,则转移 PF=1 JNP/JPO OPR ; 奇偶位为奇偶位为0 0,则转移,则转移 PF=0 JB/JNAE/JC OPR ; 低于低于( (不高于也不

32、等于不高于也不等于) )或或 进位为进位为1 1,则转移,则转移 CF=1 JNB/JAE/JNC OPR ; 不低于不低于( (高于或等于高于或等于) )或进或进 位为位为0 0,则转移,则转移 CF=0返回返回上一页上一页微机原理及应用微机原理及应用微机原理及应用微机原理及应用比较两个无符号数指令格式:指令格式: JB/JNAE/JC OPR ; 低于,不高于也不等于,或进低于,不高于也不等于,或进 位为位为1 1,则转移,则转移 CF=1 JNB/JAE/JNC OPR ; 不低于,高于或等于,或进位为不低于,高于或等于,或进位为 0 0,则转移,则转移 CF=0 JBE/JNA OPR

33、 ; 低于或等于,不高于,则转移低于或等于,不高于,则转移 CF=1或或ZF=1 JNBE/JA OPR ; 不低于也不等于,高于,则转移不低于也不等于,高于,则转移 CF=0且且ZF=0返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用比较两个带符号数指令格式:指令格式: JL/JNGE OPR ; 小于,不大于也不等于,则转移小于,不大于也不等于,则转移 SF OF=1且且ZF=0 JNL/JGE OPR ; 不小于,大于或等于,则转移不小于,大于或等于,则转移 SF OF=0或或ZF=1 JLE/JNG OPR ; 小于或等于,不大于,则转移小于或等于,不大于,则转移 (S

34、F OF)或或ZF=1 JNLE/JG OPR ; 不小于也不等于,大于,则转移不小于也不等于,大于,则转移 (SF OF)且且ZF=0返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用CX寄存器值判断指令格式:指令格式: JCXZ OPR ; JCXZ OPR ; 根据根据CXCX内容修改情况产生不内容修改情况产生不 同的分支。同的分支。CXCX值为值为0 0,则转移,则转移 返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用条件转移指令说明指令说明:指令说明: (1 1)所有条件转移指令都是相对转移形式,)所有条件转移指令都是相对转移形式,-128-+127-1

35、28-+127范围。范围。 (2 2)比较两个数的大小后转移,要看是有符)比较两个数的大小后转移,要看是有符号数还是无符号数。无符号数用号数还是无符号数。无符号数用“高于高于”和和“低于低于”来判断,有符号数用来判断,有符号数用“大于大于”和和“小于小于”来判断。来判断。 (3 3)大部分可以用两种助记符表示。)大部分可以用两种助记符表示。微机原理及应用微机原理及应用微机原理及应用微机原理及应用调用指令与转移指令的比较用于调用一个子过程用于调用一个子过程调用前须保护断点地址调用前须保护断点地址子过程执行结束后要返回原调用处继续子过程执行结束后要返回原调用处继续执行原程序执行原程序断点恢复断点恢

36、复返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用循环控制指令指令所控制的目的地址都是指令所控制的目的地址都是-128-+127-128-+127范围内,循环次数由范围内,循环次数由CXCX寄存器指定。该寄存器指定。该类指令主要有以下三种:类指令主要有以下三种: 一、一、LOOPLOOP循环指令循环指令 二、二、LOOPZ/LOOPELOOPZ/LOOPE指令指令 三、三、LOOPNZ/LOOPNELOOPNZ/LOOPNE指令指令返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用无条件循环指令LOOP指令格式:指令格式: LOOP LABEL ;指令功能:指令功

37、能: 先将先将CX的内容减的内容减1,再判断,再判断CX中是否为中是否为0,为,为0则退出,否则循环。则退出,否则循环。操作:操作: DEC CX JNZ 符号地址符号地址 返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用条件循环指令LOOPZ/LOOPE指令格式:指令格式: LOOPZ/LOOPE OPR ;指令功能:指令功能:先将先将CXCX的内容减的内容减1 1,再判断,再判断CXCX中是中是否为否为0 0,并且判断,并且判断ZFZF是否为是否为1 1。如果。如果ZF=0ZF=0,或,或CX=0CX=0,则退出;只有在,则退出;只有在ZF=1ZF=1并且并且CX0CX0情

38、况下,情况下,才继续循环。才继续循环。指令说明:指令说明:(1 1)CXCX中的值为中的值为0 0时,并不会影响时,并不会影响标志位标志位ZFZF,ZFZF由前面其它指令来决定由前面其它指令来决定 (2 2)该指令可用于查找相等的情况。)该指令可用于查找相等的情况。返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用条件循环指令LOOPNZ/LOOPNE指令格式:指令格式: LOOPNZ/LOOPNE OPR ;指令功能:指令功能:先将先将CXCX的内容减的内容减1 1,再判断,再判断CXCX中是中是否为否为0 0,并且判断,并且判断ZFZF是否为是否为1 1。如果。如果ZF=0,

39、ZF=0,并且并且CX=0CX=0,则继续循环;只有在,则继续循环;只有在CX=0CX=0,或,或ZF=1ZF=1情况情况下,则退出循环。下,则退出循环。指令说明:指令说明:(1 1)CXCX中的值为中的值为0 0时,并不会影响时,并不会影响标志位标志位ZFZF,ZFZF由前面其它指令来决定。由前面其它指令来决定。 (2 2)该指令用于查找不相等的情况。)该指令用于查找不相等的情况。返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用MOV AX,DATA1MOV BX,DATA2CMP AX,BXJL NEXT1MOV CX,AXJMP NEXT2NEXT1: MOV CX,BX

40、NEXT2: MOV AH,4CH INT 21Hv下面程序的功能是什么?下面程序的功能是什么?微机原理及应用微机原理及应用微机原理及应用微机原理及应用中断控制指令一、一、一般中断指令:一般中断指令:INT nINT n二、二、溢出中断指令:溢出中断指令:INTOINTO三、三、中断返回指令:中断返回指令:IRETIRET思考思考: :中断与过程调用的区别中断与过程调用的区别? ?返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用中断指令中断与过程调用:中断与过程调用:中断是随机事件或异常事件引起,调用则是事中断是随机事件或异常事件引起,调用则是事先已在程序中安排好先已在程序中安

41、排好 响应中断请求不仅要保护断点地址,还要保护响应中断请求不仅要保护断点地址,还要保护FLAGSFLAGS内容内容调用指令在指令中直接给出子程序入口地址,调用指令在指令中直接给出子程序入口地址,中断指令只给出中断向量码,入口地址则在向中断指令只给出中断向量码,入口地址则在向量码指向的内存单元中量码指向的内存单元中返回返回P150微机原理及应用微机原理及应用微机原理及应用微机原理及应用INT n 中断指令指令格式:指令格式: INT n执行的操作:执行的操作: (SP) (SP)-2 (SP)+1,(SP) (PSW) (SP) (SP)-2 (SP)+1,(SP) (CS) (SP) (SP)

42、-2 (SP)+1,(SP) (IP) (IP) (n*4) (CS) (n*4+2) 指令说明:指令说明:指令在执行完以上操作后,再把指令在执行完以上操作后,再把IFIF和和TFTF位位置置0 0,但不影响其余的标志位。,但不影响其余的标志位。中断类型码中断类型码n=0 n=0 255 255P149微机原理及应用微机原理及应用微机原理及应用微机原理及应用中断指令n4 =n4 =存放中断服务子程序入口地址的单元地存放中断服务子程序入口地址的单元地址址n 4 XXHXXHXXHXXH入口偏移地址入口偏移地址IPIP入口段地址入口段地址CSCS操作总结:操作总结:将将FLAGSFLAGS压入堆栈

43、压入堆栈将将INTINT指令下一条指令的指令下一条指令的CSCS、IPIP压栈压栈取中断服务程序入口地址取中断服务程序入口地址 微机原理及应用微机原理及应用微机原理及应用微机原理及应用中断指令例INT 21HIPLIPHCSLCSHSP=1200FLAGSLFLAGSHSP=11FA执行执行INTINT指令后指令后保护断点保护断点微机原理及应用微机原理及应用微机原理及应用微机原理及应用中断指令例执行执行INT 21HINT 21H指令后指令后 IP= IP=? CS= CS=?21H4=0084H 23H11H00H20HIP CS返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应

44、用溢出中断指令指令格式: INTO 相当于 INT 4执行的操作: (SP) (SP)-2 (SP)+1,(SP) (PSW) (SP) (SP)-2 (SP)+1,(SP) (CS) (SP) (SP)-2 (SP)+1,(SP) (IP) (IP) (10H) (CS) (12H)返回返回l若若OF=1,OF=1,则启动一个类型为则启动一个类型为4 4的中断过程的中断过程, ,给出一个出给出一个出错标志错标志, ,如果如果OF=0,OF=0,不做任何操作。不做任何操作。lINTOINTO指令通常安排在有符号数加减运算指令之后。指令通常安排在有符号数加减运算指令之后。微机原理及应用微机原理及

45、应用微机原理及应用微机原理及应用中断返回指令指令格式:指令格式: IRET执行的操作:执行的操作: (IP) (SP)+1,(SP) (SP) (SP)+2 (CS) (SP)+1,(SP) (SP) (SP)+2 (PSW) (SP)+1,(SP) (SP) (SP)+2指令说明:指令说明:中断服务程序的最后一条指令,负中断服务程序的最后一条指令,负责恢复断点和标志寄存器内容。该指令的标志责恢复断点和标志寄存器内容。该指令的标志位由堆栈中取出的值来设置。位由堆栈中取出的值来设置。返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用处理器控制指令该类指令主要有以下两大类指令组成:

46、一、一、标志操作指令标志操作指令 二、二、其他处理器控制指令其他处理器控制指令返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用标志操作指令标志操作指令由以下三种指令组成: 一、一、进位标志进位标志CFCF操作指令操作指令 二、二、方向标志方向标志DFDF操作指令操作指令 三、三、中断允许标志中断允许标志IFIF操作指令操作指令返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用进位标志CF操作指令指令组成:指令组成: (1 1)STCSTC进位位置进位位置1 1指令:指令: CF 1 CF 1 (2 2)CLCCLC进位位置进位位置0 0指令:指令:CF 0CF 0

47、 (3 3)CMCCMC进位位求反指令:进位位求反指令: CF CF CF CF指令说明:指令说明:用在多字节或字运算中,用来传递低位向高位用在多字节或字运算中,用来传递低位向高位的进位,的进位,STCSTC置置1 1,CLCCLC清清0 0,CMCCMC求反。求反。返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用方向标志DF操作指令指令组成: STDSTD方向标志位置方向标志位置1 1指令:指令:DF 1DF 1 CLD CLD方向标志位置方向标志位置0 0指令:指令:DF 0DF 0指令说明:执行串操作指令过程中,决定字符执行串操作指令过程中,决定字符地址的修改方向。地址的

48、修改方向。STDSTD置置1 1:字符地址减量修改,:字符地址减量修改,CLDCLD置置0 0:字符地址增量修改。:字符地址增量修改。返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用中断允许标志IF操作指令指令组成: STI STI中断标志位置中断标志位置1 1指令:指令:IF 1IF 1 CLI CLI中断标志位置中断标志位置0 0指令:指令:IF 0IF 0指令说明: STI STI置置1 1,开放中断;,开放中断;CLICLI清清0 0,屏蔽外部中断,屏蔽外部中断。返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用其他处理器控制指令一、一、暂停指令暂停指令二

49、、二、交权指令交权指令三、三、等待指令等待指令四、四、总线封锁指令总线封锁指令返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用暂停指令指令格式: HLT指令说明: 该指令经常和中断过程联系在一起,常用于外该指令经常和中断过程联系在一起,常用于外部硬件中断。部硬件中断。返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用交权指令指令格式: ESC指令说明: 在带协处理器的系统中,程序中的交权指令表在带协处理器的系统中,程序中的交权指令表示示80868086调用协处理器工作。调用协处理器工作。返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用等待指令指令格

50、式: WAIT指令说明: 该指令一般是和该指令一般是和ESCESC指令配合使用。指令配合使用。80868086用用ESCESC指令使协处理器工作以后,自己还可以执行一指令使协处理器工作以后,自己还可以执行一些其他操作,此时处于并行工作状态。要取回些其他操作,此时处于并行工作状态。要取回协处理器的处理结果。可安排一条等待指令协处理器的处理结果。可安排一条等待指令WAITWAIT指令过程中,不断测试指令过程中,不断测试CPUCPU的的TESTTEST引腿上引腿上的信号。的信号。返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用总线封锁指令指令格式: LOCK指令说明: 该指令可以放在

51、任何一条指令的前面,该指令可以放在任何一条指令的前面,LOCKLOCK实际上是一实际上是一个指令前缀。个指令前缀。LOCKLOCK前缀用在前缀用在80868086最大模式中,在硬件上最大模式中,在硬件上将将CPUCPU的的LOCKLOCK引腿与总线控制器引腿与总线控制器82898289的的LOCKLOCK输入端相连,输入端相连,用了指令前缀用了指令前缀LOCKLOCK以后,以后,CPUCPU在执行前缀后面的一条指在执行前缀后面的一条指令时,会从令时,会从LOCKLOCK引腿往外送引腿往外送1 1个低电平信号,个低电平信号,CPUCPU访问存访问存储器或外设时,总线控制器会对总线实行封锁,使其他

52、储器或外设时,总线控制器会对总线实行封锁,使其他处理器得不到总线控制权,不能访问存储器或外设。处理器得不到总线控制权,不能访问存储器或外设。返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用结束语第3章掌握:指令的格式及意义指令对操作数的要求及对标志位的影响指令的应用返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用实验操作步骤在在MS-DOS下,用下,用Edit命令进入编辑状态,完成所命令进入编辑状态,完成所编写程序的输入。编写程序的输入。程序编写完成后,将文件保存为程序编写完成后,将文件保存为xx.asm,并退出编,并退出编辑状态。辑状态。用用masm命令对所编

53、写的程序进行编译,格式如下:命令对所编写的程序进行编译,格式如下: masm xx; 回车回车 用用link命令对所编写的程序进行连接,格式如下:命令对所编写的程序进行连接,格式如下: link xx; 回车回车运行程序命令格式如下:运行程序命令格式如下: xx; 回车回车 微机原理及应用微机原理及应用微机原理及应用微机原理及应用实验操作步骤用用debug 命令对所编写的程序进行调试,格式如下:命令对所编写的程序进行调试,格式如下: debug xx.exe 回车回车 常用的常用的debug命令:命令: “T”回车,单步运行程序并显示寄存器状态。回车,单步运行程序并显示寄存器状态。 “R”回车

54、,显示各寄存器内容。回车,显示各寄存器内容。 “DDS:XX”回车,察看数据段中偏移量为回车,察看数据段中偏移量为XXH的内存单元中的内容。的内存单元中的内容。 “U”回车,反汇编当前机器码,也就是显示待执行的汇编语句。回车,反汇编当前机器码,也就是显示待执行的汇编语句。 “G XX”回车,执行内存中的可执行代码,直到偏移量为回车,执行内存中的可执行代码,直到偏移量为XXH的代的代码为止。码为止。 “Q”回车,退出回车,退出DEBUG调试状态。调试状态。在提示符状态下输入在提示符状态下输入“Exit”命令,退出命令,退出DOS模式。模式。微机原理及应用微机原理及应用微机原理及应用微机原理及应用

55、实验一请在数据段中定义两个数,要求编写程请在数据段中定义两个数,要求编写程序分别计算出这两个数的和、差、积、序分别计算出这两个数的和、差、积、商,并用商,并用Debug的相关命令查询计算结的相关命令查询计算结果。果。学习使用Debug的相关命令 微机原理及应用微机原理及应用微机原理及应用微机原理及应用怎样编写程序?DATA SEGMENTDATA ENDSEXTRA SEGMENTEXTRA ENDSCODE SEGMENTCODE ENDS ASSUME CS:CODE,DS:DATA,ES:EXTRA MOV AX , DATA MOV DS , AX MOV AX , EXTRA MOV

56、 ES , AX BUFFER1 DB Hello, everybody! BUFFER2 DB 17 DUP(?)LEA SI , BUFFER1LEA DI , BUFFER2MOV CX , 17CLDREP MOVSBSTA:END STA返回返回微机原理及应用微机原理及应用微机原理及应用微机原理及应用怎样编写程序?DATA SEGMENTDATA ENDSEXTRA SEGMENTEXTRA ENDSCODE SEGMENTCODE ENDS ASSUME CS:CODE,DS:DATA,ES:EXTRA MOV AX , DATA MOV DS , AX MOV AX , EXTRA MOV ES , AX BUFFER1 DB 0AH BUFFER2 DB 0BHSTA:END STA返回返回: : : : :

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号