当前位置: 首页 > news >正文

中国庆阳南宁网站seo优化公司

中国庆阳,南宁网站seo优化公司,建e网app下载,做网站如何通过流量赚钱吗汇编语法 汇编文件中的内容 1.伪操作:在汇编程序中不占用存储空间,但是可以在程序编译时起到引导和标识作用 .text .global .glbal .if .else .endif .data .word.... 2.汇编指令:每一条汇编指令都用来标识一个机器码,让计算机做…

汇编语法

汇编文件中的内容

1.伪操作:在汇编程序中不占用存储空间,但是可以在程序编译时起到引导和标识作用 .text .global .glbal .if .else .endif .data .word....

2.汇编指令:每一条汇编指令都用来标识一个机器码,让计算机做一个指令运算

数据处理指令

         数据搬移指令

        算数运算指令

        数据移位指令

        位运算指令

        数据比较指令

跳转指令

内存读写指令

状态寄存器传送指令 CPSR

软中断指令

3.伪指令:不是汇编指令,但是也可以让处理器做一些数据处理,通常一条伪指令会由多条汇编指令联合实现

4.注释

单行注释: @ ;

多行注释: /* */

条件注释 .if 1/0 指令段1 .else 指令段2 .endif

 汇编指令的基本语法格式

指令的基本格式: <opcode> {<cond>} {s} <Rd>, <Rn>, <shifter_operand>

<opcode>:指令的操作码

cond:条件码后缀

s:指令的执行结果将会影响CPSR中的条件标志位。

<Rd>:目标寄存器,指令的运算结果保存在目标寄存器中

<Rn>:第一操作寄存器,只能是寄存器

<shifter_operand> :第二操作数,既可以是寄存器编号,又可以是立即数

意义:让第一操作寄存器中的值和第二操作数按照指令操作码进行运算,并且将运算的结果保存在目标寄存器中

注意:

1.一般一条汇编指令就占据一行代码

2.汇编不区分大小写

3.操作数前面要跟一个#

汇编指令

数据搬移指令

<opcode> {<cond>} {s} <Rd>, <shifter_operand>

解释:

<opcode>:指令的操作码

cond:条件码后缀

s:指令的执行结果将会影响CPSR中的条件标志位。

<Rd>:目标寄存器,指令的运算结果保存在目标寄存器中

<shifter_operand> :第一操作数,既可以是寄存器编号,又可以是立即数

指令码:

mov:将操作数直接搬移到目标寄存器中

mvn:将操作数按位取反之后搬移到目标寄存器中

立即数的概念

定义:可以直接当作指令的一部分去执行的数据叫做立即数。立即数是通过一个0-255之间的数字循环右移偶数位获取(循环右移:低位移除,补到高位)

立即数的判断

如何判断一个数据是不是立即数: 只要让这个数据或者这个数据按位取反的值循环右移偶数位,能够得到一个0-255范围内的数字就说明这个数是立即数

如何将一个非立即数保存在寄存器中

利用伪指令ldr即可完成非立即数的操作

格式: ldr 目标寄存器名,=数据

 移位操作指令

格式: <opcode> {<cond>} {s} <Rd>, <Rn>, <shifter_operand>

解释:将第一操作寄存器的数值移位第二操作数位,将结果保存在目标寄存器中

指令码:

lsl:左移运算,最高位移出,最低位补0

lsr:右移运算,最低位移出,最高位补0

ror:循环右移:最低位移出,补到最高位

位运算指令 

与、或、异或、按位清0

格式: <opcode> {<cond>} {s} <Rd>, <Rn>, <shifter_operand>

指令码:

and:进行按位与

orr:进行按位或

eor:按位异或

bic:按位清0

算数运算指令 

格式: <opcode>{<cond>}{s} <Rd>, <Rn>, <shifter_operand>

指令码: add:加法运算 Rd=Rn+shifter_operand

adc:进行加法运算时考虑CPSR的C位 Rd=Rn+shifter_operand+CPSR[c]

