版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 80X86寻址方式和指令系统3.1 80X86寻址方式3.2 80X86指令格式3.3 80X86指令系统 编辑ppt3.1 80X86寻址方式3.1.1 数据寻址方式 操作数有可能在: (1) 代码段中,作为指令中的立即数 (2) CPU寄存器中 (3)存储器的数据段或堆栈段或附加数据段中所以,总的来说,数据寻址方式分为三种: 立即寻址 寄存器寻址 存储器寻址编辑ppt一、立即寻址操作数直接包含在代码段的指令中。 如: MOV EAX,80000000H MOV BX,6688H MOV AL,12H立即数只能作为源操作数立即寻址主要用来给通用寄存器或存储器赋值不允许给段寄存器直接赋
2、值编辑ppt例3.1 立即寻址编辑ppt立即寻址过程示意编辑ppt立即寻址动态示意编辑ppt二、寄存器寻址操作数在寄存器中。32位寄存器:EAX、EBX、ECX、EDX、ESP、EBP、 ESI、EDI16位寄存器:AX、BX、CX、DX、SP、BP、SI、 DI、CS、DS、SS、ES、FS、GS8 位寄存器:AH、AL、BH、BL、CH、CL、DH、DL 如:MOV AX,BX MOV EDI,ESI MOV AL,CL编辑ppt例3.2 寄存器寻址编辑ppt三、存储器寻址 操作数在存储器中,其地址由指令以某种方式指出。(一)16位指令模式下: 物理地址=段基址 10H 有效地址EA(二)
3、32位指令模式下: 物理地址=段基址 有效地址EAEA的计算方法根据采用的寻址方式不同而不同。编辑ppt(一)16位指令模式下的存储器寻址 16位指令模式寻址结构:段基址10H基址变址偏移量 基址:BX、BP 变址:SI、DI 偏移量:8位或16位 如果有效地址在BX,SI或DI中,则以DS寄存器内容为段基址;如果有效地址在BP中,则以SS段寄存器之内容为段基址。如果使用段超越前缀(CS:ES:DS:SS:),操作数可以放在冒号前指定的段。 16位指令模式寻址方式: 直接寻址 寄存器间接寻址 寄存器相对寻址 基址变址寻址 相对基址变址寻址 编辑ppt1、直接寻址操作数在存储器单元中。操作数所在
4、的有效地址EA直接由指令指出。 例1 MOV AX,3000H 例2 MOV BL,BLOCK 例3 MOV BX,DATA1编辑ppt例3.3 直接寻址编辑ppt直接寻址过程示意编辑ppt直接寻址动态示意编辑ppt2、寄存器间接寻址 操作数的有效地址在BX、BP或SI、DI中,EA可表示为例1 MOV AX,BX例2 MOV DL,SI编辑ppt例3.4 寄存器间接寻址编辑ppt寄存器间接寻址过程示意编辑ppt寄存器间接寻址动态示意编辑ppt3、寄存器相对寻址操作数在存储单元中,其有效地址EA可表示为 例1 MOV AL,BX4000H亦可写成: MOV AL,4000HBX 例2 MOV
5、AX,BP+2000H编辑ppt例3.6 寄存器相对寻址编辑ppt寄存器相对寻址过程示意编辑ppt寄存器相对寻址动态示意编辑ppt4、基址变址寻址操作数在存储单元中,其有效地址EA可表示为 例1 MOV AX,BXSI 或写成:MOV AX,BXSI 例2 MOV AX,BX+DI 例3 MOV AX,BP+SI 例4 MOV AX,BP+DI 编辑ppt例3.7 基址变址寻址编辑ppt基址变址寻址过程示意编辑ppt基址变址寻址动态示意编辑ppt5、相对基址变址寻址操作数在存储单元中,其有效地址EA可表示为 例1 MOV AX,BXSI1500H或写成 MOV AX,1500BXSI 例2 M
6、OV AX,BP+DI+1000H编辑ppt例3.8 相对基址变址寻址编辑ppt相对基址变址寻址过程示意编辑ppt相对基址变址寻址动态示意编辑ppt(二)32位指令模式下的存储器寻址 32位指令模式寻址结构由5部分组成:段址基址变址比例因子偏移量 其中基址寄存器或变址寄存器可以是除ESP以外的任何32位通用寄存器。当基址寄存器为EBP时,默认段寄存器SS存放段选择符,否则,默认DS存放段选择符。也可使用段超越前缀来指定。比例因子为1,2,4,8。偏移量为8位或32位。 编辑ppt32位指令模式下的存储器寻址方式1、直接寻址 如:MOV EAX,10000000H2、 间接寻址 如:MOV ED
7、X,ECX3、 相对基址寻址 如:MOV ECX,EAX+80H4、 相对比例变址寻址 如:MOV EBX,ESI*4+80H5、 相对比例基址变址寻址 如:MOV EAX,EBP+EDI*4+80H编辑ppt3.1.2 程序地址寻址方式一、相对寻址 相对寻址为段内寻址,指令中给出带符号的相对偏移量,程序目标地址为当前IP值加上相对偏移量作为偏移地址。 二、 直接寻址 直接寻址是指指令中直接给出转移指令的目标地址。在段间转移中,指令中给出目标段地址或代码段的段描述符。三、间接寻址 间接寻址 分段内和段间间接寻址,指令中以间接方式给出转移指令的目标地址,通常存放在数据段。 编辑ppt3.1.3
8、堆栈地址寻址方式字数据进栈步骤:1、(E)SP1(E)SP2、 高8位堆栈3、(E)SP1(E)SP4、低8位堆栈字数据出栈步骤:1、栈顶内容目标寄存器或目标单元的低8位2、(E)SP1(E)SP3、栈顶内容目标寄存器或目标单元的高8位4、(E)SP1(E)SP编辑ppt堆栈操作示意编辑ppt思考题 1、 设DS=2000H,SS=3000H,BP=0200H,SI=4000H,BUF=1000H,EAX=00001000H,EBX=00002000H,假设按16位实模式操作,确定下列每条指令访问内存的物理地址,并且指出源操作数及目的操作数的寻址方式。(1)MOV AL,1234H (2)MO
9、V EDX,BX(3)MOV CL,BX100H (4)MOV SI,EBX(5)MOV AH,BUFBXSI (6)MOV EAX,BP1234H 编辑ppt3.2 80X86指令格式指令基本格式: 标号: 助记符 操作数 ;注释BYTE PTR 。WORD PTR 。DWORD PTR 。如 INC WORD PTR BX编辑ppt3.3 80X86指令系统按功能分类:数据传送指令算术运算指令逻辑运算指令控制转移类指令串操作指令输入/输出指令处理器控制指令中断指令与DOS功能调用编辑ppt3.3.1 数据传送指令通用数据传送指令堆栈操作指令地址传送指令标志寄存器传送指令查表指令符号扩展指令
10、数据传送指令包括:编辑ppt3.3.1 数据传送指令数据传送指令包括: 通用数据传送指令堆栈操作指令地址传送指令标志寄存器传送指令查表指令符号扩展指令编辑ppt传送指令数据流* CS不能为目的操作数,不能对(E)IP直接传送数据* 堆栈操作不允许为字节操作编辑ppt一、通用数据传送指令DEST:目的操作数SRC:源操作数1、一般传送指令 MOV DEST,SRC如:MOV AL,CL MOV BX,SI MOV EAX,EBX 编辑ppt使用MOV指令应注意:立即数不允许直接送段寄存器,且立即数不能做目的操作数源操作数和目的操作数不允许同时为存储器操作数源操作数和目的操作数不允许同时为段寄存器
11、两操作数的数据类型要一致传送操作不影响标志位不允许对CS、(E)IP传送数据编辑ppt2、扩展传送指令 MOVSX DEST,SRC MOVZX DEST,SRC如 MOV BL,80H MOVSX AX,BL;AX=FF80H MOVZX AX,BL;AX=0080H*目的操作数为通用寄存器(16位或32位)*源操作数长度必须小于目的操作数长度,为通用寄存器或存储器操作数(8位或16位)编辑ppt3、交换指令 XCHG DEST,SRC如:XCHG EAX,EBX XCHG AX,SI XCHG AL,SI*两操作数中不允许出现立即数*两操作数不允许同时为存储器操作数*两操作数数据类型必须一
12、致 编辑ppt二、堆栈操作指令压栈指令 PUSH SRC如:PUSH EAX PUSH DS PUSH SI PUSH DWORD PTR SI PUSH 1234H PUSHD 80H 出栈指令 POP DEST如:POP AX POP DS POP BX POP DWORD PTR DI 编辑ppt三、地址传送指令格式: LEA DEST,SRC *DEST为16位或32位通用寄存器 *SRC为16位或32位存储器操作数例1:LEA BX,SI+1005H 若SI=1000H 则BX=?例2:LEA DI,BLOCK MOV DI,BLOCK 有何区别?编辑ppt四、标志寄存器传送指令格式
13、1:LAHF SAHF格式2:PUSHF POPF格式3: PUSHFD POPFD*SAHF、POPF、POPFD影响标志位编辑ppt五、查表指令格式: XLAT指令规定:表格存于数据段中 表首偏移地址BX 表内偏移量AL 查找结果AL所找单元的物理地址: (DS)10H+(BX)+(AL)编辑ppt查表指令应用举例LEA BX,BLOCK MOV AL, 3 XLAT结果:AL内容为4FH例:试编程将内存中以BLOCK为起始地址的编码表中顺序号为3的编码送AL寄存器。 编辑ppt六、符号扩展指令针对带符号数,按带符号数扩展。1、CBW 功能:AL(8位)AX(16位)2、CWD 功能:AX
14、(16位)DX:AX(32位)3、CWDE 功能:AX(16位)EAX(32位)4、CDQ 功能:EAX(32位)EDX:EAX(64位)编辑ppt3.3.2 算术运算指令加法指令减法指令加1减1指令比较指令乘法指令除法指令BCD算术运算指令编辑ppt算术运算类指令特点影响标志位操作数不允许为段寄存器不允许两个操作数同为存储器操作数若无特别规定,操作数类型必须一致目的操作数不允许为立即数当操作数类型不明确时必须使用PTR伪指令编辑ppt一、加法指令格式(1) ADD DEST,SRC功能:源操作数+目的操作数目的操作数格式(2) ADC DEST,SRC功能:源操作数+目的操作数+CF目的操作
15、数例:32F2H+A020H=?MOV AX,32F2H 或 MOV AX,32F2HMOV BX,0A020H MOV BX,0A020HADD AX,BX ADD AL,BL ADC AH,BH编辑ppt二、减法指令格式(1) SUB DEST,SRC功能:目的操作数源操作数目的操作数格式(2) SBB DEST,SRC功能:目的操作数源操作数CF目的操作数*SUB、SBB指令与ADD、ADC一样,影响标志位OF、SF、ZF、AF,PF,CF编辑ppt三、加1减1指令加1指令 INC DEST功能:目的操作数1目的操作数减1指令 DEC DEST功能:目的操作数1目的操作数*不影响CF,影
16、响OF、SF、ZF、AF、PF例:INC BX INC BYTE PTR BX DEC EAX DEC WORD PTRSI 编辑ppt四、比较指令格式 CMP DEST,SRC功能:目的操作数源操作数(1)若目、源为无符号数 CF=0 则目源 (若ZF=1,则目=源) CF=1 则目源(2)若目、源为带符号数 若目、源为同号数(OF=0) 若均为正,SF=0 则目源(若ZF=1,则目=源) SF=1 则目源 若均为负 ,SF=0 则目源(若ZF=1,则目=源) SF=1 则目源 编辑ppt若目、源为异号数(OF=0或1) 若目为正,源为负 则目源 若此时 SF=0 则OF=0 若此时 SF=
17、1 则OF=1 若目为负,源为正 则目源 若此时 SF=1 则OF=0 若此时 SF=0 则OF=1综合起来,若目、源为带符号数 OFSF=0 则目源 OFSF=1 则目源 编辑ppt五、交换相加指令格式 XADD DEST,SRC功能:目的操作数源操作数目的操作数 且原目的操作数源操作数影响标志位OF、SF、ZF、AF、PF、CF六、求补指令格式 NEG DEST功能:求目的操作数的相反数的补码影响标志位OF、SF、ZF、AF、PF、CF编辑ppt七、乘法指令格式 MUL SRC (针对无符号数) IMUL SRC (针对带符号数)隐含规定: SRC为一乘数因子,可为 8位/ 16位 /32
18、位寄存器或存储器另一乘数因子在累加器中(AL/ AX / EAX)结果为乘积,乘积隐含在(AX/DX:AX/EDX:EAX) 字节乘 字乘 双字乘*若乘积高位为0,则CF=0,OF=0 若乘积高位含有效数据,则CF=1,OF=1 对其它标志位无定义 编辑ppt例:计算存于下列内存中的两个无符号数的乘积 1234H2345H=?结果放RESULT单元LEA BX,BLOCKMOV AX,BXMUL WORD PTR BX+4MOV RESULT,AXMOV RESULT+2,DX结果为02820404HCF=1,OF=1编辑ppt八、除法指令格式 DIV SRC (针对无符号数) IDIV SR
19、C (针对带符号数)隐含规定: SRC为除数,为 8位/ 16位 /32位寄存器或存储器被除数隐含在 ( AX/DX:AX/ EDX:EAX)商隐含在 ( AL/ AX / EAX)余数隐含在 ( AH/ DX / EDX) 字节除 字除 双字除*当除数为0或商溢出时会产生中断*被除数必须是除数的双倍长度,否则,需要进行高位扩展 无符号数高位扩展为全0,带符号数按符号扩展指令扩展编辑ppt九、组合型BCD算术运算指令 组合BCD码也称压缩格式的BCD码,用一个字节存储2位BCD码。 如十进制数12的组合BCD码为 00010010B 35的组合BCD码为 00110101B该类指令使用场合:
20、当参与运算的十进制数以其组合BCD码形式存放,加减时,计算机会当作二进制数来运算,其结果一定不是理想要得的组合型BCD码结果,这时,必须用组合型BCD算术运算指令加以调整,即将二进制结果调整为BCD码表示形式。 加法调整指令一般紧跟在ADD或ADC之后,减法调整指令一般紧跟在SUB或SBB之后。编辑ppt1、组合型BCD加法调整指令格式 DAA功能:AL(二进制和)组合BCD码例:26+68=? 分析:用组合BCD码存放时,两个数应分别为26H和68H,理想结果应该为94H。编程如下:MOV AL,26HMOV BL,68HADD AL,BL ;AL=8EHDAA ;AL=94H编辑ppt2、
21、组合型BCD减法调整指令格式 DAS功能:AL(二进制差)组合BCD码例:6556=? MOV AL,65H MOV BL,56H SUB AL,BL ;AL=0FH DAS ;AL=09H 编辑ppt十、非组合型BCD算术运算指令 非 组合BCD码也称非压缩格式的BCD码,用一个字节存储1位BCD码,高4位无意义。 如非组合BCD码 00010010B表示的数为2 非组合BCD码 00110101B表示的数为5 3635H即0011011000110101B表示的数是65由于09的ASCII码为30H39H,机器采用一个字节存放一位ASCII码,所以,ASCII码是一种非组合型BCD码。 非
22、组合型BCD调整指令有加、减、乘、除四种调整指令。编辑ppt1、非组合型BCD加法调整指令格式 AAA功能:AL(二进制和)非组合BCD码例:5+9=? 分析:用非组合BCD码存放时,两个数应分别为05H和09H,理想结果应该为0104H。编程如下:MOV AL,05HMOV BL,09HADD AL,BL ;AL=0EHAAA ;AX=0104H编辑ppt2、非组合型BCD减法调整指令格式 AAS功能:AL(二进制差)非组合BCD码 3、非组合型BCD乘法调整指令格式 AAM功能:AL(二进制乘积)非组合BCD码 4、非组合型BCD除法调整指令格式 AAD功能:AX(两位非组合BCD码)二进
23、制数*AAD指令必须放在除法指令之前进行。 其他调整指令都是先运算后调整。编辑ppt思考题判断下列指令是否正确,若有错误,请指出原因,并改正。(1)MOV BL,OFFSET BLOCK (2)LEA DI,BXSI(3)PUSH AL (4)POP CS(5)MOV ES,DS (6)MOV AX,SIDI(7)MOV BXBP,AX (8)ADD AX,F000H(9)MOV BX,SI (10)MOV AH,DX(11)INC BX (12)XCHG AX,2000H (13)MOV AX,BXDX (14)ADD BX,BX(15)MOV AX,DISI (16)MOV EAX,ECX
24、*480H 编辑ppt3.3.3 逻辑运算指令包括:逻辑指令、移位指令、位操作指令该类指令特点:影响标志位操作数不允许为段寄存器不允许两个操作数同为存储器操作数若无特别规定,操作数类型必须一致目的操作数不允许为立即数当操作数类型不明确时必须使用PTR伪指令编辑ppt一、逻辑指令1、逻辑与指令格式 AND DEST,SRC功能:目的操作数源操作数目的操作数*常用来使目的操作数的某些位被屏蔽(即清0)例:MOV AL,00111001B 若要使AL中高4位清0,低4位不变,怎么办? AND AL,00001111B编辑ppt2、逻辑或指令格式 OR DEST,SRC功能:目的操作数源操作数目的操作
25、数*常用来使目的操作数的某些位置1例:MOV AL,00001001B 若要使AL中最高2位置1,低6位不变,怎么办? OR AL,11000000B编辑ppt3、逻辑异或指令格式 XOR DEST,SRC功能:目的操作数源操作数目的操作数*常用来使目的操作数的某些位变反 例:MOV AL,00001001B 若要使AL中D7、D0位变反,其它位不变*对寄存器操作数清0 例 XOR DS,DS*测试一操作数与另一操作数是否相等 例 XOR AL,BL 若ZF=1,则AL=BLXOR AL,10000001B编辑ppt4、逻辑非指令格式 NOT DEST功能:目的操作数按位取反目的操作数5、测试
26、指令格式 TEST DEST,SRC功能:目的操作数源操作数*常用来测试目的操作数的某位的状态(是0还是1) 或者用来测试目的操作数的某些位是否同时为0 例:若要测试AL中D7位为0还是为1,怎么办?TEST AL,10000000B 若ZF=1,则D7=0 若ZF=0,则D7=1编辑ppt逻辑指令对标志位的影响NOT 指令不影响标志位AND、OR、XOR、TEST 指令影响标志位SF、ZF、PF,并且使CF=0,OF=0,对AF未定义编辑ppt二、移位指令1、移位分类 算术移位(A) 左移(L) 右移(R) 非循环(S) 左移(L) 逻辑移位(H) 右移(R) 小循环移位(O)左移(L) 循
27、环 (R) 右移(R) 大循环移位(C)左移(L) 右移(R) 移位指令有:SAL、SAR、SHL、SHR ROL、ROR、RCL、RCR编辑ppt2、移位指令格式DEST:表示目的操作数,(寄存器或存储器)OPRD:表示移位的次数,可以是立即数,也可 以由CL间接指定移位次数。SAL DEST,OPRDSAR DEST,OPRDSHL DEST,OPRDSHR DEST,OPRDROL DEST,OPRDROR DEST,OPRDRCL DEST,OPRDRCR DEST,OPRD编辑ppt3、移位示意图1(非循环移位) (a)SALSHL; (b)SAR; (c)SHR 编辑ppt4、移位
28、示意图2(循环移位) (a)ROL; (b) ROR; (c)RCL; (d)RCR编辑ppt5、对标志位的影响SALSHL 影响OF、SF、ZF、PF、CFSHRSARROLROR 影响CF、OFRCLRCR编辑ppt 设一个字节数据X存放在AL 寄存器中,试分析下列程序段的功能。 XOR AH,AH SAL AX,1 MOV BX,AX MOV CL,2 SAL AX,CL ADD AX,BX;AH=0;AX=2X;BX=2X;AX=4(2X)=8X;AX=8X+2X=10X功能:10XAX编辑ppt三、位操作指令1、位测试和设置指令 BT DEST,SRC (指定位送CF) BTC DE
29、ST,SRC (指定位送CF,该位取反) BTR DEST,SRC (指定位送CF,该位清0) BTS DEST,SRC (指定位送CF,该位置1)如 MOV AX,1234H ;AX=0001001000110100B MOV CX,5 BT AX,CX ;CF=1,AX=1234H BTC AX,CX ;CF=1,AX=1214H BTS AX,CX ;CF=0,AX=1234H BTR AX,CX ;CF=1,AX=1214H编辑ppt2、位扫描指令 BSF DEST,SRC功能:从低位开始扫描SRC,若所有位为0,则ZF=0,否 则ZF=1,且将第一个出现1的位号存入DEST中。 BS
30、R DEST,SRC功能:从高位开始扫描SRC,若所有位为0,则ZF=0,否 则ZF=1,且将第一个出现1的位号存入DEST中。如 MOV AX,1234H ;AX=0001001000110100B BSF BX,AX ;ZF=1,BX=0002H BSR DX,CX ;CF=1,AX=000CH 编辑ppt3、位标志指令 CLC (CF=0) STC (CF=1) CLD (DF=0) STD (DF=1) CLI (IF=0) STI (IF=1) 4、条件设置字节指令 格式:SETCOND DEST 功能:测试条件(COND)若为真,则将DEST置01H,否则置00H。见P87的表3.
31、3 编辑ppt3.3.4 控制转移类指令该类指令不影响标志位。无条件转移指令条件转移指令循环控制指令编辑ppt一、无条件转移指令TARGET:目标标号 REG:通用寄存器1、段内直接转移 JMP TARGET2、段内间接转移 JMP REG JMP NEAR PTR REG3、段间直接转移 JMP FAR PTR TARGET4、段间间接转移 JMP FAR PTR REG编辑ppt二、条件转移指令1、单标志位条件转移指令 JO TARGET ;OF=1,即溢出转 JNO TARGET ;OF=0,不溢出转移 JS TARGET ;SF=1,结果为负转移 JNS TARGET ;SF=0,结果
32、为正转移 JC TARGET ;CF=1,有进位转移 JNC TARGET ;CF=0,无进位则转移JP TARGET ;PF=1,为偶转移JNP TARGET ; PF=0,为奇转移 JEJZ TARGET ;ZF=1,等于或为零转移JNEJNZ TARGET ;ZF=0,等于或非零转移编辑ppt例:在不改变AL值的同时,检测AL 中1的个数,且存放在BL中。 .MODEL TINY .CODE .STARTUP MOV BL,0 MOV DL,8 AGAIN: ROL AL,1 JNC NEXT INC BL NEXT: DEC DL JNZ AGAIN .EXIT END编辑ppt2、无
33、符号数比较条件转移指令助记符: J转移 A高于 B低于 E等于 N不指令: JA/JNBE TARGET ;高于/不低于等于转移JAE/JNB TARGET ;高于等于/不低于转移JB/JNAE TARGET ;低于/不高于等于转移JBE/JNA TARGET ;低于等于/不高于转移编辑ppt3、带符号数比较条件转移指令 J转移 G大于 L小于 E等于 N不 JG/JNLE TARGET ;大于/不小于等于转移JGE/JNL TARGET ;大于等于/不小于转移JL/JNGE TARGET ;小于/不大于等于转移JLE/JNG TARGET ;小于等于/不大于转移4、测试CX条件转移指令JCX
34、Z TARGET ;CX=0 转移JECXZ TARGET ;ECX=0 转移编辑ppt使用条件转移指令应注意:*条件转移指令一般跟在CMP指令或TEST指令之后,根据其影响的标志位来决定是否产生转移。*当条件满足时,转移到目标标号去执行,否则,顺着程序往下执行。编辑ppt例3.65 假设AL中带符号数X为某值,试编程将求出的符号函数值f(x)存放在AH中。 .MODEL TINY .CODE .STARTUP CMP AL,0 JGE BIG MOV AL,0FFH JMP DONE BIG: JE DONE MOV AL,1DONE: MOV AH,AL .EXIT END编辑ppt三、循
35、环控制指令格式:LOOPCC TARGET功能:(E)CX1 (E)CX,不影响标志位,且测试条件CC成立,则转移到TARGET处执行.LOOP ; CX1 CX,若CX0则循环LOOPW ;同上LOOPD ; ECX1 ECX,若ECX0则循环LOOPE/LOOPZ ; CX1 CX,若CX0且ZF=1则循环LOOPEW/LOOPZW ;同上LOOPED/LOOPZD ; ECX1 ECX,若ECX0且ZF=1则循环LOOPNE/LOOPNZ ; CX1 CX,若CX0且ZF=0则循环LOOPNEW/LOOPNZW ;同上LOOPNED/LOOPNZD ; ECX1 ECX,若ECX0且ZF
36、=0则循环编辑ppt例3.68 找出以ARRAY为首地址的100个字数组中的第一个非0项,送AX寄存器中. .MODEL SMALL .DATAARRAY DW 0, 0, 0, 0, 1010H, ;(100个字) .CODE .STARTUP MOV CX, 64H LEA BX, ARRAY MOV SI, 0FFFEH ZERO: INC SI INC SI CMP WORD PTR BX+SI, 0 LOOPZ ZERO JCXZ A1 MOV AX, BX+SI A1: NOP .EXIT END编辑ppt3.3.5 串操作指令几个概念: 串 串元素 串操作有关隐含约定:寻址: 以
37、DS:(E)SI寻址源串, 以ES:(E)DI寻址目的串 每次串操作后, (E)SI和(E)DI自动指向下一串元素地址移动方向: 当DF=0时, (E)SI和(E)DI的修改为增量 当DF=1时, (E)SI和(E)DI的修改为减量 (E)SI和(E)DI初始赋值 若DF=0, 赋首偏移地址 若DF=1, 赋末偏移地址 编辑ppt一、重复前缀指令REP 说明:在串操作指令之前若加上REP,则执行一次串操作后不仅自动修改(E)SI和(E)DI ,而且执行(E)CX1( E)CX ,若(E)CX0,再次重复串操作,直到(E)CX=0为止。 REPE/Z 说明: (E)CX1( E)CX,若(E)C
38、X0且ZF=1,则重复 REPNE/REPNZ说明: (E)CX1( E)CX,若(E)CX0且ZF=0,则重复二、方向标志指令 CLD ; (DF=0) STD ; (DF=1)编辑ppt三、串传送指令REP MOVSB/MOVSW/MOVSD 功能:将DS:(E)SI的内容复制到ES:(E)DI中例3.69 将以SRC开头的100个字节传送到以DEST开头的单元中. .MODEL SMALL .DATA MOV CX,100SRC DB 1,2,3, ;(100个字节) LEA SI, SRCDEST DB 100 DUP(?) LEA DI, DEST .CODE CLD .STARTU
39、P REP MOVSB MOV AX,DATA .EXIT MOV ES,AX END编辑ppt四、串比较指令REPE/Z REPNE/NZCMPSB/CMPSW/CMPSD 功能:将DS:(E)SI的内容ES:(E)DI的内容例3.70 .MODEL SMALL .DATA LEA DI, DESTSRC DB A B C D E F G H CLD DEST DB A B C E F F F E REPE CMPSBSUT DB ? JZ EQUL .CODE MOV BH,0 .STARTUP JMP DONE MOV AX,DATA EQUL:MOV BH, 0FFH MOV ES,A
40、X DONE:MOV SUT,BH MOV CX, 8 .EXIT LEA SI, SRC END编辑ppt五、串扫描指令REPE/Z REPNE/NZSCASB/SCASW/SCASD 功能:将AL或AX或EAX的内容ES:(E)DI的内容例3.70 .MODEL SMALL MOV AL,C .DATA CLD DEST DB A B C D E F REPNE SCASBADDR DW ? JZ EQUL .CODE MOV DI,0 .STARTUP JMP DONE MOV AX,DATA EQUL:DEC DI MOV ES,AX DONE:MOV ADDR,DI MOV CX,
41、6 .EXIT LEA DI, DEST END编辑ppt六、串装入指令LODSB/LODSW/LODSD 功能:将DS:(E)SI所指的串元素装入AL或AX或EAX中 七、串存储指令 REPSTOSB/STOSW/STOSD功能:将AL或AX或EAX中的内容存入ES:(E)DI所指的目的串单元中编辑ppt3.3.6 输入/输出指令一、输入/输出指令几个概念: I/O端口 输入 输出有关约定:操作数 两操作数分别是端口地址内容和累加器(AL或AX或EAX)内容。寻址: 直接寻址(8位端口地址,0255) 间接寻址(16位端口地址,由DX指定,寻址64K) 端口地址数据长度 每个端口数据长度均为8位 编辑ppt1、输入指令IN DEST,SRC其中,DEST可以是AL或AX或EAX SRC可以是8位端口地址或DX如:IN AL,80H IN AX,80H IN EAX,80H MOV DX,6000H IN AL,DX IN AX,DX IN EAX,DX编辑ppt2、输出指令OUT DEST,SRC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《光通信技术简介》课件
- 数学学案:课堂导学利用导数判断函数的单调性
- 实施医疗质量管理创新绩效评价与考核机制措施
- 《求真求实求特色》课件
- 《通信网概述》课件
- 医疗装备应急预案培训
- 第一至三章导游服务导游员道德修养
- 美术莫高窟教育课件
- 《公司管理体系简介》课件
- 客户汇报培训简报
- 建筑公司简介课件模板-建筑工程公司简介模板
- 川芎茶调颗粒的安全性评价研究
- 中国食物成分表2018年(标准版)第6版
- 2024年江西省财投供应链金融有限公司招聘笔试参考题库附带答案详解
- 2024年政府工作报告基础知识试题及答案(100题)
- JTG F80-1-2004 公路工程质量检验评定标准 第一册 土建工程
- 2023-2024苏教版小学五年级数学上册全册测评试卷(含答案)
- 小学英语就业能力展示
- 中医-艾灸治疼痛
- “安全风险分级管控”工作制度(2篇)
- 新能源汽车技术职业生涯规划
评论
0/150
提交评论