




已阅读5页,还剩106页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
指令系统一组指令的集合 第3章80 x86的指令系统和寻址方式 指令 寻址方式与数据有关的寻址方式与转移地址有关的寻址方式 1 8086的寻址方式 与数据有关的寻址方式 以MOV指令为例立即寻址MOVAX 3069H寄存器寻址MOVAL BH直接寻址MOVAX 2000H 寄存器间接寻址MOVAX BX 寄存器相对寻址MOVAX COUNT SI 基址变址寻址MOVAX BP DI 相对基址变址寻址MOVAX MASK BX SI 存储器寻址 1 立即寻址方式 操作数在指令中给出指令格式 MOVAL 5MOVAX 3064HMOVAL A 只能用于SRC字段MOV40H AL SRC和DST的字长一致MOVAH 3064H 2 寄存器寻址方式 操作数在指定的寄存器中MOVAX BXMOVAL BHMOVAX 3064H 字节寄存器只有AHALBHBLCHCLDHDL SRC和DST的字长一致MOVAH BX CS不能用MOV指令改变MOVCS AX 3 直接寻址方式 有效地址EA由指令直接给出例 MOVAX 2000H EA 2000H 假设 DS 3000H 那么PA 32000H 隐含的段为数据段DS 可使用段跨越前缀MOVAX ES 2000H 操作数地址可由变量 符号地址 表示 但要注意VALUEDB10变量的属性MOVAH VALUEMOVAX VALUE MOVAX WORDPTRVALUE 50 30 32000 AHAL 30 50 AX 3050H 寄存器间接寻址 EA在基址寄存器 BX BP 或变址寄存器 SI DI 中MOVAX BX PA 16d DS BX MOVAX ES BX PA 16d ES BX MOVAX BP PA 16d SS BP 不允许使用AX CX DX存放EAMOVAX CX SRC和DST的字长一致MOVDL BX BX 指示一个字节单元MOVDX BX BX 指示一个字单元 适于数组 字符串 表格的处理 5 寄存器相对寻址方式 指令格式 MOVAX COUNT SI 或MOVAX COUNT SI 假设 DS 3000H SI 2000H COUNT 3000H 则 PA 35000H假设 35000H 1234H 那么 AX 1234H 适于数组 字符串 表格的处理 6 基址变址寻址方式 指令格式 MOVAX BX DI MOVAX BX DI MOVAX ES BX SI 适于数组 字符串 表格的处理 必须是一个基址寄存器和一个变址寄存器的组合MOVAX BX BP MOVAX SI DI 有效地址 BX SI BP DI 7 相对基址变址寻址方式MOVAX MASK BX SI 或MOVAX MASK BX SI 或MOVAX MASK BX SI 有效地址 BX SI 8位 BP DI 16位 位移量 访问存储器的方式 默认的段寄存器 可跨越的段寄存器 偏移地址 取指令CS无IP堆栈操作SS无SP一般数据访问DSCSESSS有效地址EABP作为基址的寻址SSCSDSESBP串操作的源操作数DSCSESSSSI串操作的目的操作数ES无DI 段寄存器的使用规定 例 编写一段显示字符串STRING的程序DATASEGMENTSTRINGDB HAPPYNEWYEAR 0DH 0AH COUNTDW17DATAENDS 1 直接寻址movdl stringmovah 2int21h 显示字符 H movdl string 1movah 2int21h 显示字符 A 2 寄存器间接寻址movcx count movcx 17movbx offsetstring string的偏址 bxNext movdl bx movah 2int21h 显示一个字符incbxloopnext 循环指令 3 寄存器相对寻址movcx count movcx 17movsi 0Next movdl string si movdl string si movah 2int21h 显示一个字符incsiloopnext 循环指令 4 基址变址寻址movcx count movcx 17movbx offsetstring string的偏址 bxmovsi 0Next movdl bx si movdl bx si movah 2int21h 显示一个字符incsiloopnext 循环指令 5 DOS显示字符串功能movdx offsetstring string的偏址 dx leadx stringmovah 9int21h 显示一串字符 80 x86新增的寻址方式 EA 基址寄存器 变址寄存器 比例因子 位移量 1 比例变址寻址方式例 MOVEAX COUNT ESI 4 2 基址比例变址寻址方式例 MOVECX EAX EDI 4 3 相对基址比例变址寻址方式例 MOVEAX TABLE EBP EDI 4 16位和32位寻址的差异地址成分16位寻址32位寻址基址寄存器BX BP任何32位通用寄存器变址寄存器SI DI除ESP外的任何32位通用寄存器比例因子11 2 4 8 与转移地址有关的寻址方式 段内寻址段内直接寻址JMPNEARPTRNEXT段内间接寻址JMPTABLE BX 段间寻址段间直接寻址JMPFARPTRNEXT段间间接寻址JMPDWORDPTR BX 用来确定转移指令及转子指令的转向地址 1 段内直接寻址 转向的有效地址 当前 IP 位移量 8bit 16bit 例 JMPNEARPTRNEXT近转移 32768 32767JMPSHORTNEXT短转移 128 127 2 段内间接寻址转向的有效地址是一个寄存器或存储单元的内容 可用除立即数以外的任何一种数据寻址方式得到 例 TABLE 20A2H BX 1256H SI 528EH DS 2000H 232F8H 3280H 264E4H 2450HJMPBX IP 1256HJMPTABLE BX JMPWORDPTRTABLE BX IP 3280HJMP BX SI JMPWORDPTR BX SI IP 2450H code1segment jmpfarptrnext code1ends code2segment next code2ends 3 段间直接寻址用指令中提供的转向段地址和偏移地址取代CS和IP例 4 段间间接寻址用存储器中的两个相继字的内容取代CS和IP 存储单元的地址可用存储器寻址方式得到 例 JMPDWORDPTR INTERS BX PA DS 24 BX INTERS PA 1 PA IP PA 3 PA 2 CS 第3章练习Page1073 13 33 53 73 113 13 数据传送指令 算术指令 逻辑指令 串处理指令 控制转移指令 处理机控制与杂项操作指令 2 8086的指令系统 重点关注 指令的汇编格式指令的基本功能指令支持的寻址方式指令的执行对标志位的影响指令的特殊要求 数据传送指令 通用数据传送指令MOV PUSH POP XCHG 累加器专用传送指令IN OUT XLAT 地址传送指令LEA LDS LES 标志寄存器传送指令LAHF SAHF PUSHF POPF 类型转换指令CBW CWD 传送指令 MOVDST SRC执行操作 DST SRC 注意 DST SRC不能同时为段寄存器MOVDS ES 立即数不能直接送段寄存器MOVDS 2000H DST不能是立即数和CS DST SRC不能同时为存储器寻址 不影响标志位 通用数据传送指令 MOVAX DSEGMOVDS AX 进栈指令 PUSHSRC执行操作 SP SP 2 SP 1 SP SRC 出栈指令 POPDST执行操作 DST SP 1 SP SP SP 2堆栈 先进后出 的存储区 段地址存放在SS中 SP在任何时候都指向栈顶 进出栈后自动修改SP 注意 堆栈操作必须以字为单位 不影响标志位 不能用立即寻址方式PUSH1234H DST不能是CSPOPCS 例 假设 AX 2107H 执行PUSHAX SP PUSHAX执行前 SP 07H21H 低地址高地址 PUSHAX执行后 SP 07H21H POPBX执行前 SP 07H21H 低地址高地址 POPBX执行后 BX 2107H 例 POPBX 例 PUSHDSSUBAX AXPUSHAX RET例 PUSHAXPUSHBXPUSHCX 其间用到AX BX CXPOPCX 后进先出POPBXPOPAX 交换指令 XCHGOPR1 OPR2执行操作 OPR1 OPR2 注意 不影响标志位 不允许使用段寄存器例 XCHGBX BP SI XCHGAL BH 累加器专用传送指令 只限使用AX或AL 输入指令IN I O CPU 长格式 INAL PORT 字节 INAX PORT 字 执行操作 AL PORT 字节 AX PORT 1 PORT 字 短格式 INAL DX 字节 INAX DX 字 执行操作 AL DX 字节 AX DX 1 DX 字 输出指令OUT CPU I O 长格式 OUTPORT AL 字节 OUTPORT AX 字 执行操作 PORT AL 字节 PORT 1 PORT AX 字 短格式 OUTDX AL 字节 OUTDX AX 字 执行操作 DX AL 字节 DX 1 DX AX 字 注意 不影响标志位 前256个端口号00H FFH可直接在指令中指定 长格式 如果端口号 256 端口号 DX 短格式 例 INAX 28HMOVDATA WORD AX例 MOVDX 3FCHINAX DX例 OUT5 AL例 测试某状态寄存器 端口号27H 的第2位是否为1INAL 27HTESTAL 00000100BJNZERROR 若第2位为1 转ERROR处理 例 Sound程序 movdx 100inal 61handal 11111100bsound xoral 2 101out61h al ONOFFONmovcx 140h 脉宽Wait1 loopwait1decdxjnesound 设备控制寄存器 端口61H 1 00 控制其它外部设备 与门 放大器 2号定时器门控 10 BX 30HF0040 31HF0041 AL 332HF0042 33HF0043 TABLE DS F000H 换码指令 XLAT或XLATOPR执行操作 AL BX AL 例 MOVBX OFFSETTABLE BX 0040HMOVAL 3XLATTABLE指令执行后 AL 33H注意 不影响标志位 字节表格 长度不超过256 首地址 BX 需转换的代码位移量 AL 地址传送指令有效地址送寄存器指令 LEAREG SRC执行操作 REG SRC指针送寄存器和DS指令 LDSREG SRC执行操作 REG SRC DS SRC 2 相继二字 寄存器 DS指针送寄存器和ES指令 LESREG SRC执行操作 REG SRC ES SRC 2 相继二字 寄存器 ES 例 LEABX BX SI 0F62H LDSSI 10H LESDI BX 40H00H00H30H TABLE DS 1000H MOVBX TABLE BX 0040HMOVBX OFFSETTABLE BX 1000HLEABX TABLE BX 1000HLDSBX TABLE BX 0040H DS 3000HLESBX TABLE BX 0040H ES 3000H 注意 不影响标志位 REG不能是段寄存器 SRC必须为存储器寻址方式 标志寄存器传送指令标志送AH指令 LAHF执行操作 AH FLAGS的低字节 AH送标志寄存器指令 SAHF执行操作 FLAGS的低字节 AH 标志进栈指令 PUSHF执行操作 SP SP 2 SP 1 SP FLAGS 标志出栈指令 POPF执行操作 FLAGS SP 1 SP SP SP 2 影响标志位 类型转换指令CBWAL AX执行操作 若 AL 的最高有效位为0 则 AH 00H若 AL 的最高有效位为1 则 AH FFHCWDAX DX AX 执行操作 若 AX 的最高有效位为0 则 DX 0000H若 AX 的最高有效位为1 则 DX FFFFH例 AX 0BA45HCBW AX 0045HCWD DX 0FFFFH AX 0BA45H注意 无操作数指令 隐含对AL或AX进行符号扩展 不影响条件标志位 算术指令 加法指令ADD ADC INC 减法指令SUB SBB DEC NEG CMP 乘法指令MUL IMUL 除法指令DIV IDIV 十进制调整指令DAA DAS AAA AAS AAM AAD 加法指令加法指令 ADDDST SRC执行操作 DST SRC DST 带进位加法指令 ADCDST SRC执行操作 DST SRC DST CF加1指令 INCOPR执行操作 OPR OPR 1 注意 除INC指令不影响CF标志外 均对条件标志位有影响 加法指令对条件标志位的影响 CF位表示无符号数相加的溢出 OF位表示带符号数相加的溢出 1结果为负0否则 SF 1结果为00否则 ZF 1和的最高有效位有向高位的进位0否则 CF 1两个操作数符号相同 而结果符号与之相反0否则 OF 举例 n 8bit带符号数 128 127 无符号数 0 255 00000100 0000101100001111带 4 11 15OF 0无 4 11 15CF 0 带符号数和无符号数都不溢出 00001001 0111110010000101带 9 124 123OF 1无 9 124 133CF 0 带符号数溢出 无符号数溢出 00000111 11111011100000010带 7 5 2OF 0无 7 251 2CF 1 带符号数和无符号数都溢出 10000111 11110101101111100带 121 11 124OF 1无 135 245 124CF 1 例 双精度数的加法 DX 0002H AX 0F365H BX 0005H CX 8100H指令序列ADDAX CX 1 ADCDX BX 2 1 执行后 AX 7465HCF 1OF 1SF 0ZF 0 2 执行后 DX 0008HCF 0OF 0SF 0ZF 0 减法指令减法指令 SUBDST SRC执行操作 DST DST SRC 带借位减法指令 SBBDST SRC执行操作 DST DST SRC CF减1指令 DECOPR执行操作 OPR OPR 1求补指令 NEGOPR执行操作 OPR OPR 比较指令 CMPOPR1 OPR2执行操作 OPR1 OPR2 注意 除DEC指令不影响CF标志外 均对条件标志位有影响 减法指令对条件标志位 CF OF ZF SF 的影响 CF位表示无符号数减法的溢出 OF位表示带符号数减法的溢出 1被减数的最高有效位有向高位的借位0否则 CF 1两个操作数符号相反 而结果的符号与减数相同0否则 OF 1减法转换为加法运算时无进位0否则 CF 或 NEG指令对CF OF的影响 0操作数为01否则 CF 1操作数为 128 字节运算 或操作数为 32768 字运算 0否则 OF 00011110 00011111 NEG指令对CF OF的影响 0操作数为01否则 CF 1操作数为 128 字节运算 或操作数为 32768 字运算 0否则 OF 00001111 000110000 10000111 00011000 例 x y z均为双精度数 分别存放在地址为X X 2 Y Y 2 Z Z 2的存储单元中 用指令序列实现w x y 24 z 并用W W 2单元存放w MOVAX XMOVDX X 2ADDAX YADCDX Y 2 x yADDAX 24ADCDX 0 x y 24SUBAX ZSBBDX Z 2 x y 24 zMOVW AXMOVW 2 DX 结果存入W W 2单元 乘法指令无符号数乘法指令 MULSRC带符号数乘法指令 IMULSRC执行操作 字节操作数 AX AL SRC 字操作数 DX AX AX SRC 注意 AL AX 为隐含的乘数寄存器 AX DX AX 为隐含的乘积寄存器 SRC不能为立即数 除CF和OF外 对条件标志位无定义 乘法指令对CF OF的影响 例 AX 16A5H BX 0611H 1 IMULBL AX AL BL A5 11 5B 11 060B F9F5 AX 0F9F5HCF OF 1 2 MULBX DX AX AX BX 16A5 0611 00895EF5 DX 0089H AX 5EF5HCF OF 1 00乘积的高一半为零11否则 MUL指令 CF OF 00乘积的高一半是低一半的符号扩展11否则 IMUL指令 CF OF 1010010101011011 除法指令无符号数除法指令 DIVSRC带符号数除法指令 IDIVSRC执行操作 字节操作 AL AX SRC 的商 AH AX SRC 的余数字操作 AX DX AX SRC 的商 DX DX AX SRC 的余数注意 AX DX AX 为隐含的被除数寄存器 AL AX 为隐含的商寄存器 AH DX 为隐含的余数寄存器 SRC不能为立即数 对所有条件标志位均无定义 如何判别结果有效 例 x y z v均为16位带符号数 计算 v x y z 540 x MOVAX XIMULY x y DX AX MOVCX AXMOVBX DXMOVAX ZCWD Z DX AX ADDCX AXADCBX DX x y z BX CX SUBCX 540SBBBX 0 x y z 540MOVAX VCWD V DX AX SUBAX CXSBBDX BX v x y z 540 IDIVX v x y z 540 x AX 余数 DX 十进制调整指令BCD码 用二进制编码的十进制数 又称二 十进制数压缩的BCD码 用4位二进制数表示1位十进制数例 59 10 01011001 BCD非压缩的BCD码 用8位二进制数表示1位十进制数例 59 10 0000010100001001 BCD数字的ASCII码是一种非压缩的BCD码DIGITASCIIBCD030H00110000131H00110001232H00110010 939H00111001 例 写出 3590 10的压缩BCD码和非压缩BCD码 并分别把它们存入数据区PAKED和UNPAK压缩BCD 3590 10 0011010110010000 BCD非压缩BCD 3590 10 00000011000001010000100100000000 BCD PAKED90H35H UNPAK00H09H05H03H 问题的提出 十进制调整指令 19压缩BCD 00011001 2700100001 110 08 00001000 00100111 BCD AF 1 1 压缩的BCD码调整指令 DAA加法的十进制调整指令 DAS减法的十进制调整指令 2 非压缩的BCD码调整指令 AAA加法的ASCII码调整指令 AAS减法的ASCII码调整指令 AAM乘法的ASCII码调整指令 AAD除法的ASCII码调整指令 压缩BCD运算举例 1 MOVAL BCD1 BCD1 34HADDAL BCD2 BCD2 59H AL 8DHDAA 8DH 06H 93HMOVBCD3 AL BCD3 93H 2 MOVAL BCD1 BCD1 34HSUBAL BCD2 BCD2 59H AL 0DBHDAS 0DBH 60H 06H 75HMOVBCD3 AL BCD3 75 25 10n 补码 非压缩BCD运算举例 1 MULBL AX AL BL 08 09AAM AL 0AH 48H 0AH 0702 2 AAD AX AH 0AH AL 48HDIVBL AL AX BL 48H 4 12HAAM AL 0AH 12H 0AH 0108 第3章作业Page1093 14 3 17 逻辑指令 逻辑运算指令AND OR NOT XOR TEST 移位指令SHL SHR SAL SAR ROL ROR RCL RCR 逻辑非指令 NOTOPR OPR不能为立即数执行操作 OPR OPR 不影响标志位逻辑与指令 ANDDST SRC执行操作 DST DST SRC 逻辑或指令 ORDST SRC执行操作 DST DST SRC 异或指令 XORDST SRC执行操作 DST DST SRC 测试指令 TESTOPR1 OPR2执行操作 OPR1 OPR2 CFOFSFZFPFAF00 无定义 根据运算结果设置 逻辑运算指令 例 屏蔽AL的第0 1两位ANDAL 0FCH例 置AL的第5位为1ORAL 20H例 使AL的第0 1位变反XORAL 3例 测试某些位是0是1TESTAL 1JZEVEN OR00100000 1 01XOR00000011 10 AND11111100 00 AND000000010000000 逻辑左移SHLOPR CNT逻辑右移SHROPR CNT算术左移SALOPR CNT 同逻辑左移 算术右移SAROPR CNT CF0 0CF CF 移位指令 循环左移ROLOPR CNT循环右移ROROPR CNT带进位循环左移RCLOPR CNT带进位循环右移RCROPR CNT CF CF CF CF 例 AX 0012H BX 0034H 把它们装配成 AX 1234H 例 BX 84F0H 1 BX 为无符号数 求 BX 2SHRBX 1 BX 4278H 2 BX 为带符号数 求 BX 2SALBX 1 BX 09E0H OF 1 3 BX 为带符号数 求 BX 4MOVCL 2SARBX CL BX 0E13CH MOVCL 8ROLAX CLADDAX BX MOVCH 4 循环次数MOVCL 4 移位次数NEXT ROLBX CLMOVAX BXANDAX 0FHPUSHAXDECCHJNZNEXT 0008 0004 000F 0000 SP 3 BX 84F0H 把 BX 中的16位数每4位压入堆栈 串处理指令 设置方向标志指令CLD STD 串处理指令 串重复前缀MOVSB MOVSWREPSTOSB STOSWREPE REPZLODSB LODSWREPNE REPNZCMPSB CMPSWSCASB SCASW 与REP配合工作的MOVS STOS LODSREP执行操作 1 如 CX 0则退出REP 否则转 2 2 CX CX 1 3 执行MOVS STOS LODS 4 重复 1 3 MOVS串传送指令 MOVSDST SRCMOVSB 字节 MOVSW 字 例 MOVSES BYTEPTR DI DS SI 执行操作 1 DI SI 2 字节操作 SI SI 1 DI DI 1字操作 SI SI 2 DI DI 2方向标志DF 0时用 DF 1时用 REPMOVS 将数据段中的整串数据传送到附加段中 源串 数据段 目的串 附加段 执行REPMOVS之前 应先做好 1 源串首地址 末地址 SI 2 目的串首地址 末地址 DI 3 串长度 CX 4 建立方向标志 CLD使DF 0 STD使DF 1 SI DI 数据段附加段 SI DI datasegmentmess1db personal computer dataendsextrasegmentmess2db17dup extraendscodesegmentmovax datamovds axmovax extramoves axleasi mess1leadi mess2movcx 17cldrepmovsb codeends datasegmentmess1db personal computer mess2db17dup dataendscodesegmentmovax datamovds axmoves axleasi mess1leadi mess2movcx 17cldrepmovsb codeends LODS从串取指令 LODSSRCLODSB 字节 LODSW 字 执行操作 字节操作 AL SI SI SI 1字操作 AX SI SI SI 2 注意 LODS指令一般不与REP联用 源串一般在数据段中 允许使用段跨越前缀来修改 目的串必须在附加段中 不影响条件标志位 与REPE REPZ REPNE REPNZ 配合工作的CMPS和SCASREPE REPZREPNE REPNZ执行操作 1 如 CX 0或ZF 0 ZF 1 则退出串操作 否则转 2 2 CX CX 1 3 执行CMPS SCAS 4 重复 1 3 CMPS串比较指令 CMPSSRC DSTCMPSB 字节 CMPSW 字 执行操作 1 SI DI 根据比较结果置条件标志位 相等ZF 1不等ZF 0 2 字节操作 SI SI 1 DI DI 1字操作 SI SI 2 DI DI 2 SCAS串扫描指令 SCASDSTSCASB 字节 SCASW 字 执行操作 字节操作 AL DI DI DI 1字操作 AX DI DI DI 2 例 从一个字符串中查找一个指定的字符messdb COMPUTER leadi messmoval T movcx 8cldrepnescasb C O M P U T E R di CX 2 例 比较两个字符串 找出它们不相匹配的位置 例 反向传送 leasi mess1leadi mess2movcx 8cldrepecmpsb leasi mess1 7leadi mess2 7movcx 8STdrepmovsb 控制转移指令 无条件转移指令JMP 条件转移指令JZ JNZ JE JNE JS JNS JO JNO JP JNP JB JNB JL JNL JBE JNBE JLE JNLE JCXZ 循环指令LOOP LOOPZ LOOPE LOOPNZ LOOPNE 子程序调用和返回指令CALL RET 中断与中断返回指令INT INTO IRET 无条件转移指令 段内直接短转移 JMPSHORTOPR执行操作 IP IP 8位位移量段内直接近转移 JMPNEARPTROPR执行操作 IP IP 16位位移量段内间接转移 JMPWORDPTROPR执行操作 IP EA 段间直接远转移 JMPFARPTROPR执行操作 IP OPR的段内偏移地址 CS OPR所在段的段地址段间间接转移 JMPDWORDPTROPR执行操作 IP EA CS EA 2 条件转移指令 注意 只能使用段内直接寻址的8位位移量 1 根据单个条件标志的设置情况转移格式测试条件JZ JE OPRZF 1JNZ JNE OPRZF 0JSOPRSF 1JNSOPRSF 0JOOPROF 1JNOOPROF 0JPOPRPF 1JNPOPRPF 0JCOPRCF 1JNCOPRCF 0 2 比较两个无符号数 并根据比较结果转移 格式测试条件 JB JNAE JC OPRCF 1 JNB JAE JNC OPRCF 0 JBE JNA OPRCF ZF 1 JNBE JA OPRCF ZF 0 适用于地址或双精度数低位字的比较 3 比较两个带符号数 并根据比较结果转移 格式测试条件 JL JNGE OPRSF OF 1 JNL JGE OPRSF OF 0 JLE JNG OPR SF OF ZF 1 JNLE JG OPR SF OF ZF 0 适用于带符号数的比较 4 测试CX的值为0则转移格式测试条件JCXZOPR CX 0 例 如果X 50 转到TOO HIGH 否则 X Y RESULT 如果溢出转到OVERFLOW JGJOJNS 例 是双精度数 分别存于DX AX及BX CX中 时转L1 否则转L2 CMPDX BXJGL1JLL2CMPAX CXJAL1L2 L1 循环指令 注意 CX中存放循环次数 只能使用段内直接寻址的8位位移量LOOPLOOPZ LOOPELOOPNZ LOOPNE执行步骤 1 CX CX 1 2 检查是否满足测试条件 如满足则 IP IP 8位位移量 实行循环 不满足则IP不变 退出循环 循环指令 LOOPOPR测试条件 CX 0为零或相等时循环指令 LOOPZ LOOPE OPR测试条件 ZF 1且 CX 0不为零或不相等时循环指令 LOOPNZ LOOPNE OPR测试条件 ZF 0且 CX 0 例 求首地址为ARRAY的M个字之和 结果存入TOTAL MOVCX MMOVAX 0MOVSI AXAGAIN ADDAX ARRAY SI ADDSI 2LOOPAGAINMOVTOTAL AX 例 在多重循环的程序结构中 CX计数器的保存和恢复 MOVCX MAGAIN PUSHCXMOVCX NNEXT LOOPNEXT POPCXLOOPAGAIN MOVDI MAGAIN MOVCX NNEXT LOOPNEXT DECDIJNZAGAIN 子程序调用和返回指令 code1segmentmainprocfar callfarptrsubp retmainendpcode1endscode2segmentsubpprocfar retsubpendpcode2ends 段间调用和返回 codesegmentmainprocfar callsubp retmainendpsubpprocnear retsubpendpcodeends 段内调用和返回 CALL调用指令段内直接近调用 CALLDST执行操作 SP SP 2 SP 1 SP IP IP IP 16位位移量段内间接近调用 CALLDST执行操作 SP SP 2 SP 1 SP IP IP EA 段间直接远调用 CALLDST执行操作 SP SP 2 SP 1 SP CS SP SP 2 SP 1 SP IP IP 偏移地址 CS 段地址段间间接远调用 CALLDST执行操作 SP SP 2 SP 1 SP CS SP SP 2 SP 1 SP IP IP EA CS EA 2 RET返回指令段内近返回 RET执行操作 IP SP 1 SP SP SP 2段内带立即数近返回 RETEXP段间远返回 RET执行操作 IP SP 1 SP SP SP 2 CS SP 1 SP SP SP 2段间带立即数远返回 RETEXP 例 带立即数返回 SP 堆栈段 codesegmentmainprocfar pushaxpushbxpushcxcallsub retmainendpsubprocnear ret6subendpcodeends SP 中断指令 类型0的 IP 类型0的 CS 类型1的 IP 类型1的 CS 类型N的 IP 类型N的 CS 类型255的 IP 类型255的 CS 00000 00004 4 N 003FC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汉字硬笔书法课件
- 天津市南开区2024-2025学年八年级(下)期末物理试卷(含解析)
- 汉字形声字课件
- 安徽省合肥市百花中学等四校联考2024-2025学年高一下学期7月期末考试地理试卷(含答案)
- 3D打印技术与应用 知到智慧树见面课答案
- 社会化电商的发展现状与挑战
- 体感游戏产业市场潜力及商机分析
- 美容美发行业市场调研与创新发展
- T-QGCML 4835-2025 板翅式换热器翅片成型和打孔生产线
- 军事理论与国防教育知到智慧树答案
- 2025年燃气电厂笔试题库及答案
- 2025年道路运输两类人员安全员考试考核试题库答案
- 2025年学法减分试题及答案
- 《智能建造概论》高职完整全套教学课件
- 2025年教育综合理论知识试题及答案
- 超声科进修学习汇报
- 2024年甘肃省舟曲县邮政公开招聘工作人员试题带答案详解
- 2025年小学英语(2022版)新课程标准考试测试卷及答案(共四套)
- (高清版)DB34∕T 5193-2025 河流水生态监测技术规范
- 2025年德语DSH考试试卷德语语法练习与解析
- 肥料行业车间管理制度
评论
0/150
提交评论