![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编自学笔记
文章平均质量分 81
u011337769
学无止境!
展开
-
debug使用
一、DEBUG程序的调用在DOS的提示符下,可键入命令:C:\DEBUG[D:][PATH][FILENAME[.EXT][PARM1][PARM2] 其中,文件名是被调试文件的名字。如用户键入文件,则DEBUG将指定的文件装入存储器中,用户可对其进行调试。如果未键入文件名,则用户可以用当前存储器的内容工作,或者用DEBUG命令N和L把需要的文件装入存储器后再进行调试。命令中的D指定驱原创 2017-05-22 21:01:22 · 541 阅读 · 0 评论 -
11_ARM汇编自学笔记指令系统之程序状态寄存器访问指令
程序状态寄存器访问指令ARM 微处理器支持程序状态寄存器访问指令,用于在程序状态寄存器和通用寄存器之间传送数据,程序状态寄存器访问指令包括以下两条:— MRS 程序状态寄存器到通用寄存器的数据传送指令— MSR 通用寄存器到程序状态寄存器的数据传送指令1、 MRS指令MRS指令的格式为:MRS{条件} 通用寄存器,程序状态寄存器(CPSR或 SPSR)MRS指令用于将程序转载 2017-07-06 19:10:23 · 529 阅读 · 0 评论 -
12_ARM汇编自学笔记指令系统之加载存储指令
加载/存储指令ARM 微处理器支持加载/存储指令用于在寄存器和存储器之间传送数据,加载指令用于将存储器中的数据传送到寄存器,存储指令则完成相反的操作。常用的加载存储指令如下:— LDR 字数据加载指令— LDRB 字节数据加载指令— LDRH 半字数据加载指令— STR 字数据存储指令— STRB 字节数据存储指令— STRH 半字数据存储指令1、LDR指令转载 2017-07-06 19:12:58 · 378 阅读 · 0 评论 -
13_ARM汇编自学笔记指令系统之批量数据加载存储指令
批量数据加载/存储指令ARM 微处理器所支持批量数据加载/存储指令可以一次在一片连续的存储器单元和多个寄存器之间传送数据,批量加载指令用于将一片连续的存储器中的数据传送到多个寄存器,批量数据存储指令则完成相反的操作。常用的加载存储指令如下:— LDM 批量数据加载指令— STM 批量数据存储指令LDM(或 STM)指令LDM(或 STM)指令的格式为:LDM(或 STM){转载 2017-07-06 19:14:49 · 1332 阅读 · 0 评论 -
14_ARM汇编自学笔记指令系统之数据交换指令
数据交换指令ARM 微处理器所支持数据交换指令能在存储器和寄存器之间交换数据。数据交换指令有如下两条:— SWP 字数据交换指令— SWPB 字节数据交换指令1、SWP指令SWP指令的格式为:SWP{条件} 目的寄存器,源寄存器 1,[ 源寄存器 2]SWP指令用于将源寄存器 2所指向的存储器中的字数据传送到目的寄存器中,同时将源寄存器 1中的字数据传送到源寄存器 2所指转载 2017-07-06 19:17:46 · 1586 阅读 · 0 评论 -
15_ARM汇编自学笔记指令系统之移位指令(操作)
移位指令(操作)ARM微处理器内嵌的桶型移位器(Barrel Shi f t er),支持数据的各种移位操作,移位操作在ARM指令集中不作为单独的指令使用,它只能作为指令格式中是一个字段,在汇编语言中表示为指令中的选项。例如,数据处理指令的第二个操作数为寄存器时,就可以加入移位操作选项对它进行各种移位操作。移位操作包括如下 6种类型,ASL 和 LSL 是等价的,可以自由互换:— LSL转载 2017-07-06 19:19:31 · 1648 阅读 · 0 评论 -
16_ARM汇编自学笔记指令系统之协处理器指令
协处理器指令ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和存储器之间传送数据。ARM 协处理器指转载 2017-07-06 19:21:59 · 368 阅读 · 0 评论 -
17_ARM汇编自学笔记指令系统之异常产生指令
异常产生指令ARM 微处理器所支持的异常指令有如下两条:— SWI 软件中断指令— BKPT 断点中断指令1、SWI 指令SWI 指令的格式为:SWI {条件} 24位的立即数SWI 指令用于产生软件中断,以便用户程序能调用操作系统的系统例程。操作系统在 SWI 的异常处理程序中提供相应的系统服务,指令中 24 位的立即数指定用户程序调用系统例程的类型,相关参数通过通用寄转载 2017-07-06 19:23:07 · 518 阅读 · 0 评论 -
18_ARM汇编自学笔记程序设计之符号定义&数据定义伪指令
四,ARM程序设计符号定义(Symbol Definition)伪指令GBLA、GBLL和 GBLSGBLA Test1 ;定义一个全局的数字变量,变量名为Test1Test1 SETA 0xaa ;将该变量赋值为 0xaaGBLL Test2 ;定义一个全局的逻辑变量,变量名为Test2Test2 SETL {TRUE} ;将该变量赋值为真GBLS转载 2017-07-06 19:24:28 · 1068 阅读 · 0 评论 -
19_ARM汇编自学笔记程序设计之汇编控制
汇编控制(Assembly Control)伪指令I F、ELSE、ENDI FGBLL Test ;声明一个全局的逻辑变量,变量名为 Test⋯⋯IF Test = TRUE指令序列 1ELSE指令序列 2ENDIF WHI LE、WENDGBLA Counter ;声明一个全局的数学变量,变量名为 CounterCount er SETA转载 2017-07-06 19:26:21 · 333 阅读 · 0 评论 -
20_ARM汇编自学笔记程序设计之汇编格式
在汇编语言程序中常用的符号程序中的变量是指其值在程序的运行过程中可以改变的量程序中的常量是指其值在程序的运行过程中不能被改变的量程序中的变量可通过代换操作取得一个常量代换操作符为“$”。 汇编语言程序中的表达式和运算符“+”、“-”、“×”、“/” 及“MOD”算术运算符X:MOD:Y 表示 X 除以 Y 的余数。“ROL”、“ROR”、“SHL”及“SHR”移位运转载 2017-07-06 19:30:38 · 411 阅读 · 0 评论 -
10_ARM汇编自学笔记指令系统之乘法指令与乘加指令
乘法指令与乘加指令ARM 微处理器支持的乘法指令与乘加指令共有 6 条,可分为运算结果为 32 位和运算结果为 64位两类,与前面的数据处理指令不同,指令中的所有操作数、目的寄存器必须为通用寄存器,不能对操作数使用立即数或被移位的寄存器,同时,目的寄存器和操作数 1 必须是不同的寄存器。乘法指令与乘加指令共有以下 6 条:— MUL 32位乘法指令— MLA 32位乘加指令— SM转载 2017-06-27 20:40:22 · 1106 阅读 · 0 评论 -
09_ARM汇编自学笔记指令系统之数据处理指令
数据处理指令数据处理指令可分为数据传送指令、算术逻辑运算指令和比较指令等。数据传送指令:用于在寄存器和存储器之间进行数据的双向传输。算术逻辑运算指令:完成常用的算术与逻辑的运算,该类指令不但将运算结果保存在目的寄存器中,同时更新 CPSR中的相应条件标志位。比较指令:不保存运算结果,只更新CPSR中相应的条件标志位。数据处理指令包括:— MOV数据传送指令— MVN转载 2017-06-27 20:37:41 · 486 阅读 · 0 评论 -
16位汇编指令
汇编语言特点:与机器相关,执行效率高,调试复杂汇编语言优缺点:汇编语言和高级语言混合编写,互补数据表示类型:二进制B,八进制Q,十进制D,十六进制HBCD编码:用二进制来表示十进制数CPU资源和存储器:通用寄存器,标志寄存器,指令寄存器EAX,累加ECX,循环计数EDX,数据寄存器EBX,基址寄存器ESP,栈顶EBP,栈底ESI,扩展源指针EDI,扩原创 2017-05-22 21:00:24 · 5243 阅读 · 0 评论 -
Smali汇编文档
***该文档来源于网络***APK=>ZIPasset\ lib\ |---armeabi\ |---|---armeabi-v7a\META-INF\ res\转载 2017-06-10 16:06:24 · 1253 阅读 · 2 评论 -
01_ARM汇编自学笔记之介绍
一介绍ARM 处理器共有37 个寄存器,被分为若干个组,这些寄存器包括:-31 个通用寄存器,包括程序计数器(PC 指针),均为 32 位的寄存器。-6 个状态寄存器,用以标识 CPU 的工作状态及程序的运行状态,均为 32 位,目前只使用了其中的一部分。同时,ARM 处理器又有 7 种不同的处理器模式,在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下,可转载 2017-06-27 19:27:22 · 219 阅读 · 0 评论 -
02_ARM汇编自学笔记模型之ARM微处理器的工作状态
二模型ARM 微处理器的工作状态- 第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;- 第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。状态切换方法:在开始执行代码时,应该处于ARM状态,采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态,当处理器处于Thumb状态时发生异常(如I RQ、FI Q、Undef 、Abort 、转载 2017-06-27 19:41:41 · 298 阅读 · 0 评论 -
03_ARM汇编自学笔记模型之处理器模式
处理器模式:─ 用户模式(usr): ARM处理器正常的程序执行状态─ 快速中断模式(f i q): 用于高速数据传输或通道处理─ 外部中断模式(i rq): 用于通用的中断处理─ 管理模式(svc): 操作系统使用的保护模式─ 数据访问终止模式(abt ): 当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。─ 系统模式(sys): 运行具有特权的操作转载 2017-06-27 19:47:16 · 223 阅读 · 0 评论 -
04_ARM汇编自学笔记模型之ARM 状态下的寄存器组织
ARM 状态下的寄存器组织通用寄存器包括R0~R15,可以分为三类:─ 未分组寄存器R0~R7:未分组寄存器都指向同一个物理寄存器─ 分组寄存器R8~R14:每一次所访问的物理寄存器与处理器当前的运行模式有关,对于R8~R12来说,每个寄存器对应两个不同的物理寄存器,R8_f i q~R12_f i q;当使用f i q模式时,访问寄存器,当使用除f i q模式以外的其他模式时,访问寄转载 2017-06-27 19:52:35 · 757 阅读 · 0 评论 -
05_ARM汇编自学笔记模型之程序状态寄存器
程序状态寄存器:ARM体系结构包含一个当前程序状态寄存器(CPSR)和五个备份的程序状态寄存器(SPSRs)。备份的程序状态寄存器用来进行异常处理,其功能包括:─ 保存ALU中的当前操作信息─ 控制允许和禁止中断─ 设置处理器的运行模式在ARM状态下,绝大多数的指令都是有条件执行的。在Thumb状态下,仅有分支指令是有条件执行的。控制位P转载 2017-06-27 20:09:05 · 497 阅读 · 0 评论 -
06_ARM汇编自学笔记指令系统之分类与格式
三指令系统ARM 微处理器的指令的分类与格式:ARM微处理器的指令集是加载/ 存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/ 存储指令来完成。ARM微处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令六大类,具体的指令及功能如表3-1所示(表转载 2017-06-27 20:15:48 · 287 阅读 · 0 评论 -
07_ARM汇编自学笔记指令系统之寻址方式
ARM 指令的寻址方式:1.立即寻址立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。例如以下指令:ADD R0,R0,#1 ;R0←R0+1ADD R0,R0,#0x3f ;R0←R0+0x3f在以上两条指令中,第二个源操作数即为立即数,要求以“#”为前缀,对于转载 2017-06-27 20:28:40 · 547 阅读 · 0 评论 -
08_ARM汇编自学笔记指令系统之跳转指令
ARM 指令集:跳转指令跳转指令用于实现程序流程的跳转,在 ARM 程序中有两种方法可以实现程序流程的跳转:— 使用专门的跳转指令。— 直接向程序计数器 PC 写入跳转地址值。通过向程序计数器 PC 写入跳转地址值,可以实现在4GB 的地址空间中的任意跳转,在跳转之前结合使用MOV LR,PC等类似指令,可以保存将来的返回地址值,从而实现在 4GB 连续的线性地址空间转载 2017-06-27 20:34:02 · 442 阅读 · 0 评论 -
win32汇编Demo_电话本
使用win32汇编实现一个电话本DemoPhoneBook.incinclude windows.incinclude kernel32.incinclude user32.incinclude Comctl32.incinclude shell32.incincludelib kernel32.libincludelib user32.libincludelib Com原创 2017-07-06 20:38:03 · 550 阅读 · 0 评论