- 博客(45)
- 资源 (7)
- 收藏
- 关注
原创 王爽《汇编语言》(第二版) 学习笔记 (第五章 [BX]和loop指令 )
第五章 [BX]和loop指令本章概述:1. 这里将使用一个描述性的符号“( )”来表示一个寄存器或一个内存单元中的内容。“( )”中的元素可以有3种类型:寄存器名、段寄存器名、内存单元的物理地址(一个20位数据)。如:(ax)、(ds)、(al)、(cx)、(20000H)、((ds)*16 + (bx))都是正确的,(2000:0),((ds):1000H)是
2011-04-20 22:14:00 3037
原创 linux内核的学习
linux内核的学习2021-11-09直到昨天,我已经可以看懂从实模式切换到保护模式的代码了,虽然也还有一些小细节有疑问,但大体上已确实能读懂读通。从实模式到保护模式的书,已经看到12章了,还不能看懂存储器保护的具体做法,就去看了新设计团队的《linux内核设计的艺术》第一版,第二版没下完。这本书我是有的,但家里找不到。这本书我看过一章,感觉写得不错,让我以为是外国人写的,其实是中国人写的。它的一大特点是,它用了图来辅助讲解,这些图都给得很不错,对于理解过程是非常有帮助的。我又用手机下载下来看
2021-11-09 11:26:06 587 1
原创 节点方式操作IO
cd /sys/class/gpio你想操作gpio79,但这个目录下没有。怎么办,这个目录下有export执行命令:echo 79 > export就有了gpio79的文件夹。cd gpio79这里面内容很多,重点关注direction和value方向如果是in,你设置value是无效的。设置方向的方法:echo out > direction然后看看方向是不是outcat direction如果输出out就是ok了然后可以echo..
2021-08-17 11:46:34 181
原创 make版本不符合要求,不能编译android的解决方法
2015-5-12Android can only be built by versions 3.81 and 3.82下载地址ftp://ftp.gnu.org/gnu/make/make3.8.2的安装步骤:tar -zxvf make3.8.2.tar.gz在make-3.8.2目录下./configuremakemak
2015-05-12 19:10:46 9055 1
原创 S3C2440 汇编之地址跳转
S3C2440 汇编之地址跳转 2015-2-11自己写了个IRQ的跳转处理,但是却发现BL指令编译通不过,BLX也不行。后来才知道,S3C2440还是ARMv4的汇编指令体系结构,不支持BLX,而BL只支持跳转到常量地址。形如BL R0的写法是不行的,而BX是可以的,BX是带模式切换的,不过模式不需要切换也一样可以用,但BX不能把下一个地址保存到LR中,只有BL和BLX才可以...
2015-02-11 10:52:57 1502
原创 日常使用ubuntu杂记
日常使用ubuntu杂记2015-2-6一、创建程序的快捷方式,并放到桌面sudo ln -s 「程序绝对路径」 「快捷方式路径」把eclipse的快捷方式创建到桌面,因为eclipse安装的目录比较深,每次打开都很花时间,放个快捷方式到桌面很方便。二、设置ubuntu的休眠时间在系统设置的 亮度和锁屏中设置,不是在电源那一栏设置。三、替换ubuntu的uni
2015-02-06 17:29:36 1394
原创 汇编语言的应用
2014-7-12汇编语言的应用历史上,汇编语言曾经是非常流行的程序设计语言之一。随着软件规模的增长,以及随之而来的对软件开发进度和效率的要求,高级语言逐渐取代了汇编语言。但即便如此,高级语言也不可能完全替代汇编语言的作用。就拿Linux内核来讲,虽然绝大部分代码是用C语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码。由于这部分代码与硬件的关系非常密切,即使是C语言也会显得力不从心
2014-07-12 11:25:18 4402 1
原创 外设实战之KEY(查询方式)
2014-6-5外设实战之KEY(查询方式)之前已经能驱动LED,这只是用到GPIO的输出功能,接下来要用到GPIO的输入功能。把输入IO连到KEY上。两个按键,KEY1和KEY2,定义按下KEY1让LED1亮,弹起让LED1灭。按下KEY2让LED2亮,弹起让LED2灭。接下来是实战步骤:一、查看电路原理图: 两个按键,KEY1
2014-06-05 13:47:49 1679
原创 外设实战之搭建开发环境
外设实战总集2014-6-3一、搭建环境先从搭建环境开始,最好尽量是自己动手搭建的环境,虽然可能问题很多,但至少能学到很多东西,以后逐渐熟悉了,问题自然越来越少,越来越得心应手。用别人的工程虽然开始很方便,但毕竟是别人的,只是个权宜之计。以后有问题,或是需要做大的改动,就很难动手了。1.硬件环境:STM32F051R8T6,选的是青风电子的开发板,好像是v2版本的板子。
2014-06-03 17:51:23 1999
原创 每天学点ARM汇编 (ARMv4/v5版本汇编) ()
2013-7-16 条件执行在ARM的指令编码表中,统一占用编码的最高4位[31:28]来表示条件码,即cond。每种条件码用两个英文缩写字符表示其含义,可添加在指令助记符的后面,表示指令执行时必须要满足的条件。ARM指令根据CPSR中的条件位自动判断是否执行指令。在条件满足时,指令执行;否则,指令被忽略(可认为执行了一条NOP伪指令)。指令的条件码:
2013-07-16 14:57:30 1562
原创 王爽《汇编语言》(第二版) 学习笔记 (第十七章 使用BIOS进行键盘输入和磁盘读写)
第十七章使用BIOS进行键盘输入和磁盘读写本章概述:1. 大多数有用的程序都需要处理用户的输入,键盘输入是最基本的输入。2. 程序和数据通常需要长期存储,磁盘是最常用的存储设备。BIOS为这两种外设的I/O提供了最基本的中断例程。一、 int 9 中断例程对键盘输入的处理1. 键盘输入将引发9号中断,
2011-05-02 21:36:00 2328
转载 程序员10大境界
本文转载自:http://student.csdn.net/space.php?uid=1318585&do=blog&id=60100程序员10大境界<br /> <br />自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。 <br /><br />那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程
2011-05-02 16:12:00 5930 2
原创 王爽《汇编语言》(第二版) 学习笔记 (第十六章 直接定址表)
<br />第十六章直接定址表<br />一、 描述了单元长度的标号<br />1. 我们一直在代码段中使用标号来标记指令、数据、段的起始地址。<br />2. 程序中code、a、b、start、s等标号仅仅表示了内存单元的地址。<br />3. 我们可以使用一种标号,这种标号不但表示内存单元的地址,还表示了内存单元的长度,即表示在此标号处的单元,是一个字节单元,还是字单元,还是双字单元。如<br />a:db1,2,3,4,5,6,
2011-05-01 00:21:00 1325
原创 王爽《汇编语言》(第二版) 学习笔记 (第十五章 外中断)
第十五章外中断本章概述:1. CPU在计算机系统中,除了能够执行指令,进行运算外,还应该能够对外部设备进行控制,接收它们的输入,向它们进行输出。也就是说,CPU除了有运算能力外,还要有I/O能力。2. 要及时处理外设的输入,显然需要解决两个问题:1) 外设的输入随时可能发生,CPU如何得知2) CPU从何处得到外
2011-04-30 18:54:00 993
原创 王爽《汇编语言》(第二版) 学习笔记 (第十五章 外中断)
<br />第十五章外中断<br />本章概述:<br />1. CPU在计算机系统中,除了能够执行指令,进行运算外,还应该能够对外部设备进行控制,接收它们的输入,向它们进行输出。也就是说,CPU除了有运算能力外,还要有I/O能力。<br />2. 要及时处理外设的输入,显然需要解决两个问题:<br />1) 外设的输入随时可能发生,CPU如何得知<br />2) CPU从何处得到外设的输入<br /> <br />一、 接
2011-04-30 18:50:00 1306
原创 王爽《汇编语言》(第二版) 学习笔记 (第十四章 端口)
<br />第十四章端口<br />本章概述:<br />1. 各种存储器都和CPU的地址线、数据线、控制线相连。CPU在操作它们的时候,把它们都当做内存来对待,把它们总地看做一个由若干存储单元组成的逻辑存储器,这个逻辑存储器我们称其为内存地址空间。<br />2. 在PC机系统中,和CPU通过总线相连的芯片除各种存储器外,还有以下3中芯片:<br />1) 各种接口卡(如网卡、显卡)上的接口芯片,它们控制接口卡进行工作;<br />2) 主板上的
2011-04-30 14:47:00 1160
原创 王爽《汇编语言》(第二版) 学习笔记 (第十三章 int指令)
<br />第十三章 int指令<br />本章概述:<br />CPU除了外中断外,还需要响应和处理内中断,由int指令引发的中断。<br />一、 int指令<br />1. int指令的格式为:int n,n为中断类型码,它的功能是引发中断过程。CPU执行int n指令,相当于引发一个n号中断的中断过程。<br />2. int指令的最终功能和call指令相似,都是调用一段程序。<br />3. 一般情况下,系统将一些具有一定功
2011-04-29 22:31:00 1331
原创 《从汇编语言到Windows内核编程》学习笔记 (第一章 汇编指令与C语言)
第一章 汇编指令与C语言一、 上机建立第一个工程用C/C++编写的正确代码经过编译器生成的汇编代码的汇编指令的用法一定是正确的。1. 用visual studio 创建工程1) 用创建工程或自己手动的方式来创建一个.c文件。2) 此时创建的程序为:#inlcude “stdafx.h”
2011-04-29 01:00:00 1610
原创 《从汇编语言到Windows内核编程》学习笔记 (第一章 汇编指令与C语言)
<br />第一章 汇编指令与C语言<br />一、 上机建立第一个工程<br />用C/C++编写的正确代码经过编译器生成的汇编代码的汇编指令的用法一定是正确的。<br />1. 用visual studio 创建工程<br />1) 用创建工程或自己手动的方式来创建一个.c文件。<br />2) 此时创建的程序为:<br />#inlcude “stdafx.h”、<br />int _tmian(int argc,_T
2011-04-29 00:55:00 1451
原创 王爽《汇编语言》(第二版) 学习笔记 (第十二章 内中断)
第十二章 内中断本章概述:1. 任何一个通用的CPU,比如8086,都具备一种能力,可以在执行完当前正在执行的指令之后,检测到从CPU外部发送过来的或内部产生的一种特殊的信息,并且可以立即对所接收到的信息进行处理。这种特殊的信息,我们可以称其为:中断信息。2. 中断的意思是指,CPU不再接着(刚执行完的指令)向下执行,而是转去处理这个特殊信息。
2011-04-26 20:01:00 995
原创 王爽《汇编语言》(第二版) 学习笔记 (第十一章 标志寄存器)
第十一章 标志寄存器本章概述:1. CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理器,个数和结构都可能 不同)具有以下3种作用:1) 用来存储相关指令的某些执行结果2) 用来为CPU执行那个相关指令提供行为依据3) 用来控制CPU的相关工作方式2. 这种特殊的寄存器在8086C
2011-04-26 19:57:00 982
原创 王爽《汇编语言》(第二版) 学习笔记 (第十章 CALL和RET指令 )
第十章 CALL和RET指令本章概述:call和ret指令都是转移指令,它们都修改IP,或同时修改CS和IP。它们经常被共同用来实现子程序的设计。一、 ret和retf1. ret指令用栈中的数据,修改IP的内容,从而实现近转移。2. retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移。3.
2011-04-26 19:53:00 1025
原创 王爽《汇编语言》(第二版) 学习笔记 (第九章 转移指令的原理 )
第九章 转移指令的原理本章概述:1. 可以修改IP,或同时修改CS和IP的指令统称为转移指令。概括地讲,转移指令就是可以控制CPU执行内存中某处代码的指令。2. 8086CPU的转移行为有以下几类1) 只修改IP时,称为段内转移,比如:jmp ax。2) 同时修改CS和IP时,称为段间转移,比如:jmp 1000
2011-04-26 19:48:00 948
原创 王爽《汇编语言》(第二版) 学习笔记 (第八章 数据处理的两个基本问题 )
第八章数据处理的两个基本问题本章概述:1. 计算机是进行数据处理、运算的机器,那么有两个基本的问题就包含在其中:1) 处理的数据在什么地方?2) 要处理的数据有多长?这两个问题,在机器指令中必须给以明确或隐含的说明,否则计算机就无法工作。2. 我们定义的描述性符号:reg和sreg 。用reg表示一个寄存器,sreg表示一个段寄存器
2011-04-26 19:46:00 857
原创 王爽《汇编语言》(第二版) 学习笔记 (第七章 更灵活的定位内存地址的方法 )
第七章更灵活的定位内存地址的方法一、 and和or指令1. and指令:逻辑与指令,按位进行与运算2. or指令:逻辑或指令,按位进行或运算二、 关于ASCII码1. 计算机中,所有的信息都是二进制,而人能理解的信息是已经具有约定意义的字符。而我们要把这些信息存储在计算机中,就要对其进行编码,将其转化为二进制
2011-04-26 19:42:00 931
原创 王爽《汇编语言》(第二版) 学习笔记 (第六章 包含多个段的程序 )
第六章包含多个段的程序本章概述:1. 在操作系统的环境中,合法地通过操作系统取得的空间都是安全的,因为操作系统不会让一个程序所用的空间和其他程序以及系统自己的空间相冲突。在操作系统允许的情况下,程序可以取得任意容量的空间。2. 程序取得所需空间的方法有两种,一是在加载程序的时候为程序分配,再就是程序在执行的过程中向系统申请。3.
2011-04-26 19:40:00 932
原创 王爽《汇编语言》(第二版) 学习笔记 (第五章 [BX]和loop指令 )
第五章 [BX]和loop指令本章概述:1. 这里将使用一个描述性的符号“()”来表示一个寄存器或一个内存单元中的内容。“()”中的元素可以有3种类型:寄存器名、段寄存器名、内存单元的物理地址(一个20位数据)。如:(ax)、(ds)、(al)、(cx)、(20000H)、((ds)*16 + (bx))都是正确的,(2000:0),((ds):1000H)是错误的
2011-04-26 19:38:00 1110
原创 王爽《汇编语言》(第二版) 学习笔记 (第十二章 内中断)
<br />第十二章内中断<br />本章概述:<br />1. 任何一个通用的CPU,比如8086,都具备一种能力,可以在执行完当前正在执行的指令之后,检测到从CPU外部发送过来的或内部产生的一种特殊的信息,并且可以立即对所接收到的信息进行处理。这种特殊的信息,我们可以称其为:中断信息。<br />2. 中断的意思是指,CPU不再接着(刚执行完的指令)向下执行,而是转去处理这个特殊信息。<br />3. 中断信息是对几个具有先后顺序的硬件操作所产生的事件的统
2011-04-26 19:32:00 1219
原创 王爽《汇编语言》(第二版) 学习笔记 (第四章 第一个程序 )
第四章第一个程序一、 一个源程序从写出到执行的过程1. 一个汇编程序从写出到最终执行的简要过程:1) 编写汇编源程序2) 对源程序进行编译连接3) 执行可执行文件中的程序2. 可执行文件包含的内容1) 程序(从源程序中的汇编指令翻译过来的机器码)2)
2011-04-25 23:37:00 1681 1
原创 王爽《汇编语言》(第二版) 学习笔记 ( 第三章 寄存器(内存访问))
第三章 寄存器(内存访问)一、 内存中字的存储1. 8086CPU中,用16位寄存器来存储一个字。高8位存放高位字节,低8位存放低位字节。2. 在内存中存储时,由于内存单元是字节单元(一个单元存放一个字节),则一个字要用两个地址连续的内存单元来存放,这个字的低位字节存放在低地址单元中,高位字节存放在高地址单元中。3
2011-04-25 23:35:00 1012
原创 王爽《汇编语言》(第二版) 学习笔记 (第二章 寄存器)
第二章 寄存器本章概述:1. 一个典型的CPU有运算器、控制器、寄存器等器件构成,这些器件靠内部总线相连。2. 前一章所说的总线,相对于CPU内部总线来所是外部总线。内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系。3. 简单地说,在CPU中,运算器进行信息处理、寄存器进行信息存储、控制器控制各种器件进
2011-04-25 23:33:00 1108
原创 王爽《汇编语言》(第二版) 学习笔记 (第十一章 标志寄存器)
<br />第十一章 标志寄存器<br />本章概述:<br />1. CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理器,个数和结构都可能 不同)具有以下3种作用:<br />1) 用来存储相关指令的某些执行结果<br />2) 用来为CPU执行那个相关指令提供行为依据<br />3) 用来控制CPU的相关工作方式<br />2. 这种特殊的寄存器在8086CPU中,被称为标志寄存器。<br />3.
2011-04-25 23:06:00 1175
原创 王爽《汇编语言》(第二版) 学习笔记 (第十章 CALL和RET指令 )
<br />第十章 CALL和RET指令<br />本章概述:<br />call和ret指令都是转移指令,它们都修改IP,或同时修改CS和IP。它们经常被共同用来实现子程序的设计。<br />一、 ret和retf<br />1. ret指令用栈中的数据,修改IP的内容,从而实现近转移。<br />2. retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移。<br />3. CPU执行ret指令时,进行下面两步操作:<br
2011-04-24 19:14:00 1283
原创 王爽《汇编语言》(第二版) 学习笔记 (第九章 转移指令的原理 )
<br />第九章 转移指令的原理<br />本章概述:<br />1. 可以修改IP,或同时修改CS和IP的指令统称为转移指令。概括地讲,转移指令就是可以控制CPU执行内存中某处代码的指令。<br />2. 8086CPU的转移行为有以下几类<br />1) 只修改IP时,称为段内转移,比如:jmp ax。<br />2) 同时修改CS和IP时,称为段间转移,比如:jmp 1000:0<br />由于转移指令对IP的修改范围不同,段内转移又分为:
2011-04-20 22:37:00 1109
原创 王爽《汇编语言》(第二版) 学习笔记 (第八章 数据处理的两个基本问题 )
<br />第八章数据处理的两个基本问题<br />本章概述:<br />1. 计算机是进行数据处理、运算的机器,那么有两个基本的问题就包含在其中:<br />1) 处理的数据在什么地方?<br />2) 要处理的数据有多长?<br />这两个问题,在机器指令中必须给以明确或隐含的说明,否则计算机就无法工作。<br />2. 我们定义的描述性符号:reg和sreg 。用reg表示一个寄存器,sreg表示一个段寄存器<br />1) reg的集合包括:ax、b
2011-04-20 22:30:00 1342
原创 王爽《汇编语言》(第二版) 学习笔记 (第七章 更灵活的定位内存地址的方法 )
<br />第七章更灵活的定位内存地址的方法<br />一、 and和or指令<br />1. and指令:逻辑与指令,按位进行与运算<br />2. or指令:逻辑或指令,按位进行或运算<br />二、 关于ASCII码<br />1. 计算机中,所有的信息都是二进制,而人能理解的信息是已经具有约定意义的字符。而我们要把这些信息存储在计算机中,就要对其进行编码,将其转化为二进制信息进行存储。而计算机要将这些存储的信息再显示给我们看,就要再对其
2011-04-20 22:26:00 1213
原创 王爽《汇编语言》(第二版) 学习笔记 (第六章 包含多个段的程序 )
<br />第六章包含多个段的程序<br />本章概述:<br />1. 在操作系统的环境中,合法地通过操作系统取得的空间都是安全的,因为操作系统不会让一个程序所用的空间和其他程序以及系统自己的空间相冲突。在操作系统允许的情况下,程序可以取得任意容量的空间。<br />2. 程序取得所需空间的方法有两种,一是在加载程序的时候为程序分配,再就是程序在执行的过程中向系统申请。<br />3. 若要一个程序在被加载的时候取得所需的空间,则必须要在源程序中做出说明。通
2011-04-20 22:24:00 1735
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人