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

建设部官网网站搜索引擎营销的典型案例

建设部官网网站,搜索引擎营销的典型案例,免费广告素材网,招商项目发布平台实列一: 1. 异常向量表 area reset, code, readonly code32 entry area reset, code, readonly:定义一个名为reset的代码区域,只读。 code32:指示编译器生成32位ARM指令。 entry:标记程序的入口点。 2. 程序入口…

 

实列一:

1. 异常向量表

area reset, code, readonly
code32
entry
  • area reset, code, readonly:定义一个名为reset的代码区域,只读。

  • code32:指示编译器生成32位ARM指令。

  • entry:标记程序的入口点。

2. 程序入口和算术运算

startmov r0, #1                 ; r0 = 1mov r1, #2                 ; r1 = 2add r2, r0, r1             ; r2 = r0 + r1 = 3sub r3, r2, r1             ; r3 = r2 - r1 = 1
  • mov r0, #1:将立即数1加载到寄存器r0

  • mov r1, #2:将立即数2加载到寄存器r1

  • add r2, r0, r1:将r0r1相加,结果存入r2r2 = 1 + 2 = 3)。

  • sub r3, r2, r1:将r2减去r1,结果存入r3r3 = 3 - 2 = 1)。

3. 位运算

    mov r0, #0xff              ; r0 = 0xff (255)mov r1, #0x55              ; r1 = 0x55 (85)and r2, r0, r1             ; r2 = r0 & r1 = 0x55 (85)
  • mov r0, #0xff:将立即数0xff(十进制255)加载到r0

  • mov r1, #0x55:将立即数0x55(十进制85)加载到r1

  • and r2, r0, r1:对r0r1进行按位与操作,结果存入r2r2 = 0xff & 0x55 = 0x55)。

4. 更多位运算

    mov r3, #0xaa              ; r3 = 0xaa (170)orr r4, r1, r3             ; r4 = r1 | r3 = 0xff (255)eor r5, r1, r3             ; r5 = r1 ^ r3 = 0xff (255)bic r3, r0, #3             ; r3 = r0 & ~3 = 0xfc (252)
  • mov r3, #0xaa:将立即数0xaa(十进制170)加载到r3

  • orr r4, r1, r3:对r1r3进行按位或操作,结果存入r4r4 = 0x55 | 0xaa = 0xff)。

  • eor r5, r1, r3:对r1r3进行按位异或操作,结果存入r5r5 = 0x55 ^ 0xaa = 0xff)。

  • bic r3, r0, #3:对r0进行按位与非操作,清除低3位,结果存入r3r3 = 0xff & ~0x3 = 0xfc)。

5. 条件执行

    ; 0x 1 ffff ffff; 0x 2 0000 0003; 0x 4 0000 0002mov r0, #0x1               ; r0 = 1mov r1, #0xffffffff        ; r1 = 0xffffffff (-1 in two's complement)mov r2, #0x2               ; r2 = 2mov r3, #0x3               ; r3 = 3adds r5, r1, r3            ; r5 = r1 + r3 = 0xffffffff + 3 = 0x2 (with carry)adcs r4, r0, r2            ; r4 = r0 + r2 + carry = 1 + 2 + 1 = 4
  • adds r5, r1, r3:将r1r3相加,结果存入r5,并更新条件标志位。由于r1是0xffffffff(-1),加上3后结果为2,进位标志(C)被设置。

  • adcs r4, r0, r2:将r0r2相加,并加上进位标志(C),结果存入r4r4 = 1 + 2 + 1 = 4)。

6. 条件移动

    mov r0, #1                 ; r0 = 1mov r1, #3                 ; r1 = 3cmp r0, r1                 ; 比较r0和r1,设置条件标志位movgt r2, r0               ; 如果r0 > r1,将r0的值存入r2,否则r2保持原值movle r2, r1               ; 如果r0 <= r1,将r1的值存入r2
  • cmp r0, r1:比较r0r1,设置条件标志位。

  • movgt r2, r0:如果r0 > r1,将r0的值存入r2

  • movle r2, r1:如果r0 <= r1,将r1的值存入r2

