
汇编
csshuke
这个作者很懒,什么都没留下…
展开
-
ARM9五级流水线
Arm9的流水线分为:转载 2014-09-04 21:02:04 · 3527 阅读 · 0 评论 -
Linux C中内联汇编的语法格式及使用方法
在阅读Linux内核源码或对代码做性能优化时,经常会有在C语言中嵌入一段汇编代码的需求,这种嵌入汇编在CS术语上叫做inline assembly。本文的笔记试图说明Inline Assembly的基本语法规则和用法(建议英文阅读能力较强的同学直接阅读本文参考资料中推荐的技术文章 ^_^)。注意:由于gcc采用AT&T风格的汇编语法(与Intel Syntax相对应,二者的区别参见这里),转载 2015-09-22 20:58:06 · 515 阅读 · 0 评论 -
8086汇编 贪吃蛇 源代码
assume cs:code,ds:data,ss:stackdata segment dw 200 dup(0) ;--蛇身坐标 dw 0,0,0 ;--存储原始9号中断data endsstack segment STACK db 100 dup(0)stack endscode segment start:;;----------转载 2016-10-24 10:19:57 · 863 阅读 · 1 评论 -
C语言中main函数的研究,以及对代码断点调试的研究(王爽老师 汇编语言)
版权声明:本文为博主原创文章,未经博主允许不得转载。 我们知道作为一个语言本身是不会有诸如从main函数开始运行这样的条件(深层次的说 底层汇编代码不会指定从mian函数开始的这样的条件,程序开始的位置是初始 CS:IP指定的位置) 1、通过书本上给我们提供的信息,我们知道在tc2.0中,给我们提供了寄存器名来给寄存器存储数据, 编写成转载 2016-10-24 10:21:15 · 1710 阅读 · 0 评论 -
8086 汇编语言 走迷宫之 左手法则
[cpp] view plain copyassume cs:code data segment db 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,转载 2016-10-24 10:21:33 · 1751 阅读 · 0 评论 -
8086汇编贪吃蛇(随机食物+速度递增)
基于8086实现的贪吃蛇[cpp] view plain copyassume cs:code,ds:data data segment dw 200 dup(0) ;--蛇身坐标 dw 0,0,0 ;--存储原始9号中断 data ends stack segment转载 2016-10-24 10:23:08 · 1769 阅读 · 1 评论 -
DEBUG各命令详细说明(很详细)
DEBUG各命令详细说明启动DEBUG1.打开Windows命令窗口在Windows 95/98的环境中,打开命令窗口的步骤为:点击“开始”→“运行”,输入“command”命令; 在WindowsXP及WIN7的环境中,打开命令窗口的步骤为:点击“开始”→“运行”,输入“cmd”命令;2.启动DEBUG在命令窗口中启动DEBUG,启动命令一般为:DEBUG [文转载 2016-10-26 12:57:49 · 4608 阅读 · 0 评论 -
汇编指令CALL与JMP的区别
call会把他的下一条指令的地址压入堆栈,然后跳转到他调用的开始处,同时ret会自动弹出返回地址。 JMP只是简单的跳转call的本质相当于push+jmp ret的本质相当于pop+jmp转载 2016-10-31 13:13:56 · 12836 阅读 · 2 评论 -
DOS系统功能调用表(INT 21H)
DOS功能调用 AH功能调用参数返回参数00程序终止(同INT 20H)CS=程序段前缀01键盘输入并回显AL=输入字符02显示输出DL=输出字符转载 2016-11-01 16:20:58 · 509 阅读 · 0 评论 -
CLI or GUI --- 要高效还是要易用? (该文作者的功底真的很深厚啊)
目录(?)[+] 这篇文章很棒 转载过来欣赏地址httpwwwcnitblogcomaddonearchive2008010838581html 要高效还是要易用谈CLI与GUI前言定义谈一些奇怪的论点两者的特点CLI的哲学GUI的哲学协同工作总结 这篇文章很棒, 转载过来欣赏!地址:http转载 2017-09-27 10:41:03 · 404 阅读 · 0 评论 -
gcc内嵌汇编详解
有时候我们希望在C/C++代码中使用嵌入式汇编,因为C中没有对应的函数或语法可用。比如我最近在ARM上写FIR程序时,需要对最后的结果进行饱和处理,但gcc没有提供ssat这样的函数,于是不得不在C代码中嵌入汇编指令。 1. 入门在C中嵌入汇编的最大问题是如何将C语言变量与指令操作数相关联。当然,gcc都帮我们想好了。下面是是一个简单例子。asm(“fsinx %1, %0”:”=转载 2017-11-10 22:56:03 · 405 阅读 · 0 评论 -
Any problem in computer science can be solved with another layer of indirection
计算机能够执行机器语言的程序,这种语言的每条指令用简单的电路单元就能实现,称为L0.程序员使用L0非常困难,因为需要很底层的技术,并且L0都是由数字构成的,如果能够设计一种新的简单易用的语言L1,那么就能用L1来写程序了,有两种方法:· 解释方式当执行用L1语言的编写的程序时,使用L0的解释程序对L1的每条指令解码并执行,这样L1程序可以执行,但是必须在执行之前解码·转载 2018-01-02 15:49:47 · 807 阅读 · 0 评论 -
float与double类型区别比较
参考或转自http://topic.csdn.net/u/20090716/10/CE4A7037-3C0D-40AE-AF85-F702C78FCEA3.html单精度浮点数在机内占4个字节,用32位二进制描述。双精度浮点数在机内占8个字节,用64位二进制描述。浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。数符占1位二进制,表示数的正负。指数符占转载 2018-01-21 09:44:32 · 7804 阅读 · 4 评论 -
MIPS 汇编指令学习
mips的32个寄存器MIPS comes with 32 general purpose registers named $0. . . $31Registers also have symbolic names reflecting their conventional8 use:$0 $zero constant 0$1 $at used by assembler$2转载 2015-09-17 17:47:13 · 1262 阅读 · 0 评论 -
MIPS Spim
MIPS指令学习MIPS指令知识的学习:书本:《计算机组成原理》网络:http://gicl.cs.drexel.edu/people/sevy/architecture/MIPSRef(SPIM).htmlhttp://courses.missouristate.edu/KenVollmar/MARS/Help/SyscallHelp.html环境配置转载 2015-09-17 16:10:40 · 2288 阅读 · 0 评论 -
adr和ldr的区别
同学们在学习ARM指令时,多数都会对adr和ldr这两个命令产生疑惑,那他们究竟有什么区别呢?其实这两个都是伪指令:adr是小范围的地址读取伪指令,ldr是大范围的读取地址伪指令。可实际上adr是将基于PC相对偏移的地址值或基于寄存器相对地址值读取的为指令,而ldr用于加载32为立即数或一个地址到指定的寄存器中。到这儿就会看到其中的区别了。如果在程序中想加载某个函数或者某个在联接时候指定的转载 2014-09-04 20:11:27 · 630 阅读 · 0 评论 -
汇编cmp比较指令详解
刚刚看到了cmp指令,一开始有点晕。后来上网找了些资料,终于看明白了,为了方便初学者,我就简单写下我的思路吧。高手绕过,谢谢! cmp(compare)指令进行比较两个操作数的大小例:cmp oprd1,oprd2为第一个操作减去第二个操作数,但不影响第两个操作数的值它影响flag的CF,ZF,OF,AF,PF我们怎么判断大小呢?若执行指令后ZF=1 这个简单转载 2014-09-04 09:36:14 · 9878 阅读 · 4 评论 -
ARM中C和汇编混合编程及示例
在嵌入式系统开发中,目前使用的主要编程语言是C和汇编,C++已经有相应的编译器,但是现在使用还是比较少的。在稍大规模的嵌入式软件中,例如含有OS,大部分的代码都是用C编写的,主要是因为C语言的结构比较好,便于人的理解,而且有大量的支持库。尽管如此,很多地方还是要用到汇编语言,例如开机时硬件系统的初始化,包括CPU状态的设定,中断的使能,主频的设定,以及RAM的控制参数及初始化,一些中断处理方面也可转载 2014-09-06 15:22:41 · 546 阅读 · 0 评论 -
arm的LDMFD--4种堆栈方式
一开始,看到 STMFD sp!{R0-R5,LR} 这条命令时真是有点疑惑。现根据自己的理解记录一下。供大家分享!我们先要理解一下关于堆栈的相关概念.1,满堆栈:即入栈后堆栈指针sp指向最后一个入栈的元素。也就是sp先减一(加一)再入栈。2,空堆栈:即入栈后堆栈指针指向最后一个入栈元素的下一个元素。也就是先入栈sp再减一(或加一)。1,递增堆栈:即堆栈一开始的地址转载 2014-09-07 16:16:55 · 3174 阅读 · 0 评论 -
S3C2440启动代码分析
;========================================= ; NAME: 2440INIT.S ; DESC: C start up codes ; Configure memory, ISR ,stacks ; Initialize C-variables ; 完全注释 ; HISTORY: ; 2002.02.转载 2014-09-08 09:07:23 · 652 阅读 · 0 评论 -
ARM存储器的大小端存储方式
大端格式和小端格式是两种存储字数据的方法。具体讲是在ARM体系的嵌入式系统结构中存储器存放数据的两种叫法,在嵌入式体系结构中将存储器看作是从零地址开始的字节的线性组合。从第0~3字节放置第一个存储的字数据,从第4~7字节放置第二个存储的字数据,依次排序。作为32位的微处理器,ARM体系结构可支持最大寻址4GB(2^32字节)。大端格式是指字数据的高字节放置在地地址中,而低字节数据放置在高地址中。转载 2014-09-08 10:31:21 · 4460 阅读 · 0 评论 -
arm--ldm、stm指令解析
这里比较下容易混淆的四条指令,已经在这4条指令的混淆上花费了很多精力,现在做个小结,LDR,STR,LDM,STM这四条指令,关于LDM和STM的说明,见另外一个说明文件,说明了这两个文件用于栈操作时的注意事项。(1)LDR:L表示LOAD,LOAD的含义应该理解为:Load from memory into register。下面这条语句就说明的很清楚:LDR R1,转载 2014-09-13 17:29:00 · 744 阅读 · 0 评论 -
ARM指令集
ARM指令集 6种类型(53种主要助记符) : 数据处理指令(22种主要助记符) 跳转指令(4种主要助记符) Load/Store指令(16种主要助记符) 程序状态寄存器指令(2种主要助记符) 协处理器指令(5种主要助记符) 软件中断指令 (2种主要助记符) 数据处理指令 数据处理指令大致可分为3类: 数据传送指令; 算术逻辑运算指令; 乘法指令转载 2014-09-13 17:37:33 · 499 阅读 · 0 评论 -
启动代码和Bootloader的区别和关系介绍
注意:很多初学者总是将启动代码和Bootloader联系在一起,这是错误的什么是启动代码? 启动代码是系统上电或者复位后运行的第一段代码,是进入C 语言的main 函数之前需要执行的那段汇编代码。启动代码有何用? 它的作用是在用户程序运行之前对系统硬件及软件环境进行必要的初始化并在最后使程序跳转到用户程序。它直接面对ARM 处理器内核及硬件控制器进行编程转载 2014-09-13 18:07:29 · 1396 阅读 · 0 评论 -
ARM指令中STM和LDM的理解误区
STM和LDM的主要用途是现场保护、数据复制、参数传递等,其模式有8种,如下:注:前面4种用于数据块的传输,后面4种用于堆栈操作。(1)IA 每次传送后地址加4(2)IB 每次传送前地址加4(3)DA 每次传送后地址减4(4)DB 每次传送前地址减4(5)FD 满递减堆栈(6)FA 满递增堆栈(7)ED 空递转载 2014-09-13 17:46:33 · 3405 阅读 · 0 评论 -
ARM中LDR伪指令与LDR加载指令
ARM指令集中,LDR通常都是作加载指令的,但是它也可以作伪指令。LDR伪指令的形式是“LDR Rn,=expr”。下面举一个例子来说明它的用法。COUNT EQU 0x40003100……LDR R1,=COUNTMOV R0,#0STR R0,[R1]COUNT是我们定义的一个变量,地址为0x转载 2014-09-14 17:28:41 · 489 阅读 · 0 评论 -
arm 流水线和pc值
“然后PC=PC+1”,老师经常这么说。这不完全正确,PC自增一的情况指出现在无流水(non-pipeline)的情况下,这个时候取指,译码,执指都是顺序执行的而在有流水的情况下就比较复杂了这里用arm7和arm9为例。 流水线使用三个阶段,因此指令分为三个阶段执行:1.取指(从存储器装载一条指令);2.译码(识别将要被执行的指令);3.执行(处理指令并将结果写回寄存器)。转载 2014-09-04 21:05:11 · 926 阅读 · 0 评论 -
51单片机汇编教程
很多电子爱好者,都想学习单片机这门技术。下面的这一系列教程是 www.51hei.com 专门为初学者入门而准备的,从底层硬件入手基于汇编和c两种语言,详细的介绍了单片机的原理,指令,寄存器,以及接口等,后面还为你准备了一些小的设计。都是从单片机最基本的东西讲起,相信你一定能看懂,并且学会单片机这门有意思...转载 2018-11-28 13:48:50 · 515 阅读 · 0 评论