汇编--逻辑指令

逻辑运算指令 AND、OR、NOT、XOR、TEST

移位指令 SHL、SHR 、 SAL 、SAR、ROL、ROR、RCL、RCR

* OPR 不能为立即数

* 不影响标志位

SF  ZF  PF     根据运算结果设置



逻辑及算术左移SHL   SAL逻辑右移SHR 算术右移SAR

循环左移    ROL 循环右移    ROR 

带进位循环左移    RCL带进位循环右移   RCR

循环是R开头,循环是自己转。

逻辑为补充0,算术右移补充的是边上那一位。

CNT = 1, SHL OPR , 1

CNT > 1, MOV CL , CNT

       SHL OPR , CL    ;以 SHL 为例

循环移位指令: 不影响 SF、ZF、PF、AF



串处理指令:

MOVSB   MOVSW方向标志 DF = 0 时用 + ,DF = 1 时用 -

与 REP 配合工作的 MOVS / STOS / LODS

REP MOVS / STOS / LODS 执行操作:

(1) 如 ( CX ) = 0 则退出 REP,否则转 (2)

(2) ( CX ) ? ( CX ) - 1

(3) 执行 MOVS / STOS / LODS

(4) 重复 (1) ~ (3)

REP MOVS:将数据段中的整串数据传送到附加段     源串(数据段)→ 目的串(附加段)

(1) 源串首地址(末地址) → SI

(2) 目的串首地址(末地址) → DI

(3) 串长度 → CX

(4) 建立方向标志 ( CLD 使 DF = 0,STD 使 DF = 1 )

其他处理机控制指令

BOUND 界限指令

ENTER 建立堆栈帧

LEAVE 释放堆栈帧

特权指令

时间: 2025-01-16 13:06:12

汇编--逻辑指令的相关文章

【汇编指令】数据处理指令之逻辑指令

逻辑指令集有:AND/ORR/EOR/BIC 1)与逻辑指令一般用于置零某位:AND AND Logical AND operation. Syntax   AND{cond}{S}  Rd, Rn, Op2 Description   Load Rd with logical AND of Rn with Op2. Rd := Rn AND Op2 Condition Flags   If S is specified, N, Z flags are updated. C flag may b

汇编--指令系统 逻辑指令

逻辑指令: 逻辑运算指令 AND.OR.NOT.XOR.TEST 移位指令 SHL.SHR . SAL .SAR.ROL.ROR.RCL.RCR 逻辑非指令:NOT OPR    ;OPR 不能为立即数   不影响标志位 逻辑与指令:AND   DST ,  SRC 逻辑或指令:OR   DST ,  SRC 异或指令:    XOR   DST ,  SRC 测试指令:    TEST   OPR1 ,  OPR2 SF ZF PF  根据运算结果设定 (1)移位指令 指令格式:  SHL 

汇编 影响标志位的运算

今天翘了毛概课,在宿舍里盖着小毛毯做汇编作业,遇到一个题目是给出一组指令,问每一步指令完成后,标志位是什么 什么运算会改变标志位呢?在网上查了查 (1)加法指令:ADD.ADC.INC.XADD除了INC不影响CF标志位外,都影响条件标志位. CF.ZF.SF.OF CF最高位是否有进位 DF若两个操作数符号相同而结果符号与之相反OF=1,否则OF=0. (2)减法指令:SUB.SBB.DEC.NEG.CMP.CMPXCHG.CMPXCHG8B 前六种除了DEC不影响CF标志外都影响标志位.CM

【嵌入式Linux+ARM】ARM体系结构与编程(ARM汇编指令)

自己的一些简单的总结,也是最常用的ARM汇编指令,之后也会不断的补充完善. 1. 汇编系统预定义的段名 .text    @代码段 .data   @初始化数据段 .bss    @未初始化数据段 需要注意的是,源程序中.bss段应该在.text之前. 2.定义入口点 汇编程序的缺省入口是 start标号,用户也可以在连接脚本文件中用ENTRY标志指明其它入口点. .text .global _start _start: 3 .word用法 word expression就是在当前位置放一个wo

对X86汇编的理解与入门

本文描述基本的32位X86汇编语言的一个子集,其中涉及汇编语言的最核心部分,包括寄存器结构,数据表示,基本的操作指令(包括数据传送指令.逻辑计算指令.算数运算指令),以及函数的调用规则.个人认为:在理解了本文后,基本可以无障碍地阅读绝大部分标准X86汇编程序.当然,更复杂的指令请参阅Intel相关文档. 1 寄存器. 主要寄存器如下图所示: X86处理器中有8个32位的通用寄存器.由于历史的原因,EAX通常用于计算,ECX通常用于循环变量计数.ESP和EBP有专门用途,ESP指示栈指针(用于指示

一个卓有成效的汇编优化范例--使用SSE2指令优化进制转化

我的一个感兴趣的编程方向是大数计算,因此用汇编语言写了很多大数计算方面的小程序,上周突然想出一个使用SSE2指令将整数转为16进制字符串的好主意,遂付诸实现.原以为至多可提速500%,那知测试后发现,相对于最初的C语言版本,速度竟提高20倍以上,兴奋之余,遂有了这篇博客文章. 这个程序主要示范将64bit一个整数转化为16进制字符串的功能,功能和算法都比较简单.我相信许多人都写过类似的程序,但不知有没有人尝试去你优化它.这个示范程序包括3个C语言版和1个使用SSE2指令的汇编语言版.下面我们给出

arm汇编

(汇编)指令是CPU机器指令的助记符,经过编译后会得到一串10组成的机器码,可以由CPU读取执行.(汇编)伪指令本质上不是指令(只是和指令一起写在代码中),它是编译器环境提供的,目的是用来指导编译过程,经过编译后伪指令最终不会生成机器码. ARM官方的ARM汇编风格:指令一般用大写.Windows中IDE开发环境(如ADS.MDK等)常用.如: LDR R0, [R1] GNU风格的ARM汇编:指令一般用小写字母.linux中常用.如:ldr r0, [r1] ARM采用RISC架构,CPU本身

X86汇编快速入门

本文描述基本的32位X86汇编语言的一个子集,其中涉及汇编语言的最核心部分,包括寄存器结构,数据表示,基本的操作指令(包括数据传送指令.逻辑计算指令.算数运算指令),以及函数的调用规则.个人认为:在理解了本文后,基本可以无障碍地阅读绝大部分标准X86汇编程序.当然,更复杂的指令请参阅Intel相关文档. 1 寄存器. 主要寄存器如下图所示: X86处理器中有8个32位的通用寄存器.由于历史的原因,EAX通常用于计算,ECX通常用于循环变量计数.ESP和EBP有专门用途,ESP指示栈指针(用于指示

汇编考试小结

明天 汇编考试,今天小结一下 数据传送指令集 MOV 功能: 把源操作数送给目的操作数 语法: MOV 目的操作数,源操作数 格式: MOV r1,r2 MOV r,m MOV m,r MOV r,data XCHG 功能: 交换两个操作数的数据 语法: XCHG 格式: XCHG r1,r2 XCHG m,r XCHG r,m PUSH,POP 功能: 把操作数压入或取出堆栈 语法: PUSH 操作数 POP 操作数 格式: PUSH r PUSH M PUSH data POP r POP