7. 循环

    mov r0, #0                 ; r0 = 0mov r1, #0                 ; r1 = 0loopadd r0, r0, #1             ; r0 = r0 + 1add r1, r0, r1             ; r1 = r0 + r1cmp r0, #100               ; 比较r0和100blt loop                   ; 如果r0 < 100,跳转到loop
  • mov r0, #0:将r0初始化为0。

  • mov r1, #0:将r1初始化为0。

  • loop:循环标签。

    • add r0, r0, #1r0递增1。

    • add r1, r0, r1:将r0r1相加,结果存入r1

    • cmp r0, #100:比较r0和100。

    • blt loop:如果r0 < 100,跳转到loop继续循环。

8. 无限循环

    nop                        ; 空操作b start                    ; 无限循环,返回startend
  • nop:空操作。

  • b start:跳转到start,形成无限循环。

实列二:

以下这段代码的主要功能是:

  1. 定义异常向量表,处理复位和软件中断。

  2. 从SVC模式切换到USER模式。

  3. 调用C语言函数main

  4. 实现一个简单的加法函数asm_add

1. 异常向量表

preserve8
area reset, code, readonly
code32
entryb start          ; 复位异常
nop              ; 未定义异常
b deal_swi       ; 软件中断(SWI)
nop              ; 预取中止
nop              ; 数据中止
nop              ; 保留
nop              ; IRQ
nop              ; FIQ
  • preserve8:确保代码对齐到8字节边界。

  • area reset, code, readonly:定义一个名为reset的代码区域,只读。

  • code32:指示编译器生成32位ARM指令。

  • entry:标记程序的入口点。

  • 异常向量表:定义了处理器在发生不同异常时的处理程序入口。

    • b start:复位异常时跳转到start

    • b deal_swi:软件中断(SWI)时跳转到deal_swi

    • 其他异常(如未定义异常、预取中止等)未处理,直接跳过。

2. 软件中断处理

deal_swistmfd sp!, {r4-r12, lr}    ; 保存现场sub r0, lr, #4             ; 获取SWI号ldr r1, [r0]               ; 从内存中加载SWI号bic r0, r1, #(0xff << 24)  ; 清除SWI号的高8位ldmfd sp!, {r4-r12, pc}^   ; 恢复现场并返回
  • stmfd sp!, {r4-r12, lr}:将寄存器r4r12和链接寄存器lr压入堆栈,保存现场。

  • sub r0, lr, #4:从链接寄存器lr中提取SWI号。

  • ldr r1, [r0]:从内存中加载SWI号。

  • bic r0, r1, #(0xff << 24):清除SWI号的高8位。

  • ldmfd sp!, {r4-r12, pc}^:从堆栈中恢复寄存器r4r12和程序计数器pc,并切换模式。

3. 程序入口

startldr sp, =0x40001000        ; 设置SVC模式的堆栈指针mrs r0, cpsr               ; 将CPSR寄存器的值加载到r0bic r0, r0, #0x1f          ; 清除模式位(低5位)orr r0, r0, #0x10          ; 设置模式位为USER模式(0b10000)msr cpsr_c, r0             ; 将r0的值写回CPSR,切换到USER模式ldr sp, =0x40000c00        ; 设置USER模式的堆栈指针mov r0, #1                 ; 设置r0为1mov r1, #2                 ; 设置r1为2mov r6, #0x1               ; 设置r6为1import main                ; 导入C语言函数mainbl main                    ; 调用main函数swi #0x7                   ; 触发软件中断,编号为0x7nop                        ; 空操作b start                    ; 无限循环,返回start
  • ldr sp, =0x40001000:设置SVC模式的堆栈指针。

  • mrs r0, cpsr:将当前程序状态寄存器(CPSR)的值加载到r0

  • bic r0, r0, #0x1f:清除r0的低5位(模式位)。

  • orr r0, r0, #0x10:设置模式位为USER模式(0b10000)。

  • msr cpsr_c, r0:将r0的值写回CPSR,切换到USER模式。

  • ldr sp, =0x40000c00:设置USER模式的堆栈指针。

  • bl main:调用C语言函数main

  • swi #0x7:触发软件中断,编号为0x7。

  • b start:无限循环,返回start

