汇编语言的七种寻址方式

立即寻址   指令中直接给出操作数 MOV A, #30H ;把立即数30H传送到累加器A,执行后(A)=30H 直接寻址   指令中直接给出操作数内部RAM单元地址 MOV A, 30H ;把内部RAM单元中的数据传送给累加器A,执行后(A)=(30H) 寄存器寻址   通过寄存器找到操作数 MOV A, R0 ;将R0的值传送给累加器A, 执行后(A)=(30H) 寄存器间接寻址
阅读本文

ARM 伪指令详解[转]

4.1 ARM汇编器所支持的伪指令 在ARM汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。 在ARM的汇编程序中,有如下几种伪指令:符号定义伪指令、数据定义伪指令、
阅读本文

ARM嵌入式开发中的GCC内联汇编__asm__

在针对ARM体系结构的编程中,一般很难直接使用C语言产生操作协处理器的相关代码,因此使用汇编语言来实现就成为了唯一的选择。但如果完全通过汇编代码实现,又会过于复杂、难以调试。因此,C语言内嵌汇编的方式倒是一个不错的选择。然而,使用内联汇编的一个主要问题是,内联汇编的语法格式与使用的编译器直接相关,也就是说,使用不同的C编译器内联汇编代码时,它们的写法是各不相同的。下面介绍在ARM体系结构下GCC的
阅读本文

NOIp 2017 提高组 初赛被虐记 + 部分题目题面和解析

今天下午本蒟蒻参加了NOIp 2017 的提高组初赛,回家对完答案后心情久久不能平息,故为之记。  全文文字皆为手打,真是累啊!希望能攒点RP吧……一、单项选择题  1.从(   )年开始,NOIP竞赛将不再支持Pascal语言。  A.2020  B.2021  C.2022  D.2023  解:上NOI官网查看公告即可…C  感想:我虽然看过这个公告,但是受某贴吧帖子的影响和极差的记忆力
阅读本文

Java公开课-02.抽象类和接口

在讲述抽象类和接口之前,扯点别的:封装,继承,多态,我只做个简单的涉略一,封装  1.体现:    将变量和方法放到一个类中    私有字段封装成共有属性  2.this:    如果发现成员变量的名称和方法参数的名称相同,如何区分???    答:是否有this关键字做前缀区分,有this的,成员变量,没有this的,方法参数  3.封装价值:    可以保护私有字段,限制非法访问二,继承  不
阅读本文

面向对象(OOP)--OOP基础与this指向详解

前  言           学过程序语言的都知道,我们的程序语言进化是从“面向机器”、到“面向过程”、再到“面向对象”一步步的发展而来。类似于汇编语言这样的面向机器的语言,随着时代的发展已经逐渐淘汰;而面向过程的语言也只有C语言老大哥依然坚挺;现在主流的语言(例如Java、C++、PHP等)都是面向对象的语言。 而我们的JavaScript语言,恰恰介于面向过程与面向对象之间,我们称它为“基
阅读本文

python基础面试

1  请用自己的算法, 按升序合并如下两个list, 并去除重复的元素:list1 = [2, 3, 8, 4, 9, 5, 6]list2 = [5, 6, 10, 17, 11, 2]答案:(1)自己的算法?for x in list1:    for y in list2:            if x == y:                list2.remove(y)list1
阅读本文

操作系统diy-1-资料整理

现在列出资料:intel 80386文档Orange‘S:一个操作系统的实现x86汇编语言  从实模式到保护模式nasmdocx86_x64体系探索及编程(邓志)LINUX内核完全剖析:基于0.12内核mit公开课:https://pdos.csail.mit.edu/6.828/2017/网易云课堂:李治军的课程kernel:https://www.kernel.org/pub/linux/ke
阅读本文

深入理解计算机系统(3.7)------过程(函数的调用原理)

上篇博客我们讲解了计算机汇编语言是如何实现循环结构的。本篇博客我们将介绍汇编语言中过程的实现方式。  过程在高级语言中也称为函数,方法。一个过程的调用包括将数据(以过程参数和返回值的形式)和控制从代码的一部分传递到另一部分。此外,它还必须在进入时为过程的局部变量分配空间,并在退出时释放空间。大多数机器,包括我们一直讲的 IA32,只提供转移控制到过程和从过程中转移出控制这种简单指令。数据传递和
阅读本文

