1、前言 ARM Cortex-A7 MPCore架构非常庞大和复杂,本文仅仅是记录一些ARM架构相关的基础知识,以便于后续的ARM汇编学习。 2、ARM Cortex-A7 MPCore简介 3、ARM Cortex-A处理器运行模式 4、ARM Cortex-A寄存器组 ...
分类:
其他好文 时间:
2020-02-29 12:49:32
阅读次数:
132
kernel启动分析kernel启动代码kernel启动分析一、链接脚本二、head.S1.汇编阶段内核运行的虚拟地址与物理地址重要注释设置CPU工作模式汇编阶段__lookup_processor_type__lookup_machine_type__vet_atags__create_page_... ...
分类:
其他好文 时间:
2020-02-28 22:51:12
阅读次数:
102
如何看待 内存 ? 可以存放数据 数据段 自己定义的数据 可以存放指令 指令段 自己定义的指令 可以定义成栈空间 栈段 临时存放数据 那么如何让 CPU 按照我们的意愿去访问内存? 对于数据段,我们需要有段地址+偏移地址,目前段地址寄存器只学过 ds 寄存器, 偏移地址只学过 [0],[1] ... ...
分类:
编程语言 时间:
2020-02-28 22:45:43
阅读次数:
63
CAS的概念: CAS的全称为Compare And Swap,直译就是比较交换。是一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值,其实现方式是基于硬件平台的汇编指令,在intel的CPU中,使用的是cmpxchg指令,就是说CAS是靠硬件实现的,从而在硬 ...
分类:
其他好文 时间:
2020-02-28 18:58:26
阅读次数:
72
工欲善其事必先利其器,要学好汇编,首先需要会搭建开发环境,通过一个简单的helloword程序入门
分类:
其他好文 时间:
2020-02-28 09:15:18
阅读次数:
46
继上文,这次开始嫖when_did_you_born这题。前面的步骤大致是一样的就不赘述了,直接到代码分析。 字符串 这次呢在main函数处 按下F5进入调试 查看反汇编代码 可以清楚的看到它的逻辑一开始不能让它判断出是1926,否则就会出错,接着呢再输入名字后判断是否是1926,是的话就返回fla ...
分类:
其他好文 时间:
2020-02-28 01:21:59
阅读次数:
137
C语言 汇编语言 一、C语言 创建变量计算值 #include <stdio.h> int main(void) { // 数据类型 int a = 10; int b = 20; // 计算a+b int c = a + b; printf("%d\n",c); return 0; } 二、C语言 ...
分类:
编程语言 时间:
2020-02-27 13:21:13
阅读次数:
62
上两篇文章我介绍了我最近设计的一套指令集及其对应的虚拟机架构,这篇文章就来介绍虚拟机的实现过程。 虚拟机其实很简单,需要做的只是用一种指令去模拟另一种指令的功能。 为了运行速度,当然希望用尽量低级的方法去模拟,所以应该用汇编编写,但为了效率,我先用的C语言写出整体逻辑,后期再考虑汇编。 虚拟机原理 ...
分类:
其他好文 时间:
2020-02-26 20:25:12
阅读次数:
70
最近学习了X86汇编,其实无论是古老的8086还是现在i3/5/7/9,Xeon3/5,在最基本原理上,都是相通的,只是CPU位数,寻址空间,寄存器个数,指令集的扩充等方面有所不同,对于学习,8086永不过时。
分类:
编程语言 时间:
2020-02-26 09:16:10
阅读次数:
110
最近学习了X86汇编,其实无论是古老的8086还是现在i3/5/7/9,Xeon3/5,在最基本原理上,都是相通的,只是CPU位数,寻址空间,寄存器个数,指令集的扩充等方面有所不同,对于学习,8086永不过时。
分类:
其他好文 时间:
2020-02-26 09:15:34
阅读次数:
109