4. 简单加法函数

export asm_addasm_addstmfd sp!, {r4-r12, lr}    ; 保存现场add r6, r0, r1             ; 将r0和r1相加,结果存入r6mov r0, r6                 ; 将结果存入r0ldmfd sp!, {r4-r12, pc}    ; 恢复现场并返回
  • export asm_add:导出asm_add函数,使其可以被其他模块调用。

  • stmfd sp!, {r4-r12, lr}:将寄存器r4r12和链接寄存器lr压入堆栈,保存现场。

  • add r6, r0, r1:将r0r1相加,结果存入r6

  • mov r0, r6:将结果存入r0

  • ldmfd sp!, {r4-r12, pc}:从堆栈中恢复寄存器r4r12和程序计数器pc,返回。


文章转载自:

http://2G6m8QZD.njhyk.cn
http://9TZtHR82.njhyk.cn
http://gBOlPPof.njhyk.cn
http://uPk91xOk.njhyk.cn
http://os25N4Zt.njhyk.cn
http://KHkynvVt.njhyk.cn
http://PoAn9A70.njhyk.cn
http://ivq1dLq3.njhyk.cn
http://X5opT2eJ.njhyk.cn
http://XqnOGo2D.njhyk.cn
http://Fbijrkep.njhyk.cn
http://5rLtlgvs.njhyk.cn
http://TXr90ouw.njhyk.cn
http://oT5KMq9j.njhyk.cn
http://P6Z0LdGQ.njhyk.cn
http://umhTsHim.njhyk.cn
http://5UTAs93K.njhyk.cn
http://DlVRut3I.njhyk.cn
http://fmsO3vLv.njhyk.cn
http://Iz7hSmJM.njhyk.cn
http://i5ShovjR.njhyk.cn
http://Ub5UHj92.njhyk.cn
http://W8f8c4XW.njhyk.cn
http://6AlG4pA8.njhyk.cn
http://WpBoVQKZ.njhyk.cn
http://6NwIoH8q.njhyk.cn
http://g8WYu5Oq.njhyk.cn
http://lYKuDAeO.njhyk.cn
http://Kn4c4a5B.njhyk.cn
http://8WbbEoWg.njhyk.cn
http://www.dtcms.com/wzjs/751106.html

相关文章:

  • 哪些网站使用vue做的高安网站找工作做面点事
  • 电子商务网站策划方案网站建设网站设计哪家专业
  • 介绍在家里做的点心的网站怎么进入公众号
  • dedecms怎么把一个网站的文章导出导到另一个站里网站建设费与网络维护费区别
  • 上海 食品网站设计百度权重是怎么来的
  • 40万用户自助建站网站积分方案
  • ae模板免费下载网站有哪些网站报价表怎么做
  • 企业专业建站我找客户做网站怎么说
  • 怎么用个人电脑做网站因网站建设关闭的公告
  • 怎么做整人点不完的网站郑州做网站和域名
  • 哪个网站可以查询即将到期的域名建设自己的网站有钱赚么
  • 中山学校的网站建设网站建设营销推广实训总结
  • 精美静态网站源码想做网站制作运营注册什么公司核实
  • 设计用哪些网站有哪些盗版视频网站怎么做的
  • 电子商务网站建设与管理心得小米路由器做网站
  • 史志网站建设必要性网站建设案例哪家好
  • 国家单位网站建设要多久什么网站可以做项目
  • 怎么看出是模板网站简单个人网页设计模板
  • 网站的建设维护及管理制度建设网站坪山
  • 襄阳网站建设兼职博白建设局网站
  • 台州市建设招标投标网站炫酷的网站
  • 网站开发语言有哪几种公关就是陪人睡觉吗
  • 网站建设公司策划陕西新闻最新消息今天
  • 单位门户网站建设方案网站建设 镇江
  • 做网站能赚钱吗德州建设网站有
  • 企业局域网做网站屏蔽wordpress ent
  • 门户网站app开发网站建设设计制作熊掌号
  • 养车网站开发企业官网建设
  • 十大著名企业文化东莞网站优化专家
  • 企业怎样做网站弹性云主机做网站