
汇编
bytxl
归零。
得意之时谨记,一半命运还掌握在上帝手里;失意之时须知,一半命运还掌握在自己手里。
不怕死,不找死。
展开
-
关于汇编语言寄存器和指令操作的整理
最近汇编学到后面的内容, 越来越觉得前面的基础没有掌握好, 弄得最后编写汇编程序的时候, 寄存器瞎用, 没有一点的规矩, 中断操作也不知道是对哪个寄存器里的数进行操作, 每次做一个小程序, 都得翻书后面的INT中断查询表, 感觉很不爽, 今天花了大半天把几本关于汇编的书前面的内容又翻了一遍, 结合自己做的笔记, 做了一个简单的整理, 关于寄存器和指令的, 以作复习汇编之用. 关于存哪个数据用哪个寄转载 2015-05-06 15:14:50 · 3322 阅读 · 0 评论 -
实模式、保护模式以及虚拟80806方式简介
实模式、保护模式简介1:实模式:寻址采用和8086相同的16位段和偏移量,最大寻址空间1MB,最大分段64KB。可以使用32位指令。32位的x86 CPU用做高速的8086。2:保护模式:寻址采用32位段和偏移量,最大寻址空间4GB,最大分段4GB (Pentium Pre及以后为64GB)。在保护模式下CPU可以进入虚拟8086方式,这是在保护模式下的实模式程序运行环境。转载 2015-09-12 17:00:05 · 1246 阅读 · 0 评论 -
Intel 80X86寄存器分类介绍
开始读Linux内核相关书籍时,在书店里碰到一个计算机专业科班出身的朋友,向他请教时,他认为学习Linux内核不需要汇编和计算机体系结构等相关的知识。可是结合到现在的学习经历,我却越来越觉得为了搞清楚Linux内核相关设计和运行原理,自己那点自学来的汇编知识不但不够,还大大的需要补充。本文是我今日对微处理器寄存器学习总结所得,主要是翻译自《Intel 微处理器英文第7版》,阅读的过程中我参考了网上原创 2015-09-12 09:27:50 · 4136 阅读 · 0 评论 -
GNU风格 ARM汇编语法指南
汇编源程序一般用于系统最基本的初始化:初始化堆栈指针、设置页表、操作 ARM的协处理器等。这些初始化工作完成后就可以跳转到C代码main函数中执行。1、GNU汇编语言语句格式任何Linux汇编行都是如下结构:[:][instruction or directive or pseudo-instruction>} @commentlinstruction为指令ldir转载 2015-11-06 09:56:15 · 575 阅读 · 0 评论 -
ARM LDR/STR指令学习
S3C2440A datasheet上关于这两条指令的说明如下: SINGLE DATA TRANSFER (LDR, STR), The single data transfer instructions are used to load or store single bytes or words of data. 简单的理解就是数据的传送/存储指令。 接下来是转载 2015-10-29 19:41:57 · 3182 阅读 · 0 评论 -
MOV指令
MOV指令允许进行如下操作: MOV 目的 源(1)MOV 寄存器, 寄存器/内存单元/段寄存器/立即数(2)MOV 内存单元, 寄存器/段寄存器/立即数(3)MOV 段寄存器, 寄存器/内存单元1.立即数送寄存器或主存 MOV reg/mem , im mov al , 4 ;原创 2015-10-29 10:20:01 · 14190 阅读 · 3 评论 -
ARM寻址方式
所谓寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的方式。ARM处理器的寻址方式目前ARM处理器支持9种寻址方式,分别是立即数寻址、寄存器寻址、寄存器偏移寻址、寄存器间接寻址、基址变址寻址、多寄存器寻址、相对寻址、堆栈寻址和块拷贝寻址。1. 立即数寻址也叫立即寻址,是一种特殊的寻址方式,操作数本身包含在指令中,只要取出指令也就取到了操作数。这个操作数叫做立转载 2015-10-30 08:35:49 · 788 阅读 · 0 评论 -
ARM详细指令集
算术和逻辑指令ADC : 带进位的加法(Addition with Carry)ADC{条件}{S} , , dest = op_1 + op_2 + carryADC 将把两个操作数加起来,并把结果放置到目的寄存器中。它使用一个进位标志位,这样就可以做比 32 位大的加法。下列例子将加两个 128 位的数。128 位结果:转载 2015-10-30 08:41:41 · 759 阅读 · 0 评论 -
汇编跳转指令B、BL、BX、BLX 和 BXJ的区别
跳转指令用于实现程序流程的跳转,在 ARM 程序中有两种方法可以实现程序流程的跳转:(1) 使用专门的跳转指令。(2) 直接向程序计数器 PC 写入跳转地址值。通过向程序计数器 PC 写入跳转地址值,可以实现在 4GB 的地址空间中的任意跳转,在跳转之前结合使用MOV LR , PC等类似指令,可以保存将来的返回地址值,从而实现在 4GB 连续的线性地址原创 2015-11-17 09:27:05 · 66144 阅读 · 3 评论 -
子程序(过程、函数、方法)
一般程序设计语言包含两种基本的抽象:过程抽象和数据抽象。过程抽象有时也称控制抽象。 子程序在1950年以前就发明了,作为一种抽象那时候并未被完全接受。相反,最初它被看做是一种节省代码的机制,但很快子程序就被认可为过程抽象的一种方式。意识到子程序可以作为一种抽象机制,这产生了三个重要结果。人们发明了一些语言,支持各种参数传递机制奠定了「结构化程序设计」的基础,语言开始支持嵌套转载 2015-09-08 09:12:42 · 13410 阅读 · 0 评论 -
push和pushl的区别
AT&T汇编中,命令中可以指定操作范围,如pushb是将一个byte压栈,而pushw就是将一个word压栈,同样pushl就是压栈long(也就是双字)。%esp指的是esp寄存器,已知是双字;而0xfffffff8(�p)指的是一个内存空间,所以要用pushl来指明那里存放的是一个双字。当要压栈的对象已经确定(也就是说已经知道是字节、字或者双字),那么使用push就不会转载 2015-08-21 09:43:34 · 23421 阅读 · 0 评论 -
Linux下函数调用堆栈帧的详细解释
http://www.ibm.com/developerworks/cn/linux/l-overflow/本文首先向读者讲解了Linux下进程地址空间的布局以及进程堆栈帧的结构,然后在此基础上介绍了Linux下缓冲区溢出攻击的 原理及对策。前言从逻辑上讲进程的堆栈是由多个堆栈帧构成的,其中每个堆栈帧都对应一个函数调用。当函数调用发生时,新的堆栈帧被压入堆栈;当函数返回转载 2015-08-03 14:22:14 · 3027 阅读 · 0 评论 -
GNU ARM汇编快速入门
以前用ARM的IDE工具,使用的是ARM标准的汇编语言。现在要使用GNU的工具,当然要了解一点GNU ARM汇编的不同之处。其实非常的简单,浏览一下文档然后再看看程序就完全可以搞定了,或者你硬着头皮看GNU ARM的汇编程序,用不了多少时间你就就可以无师自通了。ARM汇编语言源程序语句 ,一般由指令、伪操作、宏指令和伪指令作成。ARM汇编语言的设计基础是汇编伪指令,汇编伪操作和宏指令。转载 2015-08-24 09:26:30 · 1913 阅读 · 0 评论 -
汇编语言--call和ret指令
call和ret指令call和ret指令都是转移指令,它们都修改IP,或同时修改CS和IP。它们经常被共同用来实现子程序的设计。 ret和retfret指令用栈中的数据,修改IP的内容,从而实现近转移;retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移。CPU执行ret指令时,进行下面的两步操作:(1)(IP) = ((s转载 2015-08-24 09:22:35 · 6092 阅读 · 0 评论 -
arm汇编—str指令
操作系统:ubuntu10.04汇编语言:armSTR指令的格式为:STR{条件} 源寄存器,STR指令用亍从源寄存器中将一个32位的字数据传送到存储器中。该指令在程序设计中比较常用,丏寻址方式灵活多样,使用方式可参考指令LDR。指令示例:STR R0,[R1],#8 ;将R0中的字数据写入以R1为地址的存储器中,并将新地址R1+8写入转载 2015-08-13 14:22:05 · 45198 阅读 · 1 评论 -
汇编中各寄存器的作用
寄存器 英文名称:Register寄存器定义 寄存器是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。 寄存器是内存阶层中的最顶端,也是系统获得操作资料的最快速途径。寄存器通常都是以转载 2015-05-06 15:17:52 · 2215 阅读 · 0 评论 -
汇编基础入门知识
学习汇编前你应该知道的知识 1、汇编需要什么工具和程序,到哪里下载? 目前阶段,汇编程序仅需要两个程序就够了。masm.exe,link.exe。 前者是编译程序,后者是链接程序。另外,为了验证和调试程序,还需要一个程序debug.exe,该程序由windows本身就提供。 将二者下载后,放到某一个目录中(任意目录都可以),考虑到很多命令需要通过键盘转载 2015-08-24 09:34:34 · 23953 阅读 · 8 评论 -
win7 64位安装debug.exe
Win7 64位的孩子你们伤不起啊,木有debug,汇编实验做得好痛苦。好在现在寻到一个方法,不用装虚拟机,废话不多说,上教程。第一步,下载要用到的工具,http://www.dosbox.com/download.php?main=1 DOSbox 0.74。第二步,双击DOSbox安装第三步,下载一个debug.exe(或者从xp、win7 32位机上拷贝原创 2015-08-28 09:22:44 · 6595 阅读 · 3 评论 -
ARM指令集
ARM指令的基本格式ARM指令的基本格式为: {} {S} , { , }其中,内的项是必需的,{ }内的项是可选的。例:实际指令语法格式为: ADDEQS R0,R1,R2; 该指令的编码格式为: (1)Opcode项Opcode是指令助记符,即操作码,说明指令需要执行的操作,在指令中是必需的。原创 2015-11-11 09:08:03 · 1291 阅读 · 0 评论