sub:减法运算 Rd=Rn-shifter_operand

sbc:进行减法运算时考虑CPSR的c位 Rd=Rn-shifter_operand-!CPSR[c]

RSB :逆向减法Rd=shifter_operand-Rn

RSC:带借位的逆向减法指令 Rd = shifter_operand – Rn - !CPSR[c]

mul:乘法运算 Rd=Rn*shifter_operand

进行64位算数运算 

MOV R1,#0xfffffffe @第一个数据的低32位

mov r2,#0x00000004 @第一个数据的高32位

MOV R3,#0x00000005 @第二个数据的低32位

mov r4,#0x00000004 @第二个数据的高32位

加法:

低32位: adds r5,r1,r3

高32位: adc r6,r2,r4

数据比较指令 

格式: cmp <Rn>, <shifter_operand>

比较指令的本质: 拿第一操作寄存器和第二操作数进行减法运算,并且减法运算的结果会影响到CPSR的条件位

可以根据比较指令之后的条件位的数值进行不同的运算,相当于c里的选择语句 这里需要对CPSR的条件位进行判断,我们依赖条件位的助记词{cond}后缀实现

跳转指令

一般实现程序的跳转有两种方式: 1.直接修改PC的值 2.通过跳转指令

1.b label 解释:跳转到label标签所在代码,此时跳转,lr寄存器不保存返回地址

2. bl label 解释:跳转到label标签所在代码,此时跳转,lr寄存器保存返回地址 

3. bx 地址 跳转到地址对应的的指令位置,此时跳转LR不保存返回地址 

4.blx 地址 跳转到地址对应的的指令位置,此时跳转LR保存返回地址 

今日任务:

.text
.globl _start
/*累加1-100*/
_start:mov r0,#0@summov r1,#0@累加的值mov r2,#12@标记位add r1, r1,#1add r0,r0,r1cmp r1,#100beq stopbne continuefuncontinuefun:bx r2stop:b stop
.end

another

.text
.globl _start
/*累加1-100*/
_start:mov r0,#0@summov r1,#0@累加的值continuefun:add r1, r1,#1add r0,r0,r1cmp r1,#100beq stopbne continuefunstop:b stop
.end

http://www.wangmingla.cn/news/90515.html

相关文章:

  • 南通优化网站收费标准中国新闻社
  • 企业网站推广目标最近新闻热点国家大事
  • 网站响应是什么电脑优化大师
  • 做个自己的影院网站怎么做哈尔滨企业网站seo
  • 网站开发的相关技术二十条优化
  • wordpress 新建分类目录绍兴seo公司
  • 北京南站地铁线路图数据分析软件
  • 怎么让网站绑定域名访问济宁百度推广公司
  • 北京网站seo公司系统优化app
  • 广州高铁新建站在哪里竞价排名
  • 网站的流程图免费b站网站推广
  • 做淘宝一件代发的网站桂平seo快速优化软件
  • wordpress搬家后 localhost宁波如何做抖音seo搜索优化
  • 惠州seo网络关键词优化方法
  • 吴桥网站建设价格福建百度seo排名点击软件
  • 做网站有个名字叫小廖seo排名工具提升流量
  • 自己做的腾讯充值网站宁波seo推广哪家好
  • 有网站模板怎么做网站北京互联网公司排名
  • 公司名字大全及寓意搜索引擎优化涉及的内容
  • 教学网站开发源码搜索引擎优化与推广技术
  • 网站导航为什么用ul列表做微信营销软件哪个好用
  • 驾考学时在哪个网站做大数据分析培训机构
  • 电商网站开发团队网站是怎么优化推广的
  • 网站知识介绍可以看任何网站的浏览器
  • 网站图片自动切换怎么做微信小程序开发零基础入门
  • 中国第一作文网官网seo关键词推广
  • 阿里云如何搭建网站seo建站需求
  • wordpress添加主题设置页面免费网站排名优化软件
  • 可以做驾校推广的网站找资源的关键词有哪些
  • 做推广网站需要商标吗网站广告调词软件