首先需要朱有鹏老师,这是在学习了朱老师的课程之后的一点理解,代码是根据朱老师的源码学习之后编写的。根据反汇编代码d0024010:e24f0018subr0,
pc,#24可以看出通过adr汇编伪指令将加载地址写入r0寄存器,此时因为adr指令采用相对寻址的寻址方式所以adr实际写入r0寄存器的地址..
分类:
其他好文 时间:
2015-11-14 23:36:38
阅读次数:
454
可以使用#define伪指令定义一个宏,宏分为带参数的宏和不带参数的宏。宏定义以#define关键字后面第一个出现的第一个连续字符序列作为宏,剩下的部分作为宏体。宏定义具有文件作用域,不论宏定义出现在文件中的那个地方(如函数体内,类型定义内部,名字空间内部等),在它后面的..
分类:
其他好文 时间:
2015-11-14 23:35:00
阅读次数:
415
一、Call和Ret指令 二、在子过程中需要自己保存可能会修改掉的寄存器值,这里可以使用USES伪指令来生成 三、一个数组求和的汇编例子 1 TITLE Call a Proc Demo 2 INCLUDE Irvine32.inc 3 includelib Irvine32.lib 4 i...
分类:
其他好文 时间:
2015-11-05 00:21:21
阅读次数:
290
1. ldr和 str:(1) ldr 作为指令,叫做寄存器加载指令。将内存中的值加载到寄存器中。(2) ldr 作为伪指令,实现一个32位常数或地址值加载到寄存器中。后面加载的常量或地址值标号前面必须有一个 “=” ,编译器会将伪指令替换成指令实现。(3) str 将寄存器中的值保存到内存单元中....
分类:
系统相关 时间:
2015-09-22 16:27:49
阅读次数:
191
这个函数跟以前的写法,改变有如下几点: 用.equ伪指令,引用系统调用编号,.equ有点类似c语言里面的宏替换 用.lcomm伪指令,声明一块buffer code: .equ?BUFFER_SIZE,?512
.equ?SYS_READ,?3
.equ?SYS_WRITE...
分类:
其他好文 时间:
2015-08-16 13:57:07
阅读次数:
124
汇编语言由3类指令组成,分别是: ①汇编指令:机器码的助记符,有对应的机器码 ②伪指令:由编译器执行,计算机并不执行,没有对应的机器码 ③其他符号:由编译器识别,没有对应的机器码 所以汇编语言的核心是:汇编指令一、指令和数据: 在磁盘或者内存中的指令和数据没有区别,只是以二进制存放的信息。而在CPU...
分类:
其他好文 时间:
2015-07-25 10:37:44
阅读次数:
107
汇编语言(基础知识)011、 汇编语言得主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。2、 操作 机器指令 汇编指令3、 汇编语言的组成:(1) 汇编指令:机器码的助记符,有对应的机器码。(2) 伪指令:没有对应的机器码,由编译器执行,计算机并不...
分类:
编程语言 时间:
2015-07-20 14:11:56
阅读次数:
164
一、什么是栈对齐?栈的字节对齐,实际是指栈顶指针须是某字节的整数倍。因此下边对系统栈与MSP,任务栈与PSP,栈对齐与SP对齐 这三对概念不做区分。另外下文提到编译器的时候,实际上是对编译器汇编器连接器的统称。之前对栈的8字节对齐理解的不透,就在网上查了好多有关栈字节对齐、还有一些ARM对齐伪指令的...
分类:
其他好文 时间:
2015-07-13 20:05:46
阅读次数:
332
4.1一个源文件从写出到执行的过程a.编写源文件(伪指令+汇编指令)b.编译连接c.执行4.2源程序程序4.1assume cs:codesg //将段codesg与cs段寄存器关联,表示这是一个代码段(指令段)codesg segment //段开始 段名为codesg mov a...
分类:
编程语言 时间:
2015-06-30 18:06:54
阅读次数:
226