深入理解计算机系统(3.6)------汇编的流程控制

前面我们所讲的所有指令,代码执行顺序都是一条接着一条顺序的执行。但是实际上在编码过程中,会有某些结构,比如条件语句(if-else),循环语句(for,do-while)和分支语句(switch)等等,都要求有条件的执行,根据数据测试的结果来决定操作执行的顺序。  在机器代码中,提供两种基本的低级机制来实现有条件的行为:测试数据值,然后根据测试的结果来改变控制流或者数据流。  那么本篇博客我们
阅读本文

Dsp F2812 实验报告[南京理工]

DSP开发基础实验 实验目的 了解DSP开发系统的基本配置; 熟悉DSP集成开发环境(CCS); 掌握C语言开发的基本流程; 熟悉代码调试的基本方法。 实验内容 实验原理 使用C语言在CCS下开发时,C编译器(Complier)首先将C语言翻译成汇编代码,这一步也会对程序进行一些可选的优化。然后汇编器(Assembler)将汇编代码转换符合公共目标格式COFF的机器码。连接器(Link
阅读本文

ARM指令之精髓DMB,DSB,ISB指令

4.3.5 汇编语言:指令隔离(barrier)指令和存储器隔离指令 CM3 中的另一股新鲜空气是一系列的隔离指令(亦可以译成“屏障”、“路障”,可互换使用——译者 注)。它们在一些结构比较复杂的存储器系统中是需要的(典型地用于流水线和写缓冲——译者注)。在 这类系统中,如果没有必要的隔离,会导致系统发生紊乱危象(race condition),(相当于数电中的“竞争 与冒险”——译者注). 举
阅读本文

【读书笔记】计算机是如何跑起来的

记录一下书中每章我认为的要点。 前言 划分一个知识范围-》基础中的基础的知识-》设定目标,这些知识可以做什么  第一章 计算机的三大原则 计算机的三个根本性基础 1、 计算机是执行输入、运算、输出的机器2、 程序是指令和数据的集合3、 计算机的处理方式有时与人们的思维习惯不同 计算机进化的目的是与人类更加贴近,更加贴近人的行为和思维方式。 第二章 试着制造一台计算机吧 制作微型计算机,主要介绍了
阅读本文

汇编学习总结1---7 章(王爽教程)

汇编语言第一章①字 占16位  字节 占8位  1kb=1024byte(字节)  1byte=8bit(位)②cpu 中,指令和数据都是二进制形式存在 磁盘的数据 CPU无法直接使用,只能读到内存中,才能被使用③cpu在数据读写时,必须和外部芯片进行3类信息交换:  1、地址信息  地址总线  2、控制信息 控制总线  3、数据信息 数据总线④存储器:随机存储器RAM 只读存储器ROM  1、随
阅读本文

GCC编译C源代码的四个步骤

可以利用GCC的参数来控制执行的过程,这样就可以更深入的了解编译C程序的过程。下面将通过对一个程序的编译来演示整个过程。1 #include <stdio.h> 2 3 int main() 4 { 5   printf(“happy new year!n“); 6   return 0; 7 }  1:预处理:编译器将C程序的头文件编译进来,还有宏的替换,可以用gcc的参数-E来参看。命令:
阅读本文

感受异或的神奇~转载

感受异或的神奇什么是异或?Wikipedia的解释:在逻辑学中,逻辑算符异或(exclusive or)是对两个运算元的一种逻辑析取类型,符号为 XOR 或 EOR 或 ⊕(编程语言中常用^)。但与一般的逻辑或不同,异或算符的值为真仅当两个运算元中恰有一个的值为真,而另外一个的值为非真。转化为命题,就是:“两者的值不同。”或“有且仅有一个为真。”定义:1 ⊕ 1 = 00 ⊕ 0 = 01 ⊕ 0
阅读本文

汇编学习笔记(4)-伪指令

前言  编写汇编代码的时候会使用到两种语句,一种就是前面介绍的汇编指令又CPU提供功能支持,另一种呢叫做伪指令,伪指令是由汇编的编译器提供支持。所以伪指令的运行结果都必须实在编译的时候就能确定的,下面介绍的就是伪指令了。 数值表达式  数值表达式不是汇编指令,表达式的值是在汇编代码的汇编过程中就由汇编编译器计算出结果而写到二进制程序中了,并不是在程序运行的过程中才计算的  (1) 常数表达式
阅读本文