指令系统汇编指令详解查询手册内容摘要:

e left) 循环左移 ROR(Rotate right) 循环右移 RCL(Rotate left through carry) 带进位循环左移 RCR(Rotate right through carry) 带进位循环右移 格式 : SHL OPR,CNT(其余的类似 ) 其中 OPR可以是除立即数以外的任何寻址方式 .移位次数由 CNT决定 ,CNT可以是 1或 CL. 循环移位指令可以改变操作 数中所有位的位置。 移位指令则常常用来做乘以 2 除以 2 操作 .其中算术移位指令适用于带符号数运算 ,SAL用来乘 2,SAR用来除以 2。 而逻辑移位指令则用来无符号数运算 ,SHL用来乘 2,SHR用来除以2. 四、串处理指令 REP 相配合工作的 MOVS,STOS和 LODS指令 .REP 重复串操作直到 (CX)=0为上 格式 : REP string primitive 其中 String Primitive可为 MOVS,LODS或 STOS指令 执行的操作 : 1)如 (CX)=0则退出 REP,否则往下执行 . 2)(CX)(CX)1 3)执行其中的串操作 4)重复 1)~3) .MOVS 串传送指令 格式 :可有三种 MOVS DST,SRC MOVSB(字节 ) MOVSW(字 ) 其中第二、三种格式明确地注明是传送字节或字,第一种格式则应在操作数中表明是字还是字节操作,例如: MOVS ES:BYTE PTR[DI],DS:[SI] 执行的操作 : 1)((DI))((SI)) 2)字节操作 : (SI)(SI)+(或 )1,(DI)(DI)+(或 )1 当方向标志 DF=0时用 +,当方向标志 DF=1时用 3)字操作 : (SI)(SI)+(或 )2,(DI)(DI)+(或 )2 当方向标志 DF=0时用 +,当方向标志 DF=1时用 该指令不影响条件码 . .CLD(Clear direction flag)该指令使 DF=0,在执行串操作指令时可使地址自动增量。 .STD(Set direction flag)该指令使 DF=1,在执行串操作指令时可使地址自动减量 . .STOS 存入串指令 格式 : STOS DST STOSB(字节 ) STOSW(字 ) 执行的操作 : 字节操作 :((DI))(AL),(DI)(DI)+1 字操作 : ((DI))(AX),(DI)(DI)+2 该指令把 AL或 AX的内容存入由 (DI)指定的附加段的某单元中 ,并根据 DF的值及数据类型修改 DI的内容 ,当它与REP 联用时 ,可把 AL 或 AX 的内容存入一个长度为 (CX)的缓冲区中 . .LODS 从串取指令 格式 : LODS SRC LODSB LODSW 执行的操作 : 字节操作 :(AL)((SI)),(SI)(SI)+1 字操作 : (AX)((SI)),(SI)(SI)+2 该指令把由 (SI)指定的数据段中某单元的 内容送到 AL或 AX中 ,并根据方向标志及数据类型修改 SI的内容 .指令允许使用段跨越前缀来指定非数据段的存储区 .该指令也不影响条件码 . 一般说来 ,该指令不和 REP联用 .有时缓冲区中的一串字符需要逐次取出来测试时 ,可使用本指令 . REPE/REPZ和 REPNZ/REPNE联合工作的 CMPS和 SCAS指令 .REPE/REPZ 当相等 /为零时重复串操作 格式 : REPE(或 REPZ) String Primitive 其中 String Primitive可为 CMPS或 SCAS指令 . 执行的操作 : 1)如 (CX)=0或 ZF=0(即某次比较的结果两个操作数不等 )时退出 ,否则往下执行 2)(CX)(CX)1 3)执行其后的串指令 4)重复 1)~3) .REPNE/REPNZ 当不相等 /不为零时重复串操作 格式 : REPNE(或 REPNZ) String Primitive 其中 String Primitive可为 CMPS或 SCAS指令 执行的操作 : 除退出条件 (CX=0)或 ZF=1外 ,其他操作与 REPE完全相同 . .CMPS 串比较指令 格式 : CMP SRC,DST CMPSB CMPSW 执行的操作 : 1)((SI))((DI)) 2)字节操作 :(SI)(SI)+1,(DI)(DI)+1 字操作 : (SI)(SI)+。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。