版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第2章 指令系统与寻址方式 2.1 指令的基本格式指令的基本格式 本节主要介绍指令的格式以及与指令相关的基本概念。 下图给出了计算机指令系统中每条指令的一般格式。其中OP表示操作码,Di表示操作数。一个符号“”表示一个机器位或二进制位。1. 指令系统:计算机所能执行的全部指令的集合(没有的需编程实现)。2. 等长指令系统与不等长指令系统 等长指令系统指所有的指令定为相同的长度,结构简单,可简化译码。 不等长指令系统,在读取可变长指令时,PC计数器在每次取指令后必根据指令的长度进行更新,速度慢,但这种指令格式可以构成功能较强的指令。3. 操作码的长度:无论是 ,其操作码的长度都是可以固定长度或
2、改变 长度的。4. 字长:处理机的运算器一次能够完成的二进制数运算的位数。如果一台计算机系统的指令字长度与计算机的字长相等,那么不仅可以简化机器的读写操作,而且可以提高机器的运算速度。固定长指令可变长指令匹配字长简化读写,提高速度指令字长度单字指令字长指令字长度一次访存2指令字长度倍字长双字长指令二次访存指令字长度多倍字长多字长指令多次访存(但这种方式可以提供足够多的操作数地址形式,有助于增强指令的功能) 指令系统中的指令是指机器指令。由于机器指令与汇编语言的指令是一一对应的,所以可以借助汇编语言的相应环境了解计算机指令系统的初步知识。在Windows操作系统桌面,点击“开始”然后选择“运行”
3、,接下来按下述操作: cmd DEBUG.EXE 下图是执行DEBUG.EXE 命令后进入汇编编辑环境时的操作示意图。 在汇编编辑环境下,常用的操作命令有:R:寄存器的查找、修改命令U:反汇编命令A:输入代码命令D:显示内存命令E:修改内存命令Q:退出DEBUG编辑环境的命令EXIT:退出Windows命令环境,转入Windows桌面环境。2.2 寻址方式寻址方式2.2.1 基本概念术语 本节主要介绍与寻址方式有关的一些基本概念和术语。1.寻址方式:指令中用于说明操作数所在物理地址的方法。2.逻辑地址:程序员编程时所使用的空间地址。3. 物理地址:程序在内存的实际地址。4. 实存、主存、内存:
4、程序执行时所在的程序空间。(本章举例圴以1MB内存为例,B表示字节,即byte之意)。5. 虚存、辅存、外存:程序长期存储的不依赖是否带电而存在的空间。6. 程序装入时的两种定位技术: 静态再定位:程序装入主存时,用软件的方法直接修改逻辑地址生成相应的物理地址。 动态再定位:只记住基地址a,不作任何修改便装入主存,在具体执行时判断是加a或不加a。 下图是不同用户的程序在计算机内存中的定位过程示意图。不妨假设在上图中的A道程序其大致的逻辑地址空间示意图如下图。 通过上图与该图观察发现,在上图中的A用户程序中的加法指令所表示的加地址g指令以及要转移到地址s指令,改图中加的不是g地址中内容,转移地址
5、也不是地址s,所以产生了错误。因为逻辑地址g、s在程序被装入内存后已经变成绝对物理地址a+g和a+s,但这一转变并没有在程序执行过程中被很好地认知到,所以产生错误。 为了克服类似的错误现象,人们通过让计算机记住每道程序在内存的起始地址,例如基地址a和基地址b,并结合不同的寻址方式,对上述错误现象进行了有效的纠正。方法是: 这种通过加基址的方法就叫程序的静态再定位技术。它虽然避免了程序寻址过程中产生的地址错现象,但它也存在着一定的不足,如:由于自身的失误可能会破坏其他程序的正常执行;也妨碍了程序的可再入性;难以找到故障点。基于上述原因,后来又有了效率较高的动态再定位技术,如下图所示。 2.2.2
6、 有效地址EA与段超越 存储器的存储单元的物理地址=段地址16+在该段的偏移地址(EA)。 段地址:要求从0号地址开始,每16个字节为一个小段,每个小段的前4位十六进制的地址是段地址。 以1M内存、16位字长的机器为例加以说明。1MB内存空间示意图如下图所示。 1MB=1024KB= 10241024B= 210210=220B 所以,应该有20根地址总线。 例如如果一个地址空间有四根地址总线,那么它可以有多少个不同的地址空间?显然共有16个不同的地址空间,即从0000,0001,0002,0003,0004,0005,一直到1111这16个不同的物理地址。 由于16个字节为一个小段,那么在1
7、M个字节的内存空间中共有个小段,也说明共有641024个不同的段地址。K642221621642020 为什么要分段?因为字长是16位的,且处理器内部的寄存器等也都是16位的,那么指令也好,数据也好,或堆栈等,他们的地址都要通过这种分段技术加以寻址。所以,借助这样的硬件条件,以某一地址为基准,向上或向下只能寻址各64KB的大小空间,这与系统本身具有的1MB空间的能力不相符合(1MB64KB16)。所以,为了寻址整个1MB的内存空间,提出了地址分段技术。段地址的确定有个默认约定:由有效地址规定的基地址寄存器来确定段寄存器。 BX,BP,SI,DI例如: BPSSDS其余当然串处理指令有其特殊的规
8、定 通常存放段地址的寄存器有四个:CS , DS, SS 和 ES 存放代码,存放数据,存放堆栈,存放串数据 当然这种默认可以被打破,这就是段超越。 例如: MOV AL, 2000 MOV AL, ES:2000 下表给出了段地址与段超越情况的默认约定。 2.2.3 与数据有关的寻址方式 寻址方式所寻找的不仅可以是指令的地址也可以是操作数的地址。本节介绍与寻找操作数有关的寻址方式,称之为与数据有关的寻址方式。与数据有关的寻址方式可以分成七种,在介绍七种寻址方式之前,有必要先了解操作数的基本属性。 如果操作数就在指令中,那么这样的操作数可以称之为立即数操作数。如果操作数放在寄存器中,那么这样的
9、操作数可以称之为寄存器操作数。如果操作数是在存储器中的,那么这样的操作数就叫存储器操作数。由于存在三种不同属性的操作数,那么根据七种与数据有关的寻址方式的特点,我们可以发现七种寻址方式中的前两种寻址方式所寻找的操作数的属性一个属于立即数操作数,一个属于寄存器操作数,其它的五种都属于存储器操作数。 1. 立即寻址: 这种寻址方式表示的操作数都是常数,有8位或16位两种,且只能用于源操作数的寻址方式中。 立即寻址的含义:当指令取出后,指令所需要的操作数就同时得到了。例如: MOV AL, 23H MOV AX, 1234H MOV BL, count ;count是通过EQU等伪指令定义过的常量标
10、识符 下图是立即寻址示意图。2.寄存器寻址: 操作数就存放在某个寄存器中,是哪个寄存器?则由指令指明。其寻址方式如下图所示。例如: MOV AX, BX MOV BX, AX MOV AL, BH MOV AL, 23H MOV BL, 23 MOV AL, BL 3.直接寻址 这种寻址方式给出的是操作数所在内存单元的有效地址,即EA。其寻址方式如下图所示。例21: MOV AX, 2000H,指令执行前,若DS=3000H,AX7835H,(32000H)50H,(32001H)30H 则物理地址=DS16+EA =3000H16+2000H =32000H 那么指令执行后,AX3050H,
11、其余不发生变化。其逻辑操作形式如下图所示。 例22 count1 DB 2 count2 DW 2 count2 EQU 2则: MOV BL, count1 不加方括号是立即寻址,加括号则直接寻址 MOV BX, count2 与上述相同 MOV BL, count3 立即寻址可以段超越: MOV AX, ES:2000H MOV AX, SS:2000H4.寄存器间接寻址: 操作数的有效地址在基址寄存器BX、BP中或变址寄存器SI、DI中。其寻址方式如下图所示。物理地址=DS16+DISIBX=SS16+BP 例23: MOV AX, BX ;注意:没方括号时,寻址方式与运算结果不一样若执
12、行指令前: DS=2000H,BX=1000H,物理地址=21000H AX=8040H (21000H)=A0H (21001H)=50H 执行后: AX=50A0H, 其余不变例24 : MOV AX, CX MOV BX, AX 是否正确?错误,因为这二个寄存器是不可以间接寻址的。 5.寄存器相对寻址也叫直接变址寻址。其寻址方式如下图所示。816BXBPEASIDI位小偏移量位 其中8位或16位的小偏移量是补码表示的有符号数,当为8位时,与前面寄存器内容而相加时,要进行符号扩展,否则会出错。 81616BXDSSIDI位物理地址小偏移量位81616SSBP位小偏移量位例25: MOV A
13、X, countSI 或 MOV AX, SI+count 其中, count为符号地址。可进行表格处理,表格的首地址可设为count,利用修改基地址或变址寄存器的内容对表格的某些项逐一操作。假设在指令执行前,DS=3000H,SI=2000H,count=8000H,AX=5678H,那么指令执行结束后,AX=1234H,其余不变。其过程如下图所示。 6. 基址变址寻址方式 有效地址来自于二个不同的寄存器,一个是基址寄存器,另一个是变址寄存器。基址寄存器是指:BX或BP,变址寄存器是指SI或DI。即: DISIBXEA或 DISIBPEA,其它组合错误。可以说有效地址EA由二部分构成,一部分
14、是EA ,一部分是EA 。S 16SIDBXDI物理地址S 16SISBPDI物理地址其寻址方式如下图所示。 7. 相对基址变址寻址: 在基址变址的基础上加8位或16位小的偏移量。其中8位或16位小偏移量仍然是补码表示的有符号数,具有正、负性。 例: MOV AX, MASK BXSI MOV AX, MASK BX+SI MOV AX, MASK+BX+SI 这三条指令的源操作数的寻址方式都是相对基址变址寻址。其中符号MASK就是所提到的8位或16位小偏移量,如下图所示。 有效地址是16位的,如果在相加过程中,超出了16所能承载的内容,则自动丢掉高位所产生的进位。 例如,如果 BX=8000
15、H SI=7000H MASK=2500H 则 EA=8000H+7000H+2500H=1500H 思考:若MASK=D8H呢?所生成的有效地址是多少?应该是EFD8H。2.2.4 与转移指令的偏移地址有关的寻址方式 与转移指令有关的寻址方式可以分成四类。分别是段内直接寻址、段内间接寻址、段间直接寻址与段间间接寻址。1. 段内直接寻址 一页内的跳转在内存中的指令格式如下图(左)所示。其有效地址的生成过程如下图(右)所示。例26: JMP short OUEST,其指令执行过程中跳转的方向示例如下图。 X补=D8H =11011000B X=-00101000 =-(25+23) =-40 X
16、是负的,表明向回跳,即向小地址的方向跳。EA=IP当+DISP的符号扩展 =2198H+FFD8H =2170H -40=-28H 2198H=-40=2198H- 28H=2170H 如果是16位的近跳转,内存指令示意图及有效地址生成过程如下图所示。 有效地址EA=IP当+DISP16 近跳转指令所跳转的距离比短跳转指令所实现的跳转距离大。 例如下面这段程序表明,采用8位的跳转指令,跳转的相对距离是-128到+127之间的位移量。但如果把指令JMP SHORT改成JMP NEAR PTR,那么跳转的相对距离为-32768到+32767之间。 但是如果跳转距离超过64KB,那么就需用段间转移指
17、令,我们这里讲的段内转移指令无法实现超过64KB距离的跳转。优点:这种寻址方式具有再定位的特点。即这段程序无论是放在偏移量是2000H还是4000H的位置都不会出错,都能保证程序的正常执行。 通常情况下:shortNEARPTR条件转移指令:子程序调用:无条件转移:上述条件均可 2. 段内间接寻址:有效地址EA存储在16位寄存器中或两个连续的存储单元中。例如 JMP BXBXPTRWORDJMPBXJMP其中WORD PTR可省略 先来观察有效地址在16位的寄存器中的情况。假设指令执行前:BX=2652H,IP=2100H,那么指令执行后:BX=2652H,IP=2652H。再观察有效地址在存
18、储单元里存放的情况。 例6: JMP TABLEBX,假设指令执行前,各个相应的信息为: DS=3000H BX=2150H TABLE=2060H物理地址=DS16+TABLE+BX =341B0H (341B0H)=7AH (341B1H)=30H CS=4000H IP=2100H 那么指令执行后,IP=307AH,其它均不变。其过程示意图如右图所示。 3. 段间直接寻址:在转移指令中给出新指令的IP值和新指令的CS值。格式:JMP FAR PTR 符号地址;其中FAR PTR不可省略段间直接寻址是5字节指令,其在内存的表现形式如下图所示。 例7:JMP FAR PTR NEXTPOIN
19、T例7的指令执行过程示意图如图下图所示。4.段间间接寻址:用两个相继的字存储单元(4个字节)存放新的IP值和CS值。格式:JMP DWORD PTR BX ;BX只能采用存储器操作数寻址方式 JMP DWORD PTR BX ;寻址方式错误 例8:JMP DWORD PTR INTER+BX假设指令执行前:DS=3000HBX=1200HINTER=0020H物理地址=DS16+1200H+0020H=31220H(31220H)=40H(31221H)=01H(31222H)=00H(31223H)=10H CS=0000H IP=1000H 那么根据指令功能,指令执行后:CS=1000H;
20、IP=0140H。例8的指令执行过程如下图所示。 2.3 指令系统指令系统 计算机内部的指令系统是指在计算机硬件的最底层可以支持高级语言实现的机器语言指令所组成的指令集。由于汇编语言的指令(不包括伪指令)与机器语言的指令存在着一一对应的关系,为方便介绍,在此以汇编语言为例介绍机器的指令系统。可以把指令系统按功能分成七大类。 2.3.1 数据传送指令 由于指令系统的各指令在执行过程中经常会用到寄存器,所以在下图中给出了8086/8088CPU内部的可编程寄存器组的结构图,便于了解与掌握这些常用的寄存器。 1. 通用数据传送指令(1)格式:MOV DST, SRC;B/W不影响标志位,允许段超越
21、MOV指令的目的操作数与源操作数在寻址方式中的所有规定与约束条件在下图中给出了形象的说明。必须是字。必须是字。寄存器之间传送要求必需等长。要求二个操作数之间类型应相互匹配。8位16位可以。 16位8位不可以。内存是2000H时,具有二义性,但11221234BUFDBHBUFDWH没有二义性。 MOV BX, 05; MOV word PTR BX, 05 MOV Byte PTR BX, 05 MOV BL, 05 MOV BYTE PTR BL, 05 MOV BX, 05H MOV BX, 0805H (2)堆栈操作类指令 PUSH指令的执行示意图如下图所示。 例210:PUSH 200
22、0H; PUSH 2000H; 但压入的是DS:2000H上的字内容,而非2000H例211:PUSH BETABXSI 且 DS=2000H BX=2100H SI=2520H BETA=F4H EA=BX+SI+BETA =2100H+2520H+0FFF4H =4614H(产生的进位自动丢掉) 则:物理地址=DS16+EA =20000H+4614H =24614H 根据具体的数值信息,例10的执行过程与结果示意图如下图所示例212: POP CS POP CS:BXSI POP SP ;但很少这么做,原因如下图所示。 下面的两条指令都是正确的,但由于寻址方式不同,所以指令执行后的结果也
23、是不同的。 (3)交换指令例213:XCHG AX,DS XCHG AX,BX XCHG AX,BX XCHG DX,BPSi 2.换码指令格式:操作:例214:求数字0,1,29,A,BF中的任何一位十六进制数所对应的七段数码管代码。这里不防假设求字符A的七段数码管的代码是多少?设七段数码管所采用的七个控制位分别用字母a到g表示,且存在于一个字节中,对应于该字节的第0到第6位,由于第7位不用,所以定义该位恒为0,如下图所示。 根据0亮1灭的原则,在内存中存放的一位十六进制的数0到F所对应的数码管编码如下图所示。 假设指令执行前:AL=0AH,BX=0200H,DS=4000H,则指令XLAT
24、执行后:AL=08H,而08H正是字母A所对应的七段数码编码。为此,该条指令正确完成了十六进制数“A”到它的七段数码管编码的转换。 3. 地址传送类指令(1)操作:REGEASRC例215: LEA BX,VABLE LEA DS,VABLE LEA DX,BX LEA SP,BX MOV SP,BX LEA DS,BETABX;传的是有效地址,若想传地址中 的内容应采的指令是MOV DX,BETABX(2) 例217:LDS BX,ADDRSI假设指令执行前:DS=2000H (21020H)=80H SI=1000H (21021H)=10H ADDR=0020H (21022H)=00H
25、 物理地址=21020H (21023H)=40H BX=6D50H 那么指令执行前、后的内存及各寄存器的状态如下图所示。 (3)例17:LES DI,BX4标志寄存器传送类指令(1) 16位PSW状态寄存器中各位含义如下图所示,该条命令的含义是将PSW的低8位信息传送给AH寄存器。(2)SAHF ;B (不影响条件码)操作:PSW的低位字节 AH 恢复S、Z、A、P、C的原来数值指令执行前、后的内存状态示意图如右图所示。 (4)POPF ;W 影响全部条件码2.3.2算术运算类指令1.加减运算类指令CFOF同一种数据类型加减运算指令规定,它们适用于有符号数和无符号数运算,但要有两个前提无:用
26、不同的方法检测溢出有:无符号数表示范围如下: 8位:0255 00FFH 16位:065535 0000FFFFH有符号数表示范围为: 8位:-128,-127-1,0,1,02H+127 80H,81H,FFH ,00,01H,02H,7FH 16位:-32768,-32767,-1,0,+1,+32767 8000H ,8001H,FFFFH,0,0001H ,7FFFH 例219:MOV AL,0FFH MOV BL,01H ADD AL,BL 它们的二进制运算过程:11111111+00000001100000000CF=1 OF=0把它们看成无符号数:运算结果出错,所以,也代表结果有
27、溢出。有它们看成有符号数:运算结果正确,所以,也代表结果无溢出。如果是单操作数,不允许是立即数和段寄存器。如果是双操作数,则其表现形式为:加、减运算指令的总体规则:有符号数和无符号数都采用同一套加、减运算指令。指令影响标志位(但分ADD、ADC和CMP等的不同影响)。无符号数的溢出用CF=1进行判断,溢出并不算错。有符号数的溢出用OF=1进行判断,溢出算错。(1)加法指令 加法指令共有三条,分别是加法指令ADD、带进位的加法指令ADC和加1指令INC。操作:DST(DST)+(SRC)例220:ADD WORD PTR BX, 9F76H 假设指令执行前:DS=2000H BX=3000H (
28、23000H)=88H (23001H)=A9HA988H + 9F76H 148FEH23000H =FEH 23001H =48H则:指令执行后:() ()CF=1OF=1SF=0PF=0AF=0ZF=0条件码状态如下:主要用于进行多字节(多字)运算例221:INC 0DH; X INC AL; INC DS;X INC BX; INC BYTE PTR BX+DI+2;,其中BYTE PTR不可省略 -22256 MOV AL 00HLABLEINCAL JC NEXT JMP LABLENEXT HLT例2:该段程序用于循环次,对否?,: :答:错误,因为INC指令不影响CF标志位,所
29、以,该段程序会产生死循环。(2) 减法指令 减法指令共有五条,分别是减法指令SUB、带借位的减法指令SBB、减1指令DEC、求相反数指令NEG和比较指令CMP。例2-24:DEC AX DEC CL DEC WORD PTR SI NEG OPR;B/W,影响6个条件码,其余规定同INC 特点:只有对0求补,CF=0,其余CF1。求补为变反+1,所以对-128和-32768求补后,其值不会发生变化。但此时OF的值为1了。 0- 128 =+128+127OF=1() OPR1OPR实质:求相反数可以通过将变反加 求的相反数。操作:(OPR1)(OPR2)关于比较指令需要注意:如果是无符号数,只
30、要CF=0,OPR1OPR2 CF=1,OPR1 OPR2,如果是相等,再加上ZF=1的判断就可以了。如果是有符号数,只要:例227:OPR1=BFH=(-65) ,(OPR1)(OPR2)=-65(+85)=150 OPR2=55H=(+85) BFH55H 6AH 6AHOF=1SF=06AHOFSF=1ABBFH 55H由于两个负数求和,结果为正数(),显然,又因(是正数),所以,所以(有符号数)。但做为无符号数时,即。2乘、除指令1)乘法指令AH=00MUL CF=OF=10DX=0CFOF两字节相乘的积,若,否则:两个字相乘的积,若CF=OF=0IMULCF=OF=1如果乘积的高一半
31、是低一半的符号扩展,则,否则例228:MUL BX; MUL 23H; MUL BX;例229:MUL BL 设AL=B4H, BL=11H例230:IMUL BL 设AL=B4H,BL=11H2)除法指令(对全部标志位影响不定)DIV与IDIV指令的注意事项:IDIV32 16-32768+327670OF=1 168-128+127对指令,当商的范围越界时,即后的商时,产生 号中断,而非使。或后的商对有符号数相除,被除数或除数为负时,先将它们求补,变成无符号数,再除。 商的符号取决于被除数和除数二者。再根据结果的正负性情况决定是否再求补。AH0OF=1 DX而对于无符号数,字节运算时,除之
32、前,一定小于除数否则产生 号中断,而非。字运算时,除之前,一定小于除数该指令的二进制相除的过程为:例232:若AX=0400H,BL=B4H,求IDIV BL?解:根据运算规则,先将为负数的BL求补,|BL|=4CH。由于AX本身为正,所以可以将这两者进行二进制运算,过程如下: 然后再考虑是否需要为商及余数继续求补。因为被除数为正、除数为负,所以商为负,故需对绝对值商|AL|AL|=0DHAL=F3H求补,求补后得因为余数的符号同被除数,所以余数AH=(100100)2=24H。3十进制调整指令BCD49587dBCD9587H48421BCD84BCD410010101ASCII9587d1
33、000400110111XXXXXXXXXXXXXXXX压缩码:用 位二进制数表示一位十进制数。 的压缩码为。低 位为码非压缩码:用 位二进制数表示一位十进制数,高 位无意义码:位二进制表示一位十进制数也等同于数字的码高 位都是 调整的原理和思想:十进制的调整指令会根据CF(多字节)或AF的值,以及4位二进制数码是否大于9来决定是滞加6调整。举例说明:8+7=15举例说明:9+9=181)压缩的BCD码调整指令(1)加法的十进制调整 格式:DAA ;B,除OF外,其他5个受影响,前提是先执行ADD或ADC,和放在AL中。调整方法:a.如AF=1,或AL中低4位是16进制AF,则AL的内容加06
34、H,置AF=1。b.如果CF=1,或AL高4位是16进制AF,则AL中内容加60H,置CF=1。被调整的8位二进制数是通过一条DAA指令一次性调整的,而不是用一次DAA只调整4位。(2)减法调整指令 格式:DAS;B 除OF外,影响其余5个条件码,前提是用SUB或SBB指令,差放在AL中。调整方法:a.如AF=1,或AL中低位4位是一个十六进制AF,则AL中内容减06H,置AF=1。b.如CF=1,或AL中高位4位是一个十六进制AF,则AL中内容减60H,置CF=1。 2)非压缩的BCD码的调整指令(1)加法ASCII码调整指令 格式:AAA;B,只影响CF,OF,前提同DAA指令。例234:
35、已知AX=0535H,BL=39H,求下列两条指令执行结束后,AX中的值是多少?ADD AL,BL;AAA;分析:ADD指令执行完后,AX=056EH,执行完AAA指令后,AX=0604H,顺利完成了两个十进制数55与9的求和运算。 (2)减法的ASCII码调整指令格式:AAS;B,只影响CF、OF,前提同DAS。2.3.3 逻辑运算和移位指令 逻辑运算指令是按位进行的,可以是8位或16位的数据,操作数时不能用段寄存器和立即数。1逻辑运算指令MOVAX0SUBAXAXANDAX0XORAXAX,将累加器清零的四种方法:, 例235:实现AL中的最低位如果为1,则转移到LABLE处。 TEST
36、AL,01H JNZ LABEL LABEL:2移位指令1)非循环移位 2)循环移位循环移位指令共有四条,它们都只影响CF、OF标志位。 2.3.4 串操作指令1与REP前缀相配合工作的MOVS,STDS,LODS指令1MOVSDSTSRCB/WMOVSBMOVSW( ),;例237: 执行串操作命令的几个前提:DS、ES置好初值SI、DI置好初值CX存放好循环次数置好方向标志DF但REP前缀指令在使用过程中有其局限性,它只能照搬照套,不方便在执行过程中进行相应的种类修改或改变等操作。 2与REPZ/REPE和REPNZ/REPNE联合工作的CMPS和SCAS指令(1)串比较指令,影响6个条件
37、码CMPS SRCDSTB/WSI -DISI 1DI 1CMPSBSI -DISI+2DI2CMPSW,;() (), ,只做差值计算,不保留结果() (),(2)串扫描指令,影响6个条件码SCASDSTB/WAL -DIDI 1SCASBAX -DIDI2SCASW;()(),只做差值计算,不保留结果()(),步骤同上,只将ZF=0改成ZF=1就可以了。注意指令执行完后指针的变化。例239:(详见P64)REPE CMPSB 假设CX=10 例240:要从一串字符中找一指定字符,可以将要寻找字符的ASCII码存于AL中,然后采用 下述指令序列即可。 MOV DI,0100H MOV AL,20H MOV CX,10H;串长度 CLD REPNZ SCASB 2.3.5 输入输出类指类(该类指令均不影响条件码)1直接的输入、输出类指令1)直接的输入指令2)直接的输出指令2间接的输入、输出类指令1)间接输入指令 IN AL,DX;B, AL(DX) 2)间接输出指令OUT DX,AL;B (DX)ALOUT DX,AX;W (DX+1)(DX)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖北省武穴市高二历史下册期末考试测试卷含答案(预热题)
- 2026中国液体化工物流行业对外贸易壁垒与应对策略报告
- 2026能源互联网技术发展和应用市场前景研究评估
- 2026中国老年健康饮料配方研发与适老化设计报告
- 2026实木家居产品生命周期管理与库存优化分析
- 2026电竞产业生态链整合与IP商业化运营模式创新报告
- 2026神经形态芯片架构创新与应用场景拓展报告
- 2026预制菜产业链价值分布与餐饮渠道下沉市场机会评估报告
- 2026跨境电商速卖通卖家服务行业市场现状供给配置分析及投资配置规划发展研究报告
- 2026中国芯片设计行业技术突破与市场前景预测报告
- MT/T 1325-2025矿用设备再制造刮板输送机中部槽
- 2026年新高考I卷数学真题
- 2026年小学信息技术教师业务考试题库(附答案)
- 老年人多重用药评估与管理专家共识2026
- 护士执业注册健康体检表
- 2025福建新华发行(集团)有限责任公司南平地区会计岗位招聘笔试备考题库及答案解析
- 2024-2025学年度第二学期期末考试试卷 高一历史
- 高中数学第九、十章统计与概率章节测试卷-2024-2025学年高一下学期数学人教A版(2019)必修第二册
- 特殊工艺过程管理制度
- 大二python考试试题及答案
- 2024年4月自考00015《英语(二)》真题及答案
评论
0/150
提交评论