自己动手从零写桌面操作系统GrapeOS系列教程——21.汇编语言写硬盘实战
学习操作系统原理最好的方法是自己写一个简单的操作系统。
在上一讲中我们学习了用汇编语言读硬盘,本讲我们来学习用汇编语言写硬盘。同样也是设计一个简单的实验,实验内容为:
在内存中准备一段有特征的512字节数据,地址为0x7e00~0x7fff,其特征是前3个字节依次为4、5、6,最后3个字节依次为6、5、4。然后将该段内存 ...
微机原理与系统设计笔记4 | 汇编语言程序设计与其他指令
打算整理汇编语言与接口微机这方面的学习记录。本部分介绍汇编语言程序设计以及一些跟程序设计密切相关的指令类。
参考资料
西电《微机原理与系统设计》周佳社
西交《微机原理与接口技术》
课本《汇编语言与接口技术》王让定
小甲鱼《汇编语言》
1. 汇编程序结构/框架
段定义伪指令
程序不同的信息要定义在不同 ...
【8086汇编入门】《零基础入门学习汇编语言》汇编语言第4版
1基础知识
机器语言是机器指令的集合,由0和1组成,但是很长很复杂,汇编语言因此产生。
汇编语言的主体是汇编指令。汇编指令是机器指令的便于记忆的书写格式。
程序员写完汇编指令通过编译器转换为机器码,机器码再传到计算机执行。
汇编语言有以下三类:
1汇编指令:助记符,有对应机器码
2.伪指令:没有对应机器码,编译 ...
Dalvik汇编语言
Dalvik虚拟机 JIT(即时编译)
JIT (Just-in-time Compilation,即时编译),又称为动态编译,是一种通过在运行时将字节码翻译为机器码的技术,使得程序的执行速度更快。Android 2.2版本系统的Dalvik虚拟机引入了JIT 技术,官方宣称新版的Dalvik 虚拟机比以往执行速度快3~6倍。
两种字节码编译方式
method方式: 函数或者 ...
一文掌握汇编语言 halt 命令
目录汇编语言 halt 命令补充:halt命令手册参考实例:汇编语言 halt 命令
汇编 halt 命令,是一条重复执行指定标号的循环命令。处理器暂停,直到出现中断或复位信号才继续
/* 汇编点亮一个 LED 灯 */
.text
.global _start
_start:
ldr r1, =0x56000050
ldr r0, =0x100 /* 相当于 mov r0, #0x100 */
str r0, [ ...
汇编语言LDR指令和LDR伪指令详解
目录LDR指令和LDR伪指令详解ARM32位指令的构成ldr指令和ldr伪指令的使用区别:补充1:补充2:汇编语言ldr伪指令LDR指令和LDR伪指令详解
ARM32位指令的构成
ARM是RISC结构,数据从内存到CPU之间的移动只能通过LDR/STR指令来完成。 32bit = 指令码 + 数据。所以32bit的一条指令不可能表示再带一个32bit的数据,实际只有其中的 ...
汇编语言学习
汇编语言学习
1、基础知识
这部分内容之前就有在电子书上学习过,趁着寒假买了本二手的《汇编语言》 (二手就是香)结果发现好像在纸质书上学习比在电子书上学习更清楚。。
CPU 与外部器件进行以下三种信息交互
存储单元的的地址(地址信息)
器件选择,读或写的命令(控制信息)
读或写的数据(数据信息)
以及与其他芯 ...
汇编语言的学习
寄存器
在DOSBox里面有ax,bx,cx,dx,sp,ip,ds,之类的,如下图
寄存器的种类
可以分为数据类和指令类
AX(AH、AL):累加器
BX(BH、BL):基址寄存器
CX(CH、CL):计数寄存器
DX(DH、DL):数据寄存器 //不过这些都可以修改,一般就数据和指令。
指令
指令的选择是通过cs:ip来选择的。
其中cs代表段 ...
最好懂的汇编语言教程,解释CPU如何执行代码
目录一、汇编语言是什么?二、来历三、寄存器四、寄存器的种类五、内存模型:Heap六、内存模型:Stack七、CPU 指令7.1 一个实例7.2 push 指令7.3 call 指令7.4 mov 指令7.5 add 指令7.6 pop 指令7.7 ret 指令学习编程其实就是学高级语言,即那些为人类设计的计算机语言。
但是,计算机不理解高级语言,必须通过编译器转成二 ...
os_object_release Crash 排查记录分析
目录Crash 信息确认目标对象类型定位 Crash 场景Crash 信息
线上存在一个持续很久的 Crash,由于没有明确业务栈且量级不算大,让它成为了老赖之一,Crash 栈是这样的:
Thread 55
0 libdispatch.dylib 0x0000000188a8cf8c __os_object_release_internal_n + 80
1 libdispatch.dylib 0x000000 ...
libAccessibility通知Crash排查记录分析
目录Crash 信息复现场景简单引用分析寻找 Crash 对象通知中心是否一定弱引用 observerCrash 信息
Last Exception :
0 libobjc.A.dylib 0x00000001bee86f40 _objc_msgSend + 32
1 CoreFoundation 0x00000001a6132834 ___CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 28
2 ...
汇编语言(Assembly Language)指令表
汇编指令英文全称
1.通用数据传送指令
MOV----> move
MOV dest,src ;dest←src
MOV 指令把一个字节或字的操作数从源地址src 传送至目的地址dest。
MOVSX---->extended move with sign data
MOVZX---->extended move with zero data
PUSH---->push
POP---->pop
进栈出栈指令
PUSHA---->push all
POPA---->pop all
PUSHA ...
汇编语言符号解析
汇编语言符号解析参考文献链接https://www.docin.com/p-1987059541.htmlhttps://blog.csdn.net/tj_nonstoper/article/details/124784395http://www.kaotop.com/it/168644.htmlhttps://blog.csdn.net/weixin_42277902/article/details/125591295https://zhuanlan.zhihu.com/p/497460602
&nb ...
半导体-汽车电子电气-汇编语言-图像分析
半导体-汽车电子电气-汇编语言-图像分析
参考文献链接
https://mp.weixin.qq.com/s/tXSMkCUwQn2qHwTFDm2iuw
https://mp.weixin.qq.com/s/yM4IXBYR1LB-se1YruTfIQ
https://mp.weixin.qq.com/s/-4MQHOyKeggqcUNGKwe4dQ
https://mp.weixin.qq.com/s/bypP-DtcvUvRLucbU6Ch3w
半导体的灾备避险与长期建设
2022年10月7日,美国商 ...
汇编语言-8086指令(上)
数据传送指令
汇编语言中字母开头通常表示标识符(如常量、变量、标号),所以MASM规定十六进制数如果以字母开头需要添加前导0。
当目的操作数是存储单元,而源操作数既可以是字又可以是字节时,必须显式指明字节传送还是字传送,btye ptr or word ptr。
不允许段寄存器和段寄存器、段寄存器和立即数、以及存储单元和存储单 ...
王爽《汇编语言第二版》学习笔记
目录1 基础知识2 寄存器2.1 通用寄存器2.3 几条汇编指令2.4 8086CPU给出物理地址的方法2.5 段的概念2.6 段寄存器2.7 修改CS、IP的指令3 寄存器(内存访问)3.1 DS和[addr]3.2 CPU的栈机制3.3 栈段4 第一个程序4.1 源程序4.2 伪指令4.3 标号4.4 程序返回4.5 语法错误和逻辑错误4.6 EXE文件中程序的加载过程5 [BX]和loop指令5 ...
汇编语言Assembly Language.asm--8086(持续更新)
汇编语言Assembly Language.asm--8086
数据转移指令MOV 数据流向图
XCHG OPD,OPS数据交换指令
功能:将源操作数和目的操作数内容互换
AX=1234H XCHG AL,AH 执行后(AX)=3412H
注意:不能使用段寄存器执行交换操作
XCHG DS,AX ×交换指令不能使用段寄存器segment register
XCHG BUF1,BUF2 ×两个操 ...
《汇编语言》学习笔记-3
注:本文档为“《汇编语言(第3版) 》王爽著”阅读过程中记的笔记。
参考视频:通俗易懂的汇编语言(王爽老师的书)_哔哩哔哩_bilibili
11 标志寄存器
CPU内部的标记寄存器具有以下作用:
用来存储相关指令的某些执行结果;
用来为CPU执行相关指令提供行为依据;
用来控制CPU的相关工作方式。
8086CPU的标志寄存器是16位的 ...
《汇编语言》学习笔记-2
注:本文档为“《汇编语言(第3版) 》王爽著”阅读过程中记的笔记。
参考视频:通俗易懂的汇编语言(王爽老师的书)_哔哩哔哩_bilibili
8 数据处理的两个问题
计算机进行数据处理,有两个基本的问题:
处理的数据在什么地方?
要处理的数据有多长?
这两个问题必须明确或隐含的说明,本章节就讨论这个问题。
为了描述方便 ...
《汇编语言》学习笔记-1
注:本文档为“《汇编语言(第3版) 》王爽著”阅读过程中记的笔记。
参考视频:通俗易懂的汇编语言(王爽老师的书)_哔哩哔哩_bilibili
4 源程序到可执行程序过程
一个汇编语言源程序编写到执行的过程:
1)编写汇编源程序
2)先对源程序进行编译连接,编译产生目标文件;再用连接程序对目标文件进行连接,生成可在操作系统 ...