




已阅读5页,还剩84页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 3 3IBMPC机的指令系统 数据传送指令算术指令逻辑指令串处理指令控制转移指令处理机控制指令 注意 1 指令的基本功能2 指令的执行对标志位的影响3 对寻址方式或寄存器使用的限制和隐含使用 学习方法 1 理解而不是死记2 读程序 上机调试要求 熟悉debug的使用 2 3 3 1数据传送指令通用数据传送指令MOV PUSH POP PUSHA PUSHAD POPA POPAD XCHG累加器专用传送指令IN OUT XLAT地址传送指令LEA LDS LES标志寄存器传送指令LAHF SAHF PUSHF POPF类型转换指令CBW CWD CWDE CDQ BSWAP 3 通用数据传送指令传送指令 MOVDST SRC执行操作 DST SRC 符号扩展传送指令 MOVSXDST 16 32 SRC 8 16 执行操作 DST 符号扩展 SRC 零扩展传送指令 MOVZXDST 16 32 SRC 8 16 执行操作 DST 零扩展 SRC 注意 不影响标志位 DST不能是CS或立即数 DST SRC不同时为段寄存器 MOVDS ES DST SRC不同时为存储单元 MOVVAR1 X 立即数不能直接送段寄存器 MOVDS 2000H MOV指令传送功能 MOVDS AXMOVCS AXMOVCH 4050HMOVDL 5BHMOVDX 5BHMOVDX ALMOVVA1 VA2MOV45 DL 目的操作数不允许是CS寄存器 数据类型不匹配 数据类型不匹配 不允许两个操作数都是存储单元 目的操作数不允许是立即数 例 判断下列指令是否合法 堆栈 先进后出 的存储区 存在于堆栈段中 SP在任何时候都指向栈顶 堆栈常用来临时存放数据 传递参数 保存和恢复寄存器 PUSH操作使栈顶向低地址方向移动 POP则相反 进栈指令 PUSHSRC语法格式 PUSHreg16 seg mem16 reg32 mem32PUSHdata 286新增功能描述 将指定的字数据压入栈顶16位指令执行操作 SP SP 2 SP 1 SP SRC 32位指令执行操作 ESP ESP 4 ESP 3 ESP 2 ESP 1 ESP SRC 7 例 假设 AX 2107H 执行PUSHAX SP 低地址 高地址 SP 07H21H 低地址 高地址 进栈方向 PUSHAX执行前 PUSHAX执行后 演示 出栈指令 POPDST语法格式 POPreg16 seg mem16 reg32 mem32 操作数不能是CS功能描述 将栈顶字数据弹出堆栈16位指令执行操作 DST SP 1 SP SP SP 232位指令执行操作 DST ESP 3 ESP 2 ESP 1 ESP ESP ESP 4 注意 不影响标志位 堆栈操作必须以字或双字为单位 9 例 POPBX SP 低地址 高地址 SP 07H21H 低地址 高地址 出栈方向 07H21H BX 2107H POPBX执行前 POPBX执行后 演示 10 PUSHA将AX CX DX BX 指令执行前的SP BP SI 和DI依次压入堆栈 POPA从堆栈依次弹出DI SI BP SP BX DX CX 和AX寄存器 PUSHAD POPAD将PUSHA POPA中的reg16换为reg32 其余不变 交换指令 XCHGOPR1 OPR2执行操作 OPR1 OPR2 例 XCHGBX BP SI XCHGAL BH 注意 不影响标志位 不允许使用段寄存器 11 累加器专用传送指令输入指令 INAC PORT I O CPU 长格式 INAL AX EAX PORT执行操作 AL PORT 字节 AX PORT 1 PORT 字 EAX PORT 3 PORT 2 PORT 1 PORT 双字 短格式 INAL AX EAX DX执行操作 AL DX 字节 AX DX 1 DX 字 EAX DX 3 DX 2 DX 1 DX 双字 12 输出指令 OUTPORT AC CPU I O 长格式 OUTPORT AL AX EAX执行操作 PORT AL 字节 PORT 1 PORT AX 字 PORT 3 PORT 2 PORT 1 PORT EAX 双字 短格式 OUTDX AL AX EAX执行操作 DX AL 字节 DX 1 DX AX 字 DX 3 DX 2 DX 1 DX EAX 双字 13 例 INAX 28H MOVDX 28H INAX DX例 MOVDX 3FCH例 OUT5 ALOUTDX AX例 测试某状态寄存器 端口号27H 的第2位是否为1INAL 27HTESTAL 00000100BJNZERROR 若第2位为1 转到ERROR处理 注意 不影响标志位 前256个端口号00H FFH可直接在指令中指定 长格式 如果端口号 256 端口号 DX 短格式 14 换码指令 XLAT执行操作 AL E BX AL 例 MOVBX OFFSETTABLE BX 0040HMOVAL 3XLAT指令执行后 AL 33H 注意 不影响标志位 字节表格 长度不超过256 首地址 BX 需转换代码 AL 15 地址传送指令有效地址送寄存器指令 LEAREG SRC执行操作 REG SRC的有效地址指针送寄存器和段寄存器指令 LDS LESREG SRCLSS LFS LGSREG SRC 386及后继机型例 LDSREG SRC执行操作 REG SRC DS SRC 2 4 功能 存储器4个或6个相继字节送寄存器 DS 注意 不影响标志位 REG不能是段寄存器 SRC必须为存储器寻址方式 16 例 LEABX BX SI 0F62H 例 LDSSI 10H 例 LESDI BX MOVBX TABLEMOVBX OFFSETTABLELEABX TABLELDSBX TABLELESBX TABLE BX 0040H BX 1000H BX 1000H BX 0040H BX 0040H ES 3000H DS 3000H 例 17 标志寄存器传送指令标志送AH指令 LAHF执行操作 AH FR的低字节 AH送标志寄存器指令 SAHF执行操作 FR的低字节 AH 标志进栈指令 PUSHF功能 FR中的标志字 栈顶执行操作 SP SP 2 SP 1 SP PSW 标志出栈指令 POPF功能 栈顶的字数据出栈 FR执行操作 PSW SP 1 SP SP SP 2 注意 SAHF和POPF影响标志位 无操作数 18 注意 不影响标志位 无操作数指令 隐含对AL或AX进行符号扩展 类型转换指令CBW执行操作 符号扩展 AL AX 8位扩展到16位 CWD执行操作 符号扩展 AX DX AX 16位扩展到32位 CWDE执行操作 符号扩展 AX EAX 16位扩展到32位 CDQ执行操作 符号扩展 EAX EDX EAX 32位扩展到64位 19 例 EAX 0A234B678HCBWCWDCWDECDQBSWAPEAX AX 0078H DX 0FFFFH AX 0B678H EAX 0FFFFB678H EDX 0FFFFFFFFH EAX 0A234B678H EAX 12345678H EAX 78563412H 20 3 3 2算术指令 加法指令ADD ADC INC XADD 减法指令SUB SBB DEC NEG CMP 乘法指令MUL IMUL 除法指令DIV IDIV 十进制调整指令DAA DAS AAA AAS AAM AAD 21 加法指令加法指令 ADDDST SRC DST DST SRC 带进位加法指令 ADCDST SRC DST SRC DST CF加1指令 INCOPR OPR OPR 1交换并相加指令 XADDDST SRC 486及后继机型TEMP SRC DST SRC DST DST TEMP 注意 影响标志AF CF OF PF SF ZF INC指令不影响CF标志 操作数可以是8位 16位或32位 主要与ADD配合 实现多精度加法运算 22 CF表示无符号数相加的溢出 OF表示带符号数相加的溢出 1结果为负0否则 SF 1结果为00否则 ZF 1和的最高有效位有向高位的进位0否则 CF 1两个操作数符号相同 而结果符号与之相反0否则 OF 加法指令对条件标志位 CF OF ZF SF 的影响 23 无符号数溢出 00000111 1111101100000010 7 5 2OF 07 251 2CF 1 带符号数和无符号数都不溢出 00000100 0000101100001111 4 11 15OF 04 11 15CF 0 带符号数溢出 00001001 0111110010000101 9 124 123OF 19 124 133CF 0 带符号数和无符号数都溢出 10000111 1111010101111100 121 11 124OF 1135 245 124CF 1 n 8bit带符号数 128 127 无符号数 0 255 带 无 带 无 带 无 带 无 24 例 双精度数 32位字 的加法 DX 0002H AX 0F365H BX 0005H CX 0E024H指令序列 1 ADDAX CX 2 ADCDX BX 1 执行后 AX 0D389HCF 1OF 0SF 1ZF 0 2 执行后 DX 0008HCF 0OF 0SF 0ZF 0 25 减法指令 注意 除DEC指令不影响CF标志外 均对条件标志位有影响 减法指令 SUBDST SRC执行操作 DST DST SRC 带借位减法指令 SBBDST SRC执行操作 DST DST SRC CF减1指令 DECOPR执行操作 OPR OPR 1求补指令 NEGOPR执行操作 OPR OPR 也可以 OPR 0FFFFH OPR 1 主要与SBB配合 实现多精度减法运算 减法指令 比较指令 CMPOPR1 OPR2执行操作 OPR1 OPR2 比较并交换指令 CMPXCHGDST SRC 486新增执行操作 累加器AC与DST相比较IF AC DST ZF 1 DST SRC ELSE ZF 0 AC DST 比较并交换8字节指令 CMPXCHG8Bm64 Pentium执行操作 IF EDX EAX m64 ZF 1 m64 ECX EBX ELSE ZF 0 EDX EAX m64 注意 均对条件标志位有影响 CMP指令执行后 通过相关标志位的值就可以看出比较的结果 如 CMPAX BX 条件 AX BX 转移指令标志位等于0JZ JE OPRZF 1不等于0JNZ JNE OPRZF 0有借位JB JNAE JC OPRCF 1无借位JNB JAE JNC OPRCF 0有借位或结果为0JBE JNA OPRCF ZF 1无借位 结果非0JNBE JA OPRCF ZF 0 关系 AX BX AX BX AX BX AX BX AX BX AX BX 无符号数比较 带符号数的比较 1 AX BX 符号相同时 关系不定 不会溢出 OF 0 当 AX BX 一定为负 SF 1 AX BX 一定非负 SF 0 2 AX BX 符号不同时 小于 大于 可能溢出前 后 时 若OF 0 则SF 1 若OF 1 则SF 0 前 后 时 若OF 0 则SF 0 若OF 1 则SF 1 AX BX SF OF不同SF OF 1 AX BX SF OF相同SF OF 0 30 减法指令对条件标志位 CF OF ZF SF 的影响 CF表示无符号数减法的溢出 1 被减数 减数差为负数超出无符号数表示范围2 OPR1 OPR2 OPR1 OPR2 OPR1 OPR2 补 OPR1 补 OPR2 补 OPR1 0FFH OPR2 1 因 OPR1 OPR2 不会产生进位OF表示带符号数减法的溢出 1被减数的最高有效位有向高位的借位0否则 CF 1两个操作数符号相反 而结果的符号与减数相同0否则 OF 1减法转换为加法运算时无进位0否则 CF NEG指令对CF OF的影响 CF 操作数为0时 求补的结果使CF 0 否则CF 1 OF 字节运算对80H求补 字运算对8000H求补或双字运算对80000000H求补时OF 1 否则OF 0 理解 NEGOPR求补指令执行 OPR OPR 或 OPR 0FFFFH OPR 1即 0 OPR 操作数按位取反 末位加一1 无符号数 n 8bit范围 0 255只有 OPR 0时0 OPR 不会产生借位2 带符号数 n 8bit范围 128 127只有 OPR 128 OPR 128超出范围会溢出 32 例 x y z均为8字节字 分别存放在地址为X X 4 Y Y 4 Z Z 4的存储单元中 用指令序列实现w x y 24 z 并用W W 4单元存放w MOVEAX XMOVEDX X 4ADDEAX YADCEDX Y 4 x yADDEAX 24ADCEDX 0 x y 24SUBEAX ZSBBEDX Z 4 x y 24 zMOVW EAXMOVW 4 EDX 结果存入W W 2单元 33 乘法指令无符号数乘法指令 MULSRC用法 IMULr m 8 16 32 执行操作 字节操作数 AX AL SRC 字操作数 DX AX AX SRC 双字操作数 EDX EAX EAX SRC 有符号数乘法指令 IMULSRC用法 IMULr m 8 16 32 注意 SRC不能为立即数 隐含的乘数 积寄存器 除CF和OF外 对条件标志位无定义 对标志无定义 指令执行后这些标志不可预测 就是谁也不知道是0还是1 对标志无影响 指令执行不改变标志状态 34 乘法指令对CF OF的影响 例 AX 16A5H BX 0611H 1 MULBX 16A5 0611 00895EF5 DX 0089H AX 5EF5HCF OF 1 2 IMULBL A5 11 5B 11 060B F9F5H AX 0F9F5HCF OF 1 检查乘积是字节 字 双字 而不再表示溢出 判断乘积的高一半是否具有有效数值 DX AX AX BX AX AL BL 为什么在乘法指令中cf和of不再表示溢出分析 以字节操作为例 AX AL SRC AL是8位寄存器 AL 28 1 255 SRC也是字节数据 SRC 28 1 255 AL SRC 28 1 28 1 216 29 1 而乘法运算的结果是存放在16位寄存器AX中 AX 216 1而216 29 1 216 1显然 即使最大值 AL 和 SRC 存放的最大值参与运算 也不会产生溢出 其他的数据参与运算也不会产生溢出了 因此 在乘法指令中cf和of不再表示溢出 36 除法指令无符号数除法指令 DIVSRC执行操作 字节操作 AL AX SRC 的商 AH AX SRC 的余数字操作 AX DX AX SRC 的商 DX DX AX SRC 的余数带符号数除法指令 IDIVSRC 注意 AX DX AX 为隐含的被除数寄存器 AL AX 为隐含的商寄存器 AH DX 为隐含的余数寄存器 SRC不能为立即数 对所有条件标志位均无定义 但会产生结果溢出 除法错中断 当被除数远大于除数时 所得的商就有可能超出它所能表达的范围 如果存放商的寄存器AL AX不能表达 便产生溢出 8086CPU中就产生编号为0的内部中断 除法错中断 对DIV指令 除数为0 或者在字节除时商超过8位 或者在字除时商超过16位 对IDIV指令 除数为0 或者在字节除时商不在 128 127范围内 或者在字除时商不在 32768 32767范围内 38 例 x y z v均为16位带符号数 计算 v x y z 540 xMOVAX XIMULY x yMOVCX AX 保存x y的低字MOVBX DX 保存x y的高字MOVAX ZCWDADDCX AXADCBX DX x y zSUBCX 540SBBBX 0 x y z 540MOVAX VCWDSUBAX CXSBBDX BX v x y z 540 IDIVX v x y z 540 x 39 逻辑运算指令AND OR XOR NOT TEST位测试并修改指令BT BTS BTR BTC位扫描指令BSF BSR移位指令逻辑移位 SHL SHR算术移位 SAL SAR循环移位 ROL ROR带进位的循环移位 RCL RCR双精度数逻辑移位 SHLD SHRD 3 3 3逻辑指令和移位指令 40 逻辑非指令 NOTOPR执行操作 OPR OPR 逻辑与指令 ANDDST SRC执行操作 DST DST SRC 逻辑或指令 ORDST SRC执行操作 DST DST SRC 异或指令 XORDST SRC执行操作 DST DST SRC 测试指令 TESTOPR1 OPR2执行操作 OPR1 OPR2 CFOFSFZFPFAF00 无定义 根据运算结果设置 注意 OPR不能为立即数 不影响标志位 41 例 屏蔽AL的0和1两位ANDAL 0FCH例 置AL的第5位为1ORAL 20H例 使AL的0和1两位变反XORAL 3例 测试某些位是0还是1TESTAL 1JZEVEN 位测试并修改指令386及后继机型 位测试指令 BTDST SRC执行操作 将目的操作数中由源操作数所指定的位复制到进位标志CF位测试并置1指令 BTSDST SRC执行操作 将目的操作数中由源操作数所指定的位复制到进位标志CF 并将目的操作数中的该位置1 位测试并置0指令 BTRDST SRC执行操作 将目的操作数中由源操作数所指定的位复制到进位标志CF 并将目的操作数中的该位置0 位测试并变反指令 BTCDST SRC执行操作 将目的操作数中由源操作数所指定的位复制到进位标志CF 并将目的操作数中的该位变反 其它标志位无定义 位扫描指令386及后继机型 正向位扫描指令 BSFREG SRC执行操作 for i 0 i 0 i if SRC的位i为1 ZF 0 REG i break if i 0 ZF 1 此时 REG无定义 其它标志位无定义 44 移位指令 逻辑左移 SHLOPR CNT 逻辑右移 SHROPR CNT 010101010 101010100 010101000 101010100 001010101 010101010 逻辑左移1位 无符号数乘以2逻辑右移1位 无符号数除以2 算术左移 SALOPR CNT 同逻辑左移 算术右移 SAROPR CNT 移位指令 010101010 101010100 010101000 101010100 111010101 110101010 算术左移1位 带符号数乘以2算术右移1位 带符号数除以2 46 循环移位指令 循环左移 ROLOPR CNT 循环右移 ROROPR CNT 010101010 101010101 010101010 1 0 101010100 010101010 0 1 101010101 循环移位指令 改变操作数中所有位的位置 带进位循环左移 RCLOPR CNT 带进位循环右移 RCROPR CNT 循环移位指令 10101010 01010100 010101001 1 0 10101010 11010101 011010101 0 1 48 注意 OPR可用立即数以外的任何寻址方式 CNT 1 SHLOPR 1CNT 1 MOVCL CNTSHLOPR CL 以SHL为例 条件标志位 CF 移入的数值1最高有效位的值发生变化0最高有效位的值不变注意 当CNT 1时 OF位有效 否则 OF位无定义移位指令 SF ZF PF根据移位结果设置 AF无定义循环移位指令 只影响CF OF OF 49 例 AX 0012H BX 0034H 把它们装配成 AX 1234HMOVCL 8ROLAX CLADDAX BX 或ORAX BX例 BX 84F0H 1 BX 为无符号数 求 BX 2SHRBX 1 BX 4278H 2 BX 为带符号数 求 BX 2SARBX 1 BX 0C278H 50 3 3 4串处理指令 串传送指令MOVS 存入串指令STOS 从串取指令LODS 串比较指令CMPS 串扫描指令SCAS 配合使用的前缀有 REP重复REPE REPZ相等 为零则重复REPNE REPNZ不相等 不为零则重复 与REP配合工作的MOVS STOS LODSREPMOVS STOS LODS执行操作 1 如 CX 0则退出REP 否则转 2 2 CX CX 1 3 执行MOVS STOS LODS 4 重复 1 3 这三个指令不影响标志位 52 MOVS串传送指令MOVSDST SRC例 MOVSES BYTEPTR DI DS SI MOVSB 字节 MOVSW 字 MOVSD 双字 执行操作 1 DI SI 2 SI SI S DI DI S字节操作 S 1 字操作 S 2 双字操作 S 4方向标志DF 0时用 DF 1时用 REPMOVS 将数据段中的整串数据传送到附加段中 源串 数据段 目的串 附加段 执行REPMOVS之前 应先做好 1 源串首地址 末地址 SI 2 目的串首地址 末地址 DI 3 串长度 CX 4 建立方向标志 CLD使DF 0 STD使DF 1 53 例3 58datareasegmentmess1db personal computer datareaendsextrasegmentmess2db17dup extraendscodesegment leasi mess1leadi mess2movcx 17cldrepmovsb codeends leasi mess1 16leadi mess2 16movcx 17stdrepmovsb 54 STOS存入串指令STOSDSTSTOSB 字节 STOSW 字 STOSD 双字 执行操作 DI AL AX EAX DI DI 1 2 4 例 把附加段中的5个字节缓冲区置为20Hleadi mess2moval 20Hmovcx 5cldrepstosb 55 LODS从串取指令LODSSRCLODSB 字节 LODSW 字 LODSD 双字 执行操作 AL AX EAX SI SI SI 1 2 4 注意 LODS指令一般不与REP联用 源串默认在数据段中 目的串必须在附加段中 但源串允许使用段跨越前缀来修改 不影响条件标志位 56 REPE REPZ REPNE REPNZ CMPS SCAS执行操作 1 如 CX 0或ZF 0 ZF 1 则退出 否则转 2 2 CX CX 1 3 执行CMPS SCAS 4 重复 1 3 与REPE REPZ和REPNE REPNZ配合工作的CMPS和SCAS 57 CMPS串比较指令CMPSSRC DSTCMPSB 字节 CMPSW 字 CMPSD 双字 执行操作 1 SI DI 根据比较结果设置条件标志位 相等ZF 1不等ZF 0 2 SI SI 1 2 4 DI DI 1 2 4 58 SCAS串扫描指令SCASDSTSCASB 字节 SCASW 字 SCASD 双字 执行操作 AL AX EAX DI 根据比较结果设置条件标志位 相等ZF 1不等ZF 0 DI DI 1 2 4 59 例3 60从一个字符串中查找一个指定的字符messdb COMPUTER leadi messmoval T movcx 8cldrepnescasb DI 相匹配字符的下一个地址 CX 剩下还未比较的字符个数 60 例3 61比较两个字符串 找出它们不相匹配的位置leasi mess1leadi mess2movcx 8cldrepecmpsb 例 反向传送 注意 串处理指令的特点1 2 3 61 3 3 5控制转移指令 无条件转移指令 条件转移指令 循环指令 子程序调用和返回指令 中断指令 不影响条件标志位 62 无条件转移指令JMP段内直接短转移 JMPSHORTOPR执行操作 EIP EIP 8位位移量 128 127 段内直接近转移 JMPNEARPTROPR执行操作 EIP EIP 16位位移量段内间接转移 JMPWORDPTROPR执行操作 EIP EEA 段间直接远转移 JMPFARPTROPR执行操作 EIP OPR的段内偏移地址 CS OPR所在段的段地址段间间接远转移 JMPDWORDPTROPR执行操作 EIP EA CS EA 2 4 63 条件转移指令 4类 注意 只能使用段内直接转移 根据单个条件标志的设置情况转移 格式测试条件JZOPRZF 1 JE JNE JNZOPRZF 0JSOPRSF 1JNSOPRSF 0JOOPROF 1JNOOPROF 0JCOPRCF 1 JB JNAE JNCOPRCF 0 JNB JAE JPOPRPF 1JNPOPRPF 0 64 比较两个无符号数 并根据比较结果转移 格式测试条件JNBE JA OPRCF ZF 0 适用于地址或双精度数低位字的比较 B belowA aboveN notE equal 65 格式测试条件JNLE JG OPR SF OF ZF 0测试CX ECX的值为0则转移 格式测试条件JCXZOPR CX 0JECXZOPR ECX 0 比较两个带符号数 并根据比较结果转移 L lessG greaterN notE equal 67 例3 64X 50 转到TOO HIGH 计算X Y 溢出转到OVERFLOW 否则 X Y RESULT MOVAX XCMPAX 50JGTOO HIGHSUBAX YJOOVERFLOWJNSNONNEGNEGAXNONNEG MOVRESULT AXTOO HIGH OVERFLOW 68 例3 65 是双精度数 分别存于DX AX及BX CX中 时转X 否则转Y CMPDX BXJGXJLYCMPAX CXJAXY X 69 条件设置指令 80386新增 SETccDST指令根据所指定的条件码的情况 如满足条件 则将DST指定的一个字节内容置1 否则 将DST指定的一个字节内容置0 作用 将前一条指令执行后对条件码产生的影响记录在DST中 以备以后处理 分为三类 根据单个条件标志SETZ SETE SETNZ SETNE SETS SETNS SETO SETNO SETP SETPE SETNP SETPO SETC SERB SETNAE SETNC SETNB SETAE根据两个无符号数比较结果 SETB SETNAE SETC SETNB SETAE SETNC SETBE SETNA SETNBE SETA根据两个带符号数比较结果 SETL SETNGL SETNL SETGE SETLE SETNG SETNLE SETG 70 LOOP循环 CX 0LOOPZ LOOPE为0 相等时循环 ZF 1且 CX 0LOOPNZ LOOPNE不为0 不相等时循环 ZF 0且 CX 0 循环指令 注意 CX中存放循环次数 只能使用段内直接寻址的8位位移量 128 127 执行步骤 1 CX CX 1 2 检查是否满足测试条件 如满足则 EIP EIP 8位位移量 实行循环 不满足则EIP不变 退出循环 71 例3 67求首地址为ARRAY的M个字之和 结果存入TOTAL MOVCX MMOVAX 0MOVSI AXSTART LOOP ADDAX ARRAY SI INCSIINCSILOOPSTART LOOPMOVTOTAL AX 72 例 在多重循环的程序结构中 CX计数器的保存和恢复 MOVCX MAGAIN PUSHCXMOVCX NNEXT LOOPNEXT POPCXLOOPAGAIN MOVDI MAGAIN MOVCX NNEXT LOOPNEXT DECDIJNZAGAIN 73 子程序调用和返回指令 codesegmentmainprocfar callsub retmainendpsubprocnear retsubendpcodeends 段内调用和返回 code1segmentmainprocfar callsub retmainendpcode1endscode2segmentsubprocfar retsubendpcode2ends 段间调用和返回 74 CALL调用指令段内直接调用 CALLDST执行操作 SP SP 2 SP 1 SP IP IP IP 16位位移量段内间接调用 CALLDST执行操作 SP SP 2 SP 1 SP IP IP EA 75 段间直接调用 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 76 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 77 AX BX CX 例 带立即数返回codesegmentmainprocfar pushaxpushbxpushcxcallsub retmainendpsubprocnear ret6subendpcodeends SP IP 高地址 低地址 78 中断指令 中断 CPU暂停当前程序的执行 转而执行处理紧急事务的程序 并在该事务处理完后能自动恢复执行原先程序的过程 中断源 引起紧急事务的事件为 中断处理程序 处理紧急事务的程序 响应 CPU在执行程序时 是否响应中断 要求同时满足 1 有中断请求 2 允许CPU接受中断请求 3 一条指令执行完 下一条指令还没有开始执行 中断向量 中断例行程序的入口地址 存放于中断向量区 中断向量表 1K 256个元素 79 执行操作 S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年甘肃省兰州大学科学与工程学院聘用制人员B岗招聘考前自测高频考点模拟试题参考答案详解
- 医疗器械购销员操作强化考核试卷含答案
- 2025甘肃金昌市引进高层次和急需紧缺人才招聘70人(第二批)考前自测高频考点模拟试题附答案详解(典型题)
- 2025年春季上海华二松江实验教师招聘模拟试卷有答案详解
- 2025广西南宁孔庙管理所招聘编外人员2人考前自测高频考点模拟试题有完整答案详解
- 2025河北沧州市孟村闻知饶安中学招聘模拟试卷及一套答案详解
- 2025浙江省特种设备科学研究院招聘32人备考考试题库附答案解析
- 2025江苏苏州市相城城市建设投资(集团)有限公司人员招聘模拟试卷附答案详解(完整版)
- 2025广西百色市田阳区民政局、共青团百色市田阳区委员会城镇公益性岗位工作人员招聘2人考前自测高频考点模拟试题附答案详解(完整版)
- 2025中国电信股份有限公司亳州分公司外包人才岗位1人考试模拟试题及答案解析
- 水利项目计划书
- 门店报修流程
- 2024-2025学年广东省珠海市香洲区某中学九年级(上)期中数学试卷
- 税务咨询技术服务方案
- DZT0203-2020矿产地质勘查规范稀有金属类
- 钢管桩拔除施工方案
- 【课件】2025高三英语一轮复习备考策略及方法指导
- 园林绿化植物采购合同
- 2024年广东文化厅直属文化馆招考工作人员高频500题难、易错点模拟试题附带答案详解
- CT维保服务投标方案(技术方案)
- 小学体育六年级上册教案(全册)
评论
0/150
提交评论