欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    汇编数据处理指令笔记.docx

    • 资源ID:11539710       资源大小:179.25KB        全文页数:20页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    汇编数据处理指令笔记.docx

    1、汇编数据处理指令笔记数据处理指令1.数据传送(MOV MVN)2.算术运算(ADD ADC SUB SBC RSB RSC)3.位运算(AND ORR EOR BIC)4.比较测试(CMP CMN TST TEQ)操作码条件码S 目标寄存器, 第一源操作数, 第二源操作数1.数据传送指令无第一源操作数2.比较测试指令无目标寄存器3.比较测试指令不加S,结果影响NZCV4.第一源操作数是寄存器5.第二源操作数有:8位图立即数,寄存器,寄存器移位 (LSL,LSR,ASR,ROR,RRX)6.S:1.目标寄存器为PC,CPSR=SPSR 2.目标寄存器不为PC,结果影响NZCV7.加法,C进位,有

    2、进位,C=1,无进位,C=08.减法,C借位,有借位,C=0,无借位,C=11-10累加和arm-linux-as -g -o sum.o sum.sarm-linux-ld -e _start -o sum sum.oqemu-arm -g 1234 sumarm-linux-gdb sum最大公约数的求解20=5X412=3X4 = 2X4R0=20R1=12R0=R1? 20!=12R0=R0-R1=20-12=8R1=R1-R0=12-8=4R0=R0-R1=8-4=4while(R0 != R1) if(R0 = R1) R0 = R0 R1; else R1 = R1 R0;跳转指

    3、令数据处理指令(传送,加法,减法,位运算,比较测试)mov r1, #0x56从存储器中获得,怎么办?加载指令:将数据从存储器中读到寄存器存储指令:将处理完毕的数据(寄存器)存储回存储器实现了寄存器与存储器之间的数据交互单寄存器多寄存器单寄存器字和无符号字节的加载,存储指令单寄存器的字加载指令LDRcond Rd, 功能:将指定地址单元的字数据读入Rd中。单寄存器的无符号字节加载指令LDRcondB Rd, 功能:将指定地址单元中的字节数据读入Rd中,字节数据放在Rd的低8位,高24bit用0填充:数据来源Rd:目标寄存器示例LDR R1, R2 R2=0x20008000R1是0x20008

    4、000地址中的数据LDR PC, R0, #8LDRB R1, R2, #1 R2=0x20008000 0x56R1=0x56R2=R2+1=0x20008001 LDR R1, PC, R3 LDR R1,R2, R3, LSL #2 LDREQB R1,R2, R3 LDR R0, R0, #8! 基址与目标寄存器不一样单寄存器字和无符号字节存储指令语法格式 STRcond Rd, 功能:将Rd寄存器的字数据存储到由指定的地址中STRB Rd, 功能:将寄存器中一个字节数据保存到指定的地址中Rd:源寄存器:数据需要存储到的目标地址示例 STR R1, R2STR R1, R2, #1 S

    5、TR R1, R2, R3STRB R0, R1, R2, ASR #2 STREQB R0, R1, R2, LSL #2STR PC, R0, #8 PC, #8 单元内容 STR R0, R0, #8! 1 .零偏移 LDR R0, R1 /将R1指定的地址中的数据加载到R0R0=0xe92d48002. , #+/- 偏移量为立即数(12bit) LDR R0, R1,#0x8 ;R0-R1+0x8 LDR R0, R1, #-0x20 ; R0- R1 0x20R0=0xe59f30603. , +/- 偏移量为寄存器 LDR R0,R1, R2 ;R0-R1+R2 LDR R0,R

    6、1,-R2 ;R0-R1-R24. , +/-, # 偏移量为寄存器移位 LDR R0,R1 ,R2,LSL #2 ;R0-R1+R2*45. , #+/-! LDR R0,R1, #0x8! ;R0-R1+0x8 R1=R1+8 1.先加载数据 2.改变基址6. , +/-! LDR R0,R1,R2 ! ;R0-R1+R2 R1=R1+R2 7. , +/-, #!LDR R0,R1,R2,LSL #2 ! ;R0-R1+R2*4 R1=R1+R2*4 8. , #+/- LDR R0, R1, #0x20 ;R0=-R1 R1=R1+0x20 1.现将基址指定的数据加载到R0 2.改变基

    7、址9. , +/- LDR R0, R1, R2 ;R0=-R1 R1=R1+R2 10. , +/-, # LDR R0, R1, R2, LSL #2;R0=-R1 R1=R1+R2*4 地址模式:10:1.无偏移量,将指定基址的数据加载到寄存器,基址不变2.将基址+偏移量 指定地址的数据加载到寄存器,基址不变1.立即数2.寄存器3.寄存器移位3.将基址+偏移量 指定地址的数据加载到寄存器,基址=基址+偏移量1.立即数2.寄存器3.寄存器移位4.将基址表示的加载到寄存器,基址=基址+偏移量1.立即数2.寄存器3.寄存器移位单寄存器字和无符号字节的加载,存储指令单寄存器半字和有符号字节的加载

    8、,存储指令加载指令语法格式 LDRcondH Rd, 功能:Rd- ,高16bit用0填充LDRcondSH Rd, 功能:Rd- ,高16bit用符号位填充LDRcondSB Rd, 功能:Rd- ,高24bit用符号位填充使用示例 LDRH R1, R0 R0=0x20008000R1=0x4800LDRSH R8, R3, #2LDREQH R12, R13, #-6LDRSB R7, R6, #-1! LDRH R3, R9, #2 LDRSB R1, R2, R3LDRH PC, R0 LDRH R0, R0, #4 LDRSB PC, R0 LDRSB R0, R0, #4 不要以

    9、PC作为目标寄存器用在加载半字和字节的加载指令中在基址要发生变化的指令中,基址寄存器和目标寄存器不要相同的语法格式 STRcondH Rd,使用示例 STRH R1, R0 STRH R8, R3, #2STREQH R12, R13, #-6STRH R7, R6, #-2! STRH R3, R9, #2 STRH R1, R2, R3STRH PC, R0 STRH R0, R0, #4 STRH R7, R6, #-1 ?半字读写时,指定的地址必须半字对齐,地址整除2基址+偏移量偏移量:立即数(由8bit来表示),寄存器1 .零偏移LDRSH R0, R1 R0-R1的低16bit R

    10、0的高16bit用符号位填充2. , #+/-LDRH R0, R1, #0x043. , +/-LDRSB R0, R1, R24. , #+/-!LDRH R0, R1, #0x08!5. , +/-!LDRSB R0, R1, R2!6. , #+/-LDRSH R0, R1, #0x47. , +/-LDRSH R0, R1, R2单寄存器字和无符号字节存储加载指令地址模式:基址+偏移量立即数(12bit)寄存器寄存器移位单寄存器半字和有符号字节存储加载指令地址模式:基址+偏移量立即数(8bit)寄存器多寄存器存储加载指令多寄存器加载指令 LDMLDMcondaddressing_mo

    11、de Rb!, 功能:将Rb基址中数据加载到Reglist表示的寄存器列表中LDMIA / STMIA 后增加 LDMIB / STMIB 先增加 LDMDA / STMDA 后减小 LDMDB / STMDB 先减小多寄存器存储指令 STMSTMcond addressing_mode Rb!, cond : 条件域addressing_mode LDMIA / STMIA Increment After(先操作,后增加)LDMIB / STMIB Increment Before(先增加,后操作)LDMDA / STMDA Decrement After (先操作,后递减)LDMDB /

    12、STMDB Decrement Before (先递减,后操作)Rb : 基址寄存器! : 更新基址寄存器Reglist: 源/目标寄存器列表(可以是16个寄存器的任何子集) : 1.寄存器列表中没有PC寄存器:特权模式下使用用户模式下的寄存器 2.寄存器列表中有PC寄存器,CPSR=SPSR,异常返回 R10:基址寄存器R0,R1,R4:源操作的寄存器STMDA R10!, R0,R1,R4LDMIA R10, R0,R1,R4R0=0x20008000 IB地址先增加,然后再加载数据0x20008000=10x20008004=20x20008008=30x2000800C=40x2000

    13、8010=5LDMIB R0! , R1,R2,R3,R4R1=2R2=3R3=4R4=5R0=0x20008010R0=0x20008000 IA地址后增加,先加载数据0x20008000=10x20008004=20x20008008=30x2000800C=40x20008010=5LDMIA R0!, R1, R2, R3,R4R1=1R2=2R3=3R4=4R0=0x20008010LDMIA R0!, R1-R3LDMIB R0, R1-R3, R7 x usr/sysLDMDB SP!, R1-R3, PC x usr/sysLDMDB R0, R0-R2LDMDA R15, R

    14、1 xLDMDB R0!, R0-R2 x Rn值 LDMcondaddressing_mode Rb!, 功能:将Rb基址中数据加载到Reglist表示的寄存器列表中多寄存器存储指令 STMSTMcond addressing_mode Rb!, IA 先存储或加载数据,地址后增加 IB 地址先增加,后存储或加载数据DA 先存储或加载数据,地址后减小DB 地址先减小,后存储或加载数据多寄存器存储加载,只操作字数据大编号寄存器存放在高地址,小编号寄存器存放在低地址!:基址要更新:1.寄存器列表中包括PC,CPSR=SPSR(异常模式下使用) 2.寄存器列表中不包括PC,特权模式下使用用户模式寄

    15、存器PC不做为基址寄存器若要更新基址,基址和目标寄存器不使用相同的寄存器STMIA R0!, R1-R3STMIA SP!, R1-R3, LR STMIB R0, R1-R3, R9 x usr/sysSTMDB R0, R0-R2STMDB R0!, R0-R2 STMDA R15, R1 x栈的种类:Descending stacks (减栈) 栈向内存地址减小的方向变化Ascending stacks (加栈) 栈向内存地址增加的方向变化Full stacks (满栈) 栈指针指向的栈顶保存有效元素Empty stacks (空栈) 栈指针指向的栈顶未保存有效元素综合以上两种特点,有以

    16、下4种栈 FD(Full Descending) 满减栈ED(Empty Descending) 空间栈FA(Full Ascending) 满加栈EA(Empty Ascending) 空加栈STMFD (Push) 多寄存器存储 - STMDB LDMFD (Pop) 多寄存器加载 - LDMIA STMDB 入栈LDMIA 出栈.MOV R0, #0MOV R1,#1BL loop CPU自动将ADD指令地址存放LRADD R3,R4loop: STMFD sp!, r4-r7, lr SUB R4, #1 . LDMFD sp!, r4-r7, pc STMFD(STMDBPush):

    17、入栈根据满减栈原则,先减地址,后入栈,高地址存大编号寄存器的原则,依次入栈,栈顶指针永远指向有效元素。如果不先减地址,则将原栈顶有效元素覆盖。LDMFD(LDMIAPop):出栈根据满减栈原则,先出栈,后加地址,依次出栈,栈顶指针永远指向有效元素。如果不先出栈,则将丢失一个有效元素。MRS程序状态寄存器读指令MRS指令语法格式MRScond Rd, psr cond 条件码 Rd目标寄存器(不能是R15)Psr 程序状态寄存器(CPSR,SPSR)MRS , CPSRMRS , SPSR示例:MRS R0, CPSR ;将CPSR状态寄存器读取,保存到R0中MRS R1, SPSR ;将SPS

    18、R状态寄存器读取,保存到R1中 MSR程序状态寄存器写指令指令的语法格式如下MSR CPSR_, #MSR CPSR_, MSR SPSR_, #MSR SPSR_, MRS R0, CPSR Read the CPSRBIC R0, R0, #0xF0000000 Clear the N, Z, C and V bits MSR CPSR_f, R0 Update the flag bits in the CPSR N, Z, C and V flags now all clearMRS R0, CPSR Read the CPSR ORR R0, R0, #0x80 Set the int

    19、errupt disable bit MSR CPSR_c, R0 Update the control bits in the CPSR interrupts (IRQ) now disabledMRS R0, CPSR Read the CPSR BIC R0, R0, #0x1F Clear the mode bitsORR R0, R0, #0x11 Set the mode bits to FIQ modeMSR CPSR_c, R0 Update the control bits in the CPSR now in FIQ modeMSR CPSR_c, #0x11 000100

    20、01模式位改为FIQ,T位ARM状态,中断都被打开只有确定了当前IFTmode需要改成一个确定的值时,才用此方法,否则,伪指令:ARM伪指令不属于ARM指令集中的指令。定义这些指令可以使ARM汇编程序设计变得更方便。ARM伪指令可以像其他ARM指令一样使用。汇编器会自动用一条或多条ARM指令替换ARM伪指令。ARM的伪指令包括ADR 伪指令ADRL 伪指令LDR 伪指令(两种写法)NOP 伪指令小范围地址加载伪指令 ADR语法格式 ADRcond register, expr cond:条件码 register:目标寄存器,如:R0等 expr:地址表达式(相对于pc或寄存器)加载地址范围 地

    21、址字对齐时: +/-1020 bytes(2554) 地址非字对齐时:+/-255bytes. ADR R1, Delay .Delay: MOV R0, R14 . .0x20 ADD R1, PC,#0x3c R1=PC+0x3C=0x28+0x3C =0x64 . .0x64 MOV R0, R14 .语法格式 ADRLcond register, expr cond:条件码 register:目标寄存器,如:R0等 expr:地址表达式(相对于pc或寄存器)加载地址范围 地址字对齐时: -256K256K地址非字对齐时: -64K64KLDR伪指令语法格式 LDRcond regist

    22、er,=expr | label_expr从指令位置到文字池的偏移量必须小于4KB示例 . LDR R1, =TestData /将0x12345678的地址给R1 LDR R0, R1 /将该地址中的数据加载到R0 .TestData: .word 0x12345678示例2LDR pc, =label 语法格式 LDRcond register, label_expr 从指令位置到文字池的偏移量必须小于4KB示例 . LDR R1, TestData 直接将0x12345678给R1 .TestData: .word 0x12345678示例2 LDR pc, jmp_table jmp_table: .word func_addr BL NOP伪指令在汇编时将会被代替成ARM中的空操作,比如可能是“MOV R0,R0”指令等。NOP可用于延时操作。 示例 MOV R1,#0x1234Delay: NOP NOPSUBS R1,R1,#1 BNE Delay; MOV PC,LRLDR R0,R1单寄存器存储加载多寄存器存储加载(IA IB DA DB )栈(满减栈 DB IA)状态寄存器的读写命令伪指令伪操作C和汇编的混合编程


    注意事项

    本文(汇编数据处理指令笔记.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开