三九宝宝网宝宝百科宝宝知识

ARM汇编align怎么用

01月08日 编辑 39baobao.com

[辐射避难所生产效率怎么提高辐射避难所生产攻略]1、对应属性:游戏中不同的建筑物会对应不同属性,如电力设施对应S属性,食物对应A属性,水对应P属性,而药物对应I属性,若相同属性的人物进入生产设施会对于产能有所提高,同时若高属性...+阅读

先看以下代码: mov r1,r0 mov r0,#12 ldr r4,str1 ldr r3, =str1 ldr r5,str ldr r6,=str ldr r7,str str1: .word 7777 str: .word 0x33f80000 .byte 0x88 .byte 0x77 reset: mov r8,#0 这段代码在编译时不会出现任何问题,但是实际在执行中并不会按照预定的要求执行;编译链接后,通过反汇编如下:30008000: e1a01000 mov r1, r030008004: e3a0000c mov r0, #1230008008: e59f400c ldr r4, [pc, #12] ; 3000801c3000800c: e59f3018 ldr r3, [pc, #24] ; 3000802c30008010: e59f5008 ldr r5, [pc, #8] ; 3000802030008014: e59f6014 ldr r6, [pc, #20] ; 3000803030008018: e59f7000 ldr r7, [pc, #0] ; 300080203000801c:3000801c: 00001e61 .word 0x00001e6130008020:30008020: 33f80000 .word 0x33f8000030008024: 7788 .short 0x778830008026:30008026: e3a08000 mov r8, #03000802a: 0000 .short 0x00003000802c: 3000801c .word 0x3000801c30008030: 30008020 .word 0x30008020 通过反汇编我们可以看出,前面所有的指令都是4的倍数,而在reset这个地址处的指令却不是4的倍数,我们知道ARM是32位处理器,如果在ARM指令状态下,所有指令的执行都是按照4的倍数进行执行的,而到reset这个地址处时,发现地址为30008026不是4的倍数,于是就自动归到30008024处执行,当然会出错了。

在指令出现非对齐情况下,可以在下面插入.align伪指令,如下: mov r1,r0 mov r0,#12 ldr r4,str1 ldr r3, =str1 ldr r5,str ldr r6,=str ldr r7,str str1: .word 7777 str: .word 0x33f80000 .byte 0x88 .byte 0x77 .align reset: mov r8,#0 通过编译后反汇编如下:30008000: e1a01000 mov r1, r030008004: e3a0000c mov r0, #1230008008: e59f400c ldr r4, [pc, #12] ; 3000801c3000800c: e59f3018 ldr r3, [pc, #24] ; 3000802c30008010: e59f5008 ldr r5, [pc, #8] ; 3000802030008014: e59f6014 ldr r6, [pc, #20] ; 3000803030008018: e59f7000 ldr r7, [pc, #0] ; 300080203000801c:3000801c: 00001e61 .word 0x00001e6130008020:30008020: 33f80000 .word 0x33f8000030008024: 7788 .short 0x7788 ...30008028:30008028: e3a08000 mov r8, #03000802c: 3000801c .word 0x3000801c30008030: 30008020 .word 0x30008020 加上.align汇编语句后,指令就对齐!.align $

以下为关联文档:

辐射避难所开局及前期玩法思路前期怎么辐射避难所游戏有很多的玩法,其中为了获得物资玩家需要派遣自己的居民出去探索,但是外出是非常危险的。所以玩家要提升辐射避难所居民的属性。那么辐射避难所居民属性该如何提...

农民怎么办收入证明到哪办收入证明一般由用人单位进行开局,农民需要办理收入证明们可以直接打印银行流水。银行流水是证明个人或公司收入情况的一种证明材料。银行流水是指银行活期账户(包括活期存折和...

婴儿肚脐贴怎么用婴儿肚脐贴的使用方法1.如果宝宝的脐带掉了,就直接贴在肚脐上,肚脐贴的那个药要对着肚脐。 2.没掉的话就贴多肚脐下面,不要碰到脐带。 3.在使用结束后,可用温水轻轻擦拭贴部,慢慢取下胶带,以免伤到宝宝...

小儿肚脐贴怎么用阿?拉肚子可以用吗你好!!很荣幸能为你解答,小儿肚脐贴应该先打开包装,撕下那层纸丢掉然后把有药饼的一面对准宝宝肚脐贴上就行了,一天换一回,用之前最好给宝宝敷一下肚子,再贴效果更好。 小孩由于消...

全国法学院综合实力排名前30名的院校的法学硕士研究生就业前景怎么法学研究生培养系统掌握法学知识,熟悉我国法律和党的相关政策,能在国家机关、企事业单位和社会团体、特别是能在立法机关、行政机关、检察机关、审判机关、仲裁机构和法律服务...

赠送给别人的货物怎么做账务处理商品促销赠品的账务处理: 1、购入促销赠品时:借:库存商品。应交税费-应交增值税(进项)。贷:银行存款。 2、无偿赠送促销赠品时:借:销售费用。贷:库存商品。应交税费-应交增值税(销项)。...

如何使用arm汇编指令实现结构化编程ARM汇编程序特点:l 所有运算处理都是发生通用寄存器(一般是R0~R14)的之中.所有存储器空间(如C语言变量的本质就是一个存储器空间上的几个BYTE).的值的处理,都是要传送到通用寄存器...

编写一段ARM汇编程序段实现1 2 3 N NAREA EXAMPLE,CODE READONLY SUM DCD 0 ENTRY CODE32 //32位ARM模式代码 LOOPS LDR R0,=0xffffffff //循环次数,假设N=0xFFFFFFFF MOV R1,#0 //R1清零 LOPPA ADD R1,R1,R0 //...

如何用Arm汇编语言实现几个数的排序ORG 09B0H QUE: MOV R3,#50H QUE1: MOV A,R3 MOV R0,A MOV R7,#0AH CLR 00H MOV A,R0 Q12: INC R0 MOV R2,A CLR C MOV 22H,R0 CJNE A,22H,Q13 SETB C Q13: MOV A,R2 JC Q11...

推荐阅读
图文推荐