随笔分类 -  ARM

摘要:ARM的指令系统中关于栈指令的内容比较容易引起迷惑,这是因为准确描述一个栈的特点需要两个参数: 栈地址的增长方向 :ARM将向高地址增长的栈称为 递增栈 (Descendent Stack),将向低地址增长的栈称为 递减栈 (Acendant Stack) 栈指针的指向位置 :ARM将栈指针指向栈顶 阅读全文
posted @ 2016-03-07 13:09 Florian 阅读(9983) 评论(1) 推荐(3) 编辑
摘要:学习ARM汇编时,少不了对ARM汇编指令的调试。作为支持多语言的调试器,gdb自然是较好的选择。调试器工作时,一般通过修改代码段的内容构造trap软中断指令,实现程序的暂停和程序执行状态的监控。为了在x86平台上执行ARM指令,可以使用qemu模拟器执行ARM汇编指令。 一、准备ARM汇编程序 首... 阅读全文
posted @ 2015-10-09 23:45 Florian 阅读(8500) 评论(4) 推荐(0) 编辑
摘要:ARM的常数表达式 如果说Intel指令中的立即数,相信大家都很熟悉。类似的,Arm指令中的“立即数”就是常数表达式。之所以称为常数表达式,而不称为立即数是有原因的。 Intel指令属于CISC指令集,指令是不定长的,因此可以将任意32位立即数编码到指令内。 Arm指令属于RISC指令集,指令是定长的32字节。众所周知,指令中操作码是必须的字段,如果把32位立即数直接编码到指令内部,操作码就无“容身之地”了…… 因此,Arm指令中“立即数”的位数必小于32位。那么如何在Arm指令中正常表示立即数呢?我们看看Arm的通用指令格式。 Arm指令中,操作码(opcode)、... 阅读全文
posted @ 2014-03-03 20:18 Florian 阅读(3937) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示