汇编语言
草帽boy7
/ynmianyan/10927062
展开
-
从零开始写一个操作系统内核 笔记(五) 从汇编过渡到C语言
从Boot到loader到C语言从 加载硬盘的第一扇区 到能使用C语言来编写内核程序,我们完成了如下3个部分Boot:将loader加载到 内存0x9000:0x0100处 576K处,跳转到Loader。Loader:将Kernel 加载到0x7000:0x0000 处、获取内存大小、打开分页、开启CPU保护模式、读取Kernel的ELF文件格式 将 将Kernel从0x7000:0x0...原创 2020-03-24 16:40:12 · 1211 阅读 · 0 评论 -
从零开始写一个操作系统内核 笔记(四) 番外篇 8086CPU 之保护模式
操作系统内核加载过程上图是 linux 0.1.2 应到程序加载操作系统的步骤。在实模式下的1M 空间下,BIOS启动后经过一系列自检(CPU、内存、硬盘等)后,将控制权 交给主引导记录MBR(Main Boot Record)位于硬盘的第0盘0道1扇区(LBA=0)的512个字节,BIOS事先规定将代码执行权移交到了0x7c00处地址,所以需要将MBR读写到0x7c00处,由于MBR只...原创 2020-03-19 19:12:28 · 301 阅读 · 1 评论 -
从零开始写一个操作系统内核 笔记(三) 番外篇 FAT12 魔改 FAT32 文件系统 硬盘文件读取方式
FAT32文件系统,格式和 FAT12 大同小异。主要变化:扇区簇大小:512 字节 -> 4K根目录项数:偏移字节数含义值0x00B2每扇区字数0x02000x00D1每簇扇区数0x080x00E2保留扇区数0x03F80x0101FAT个数0x020x0112根目录项数,FAT32以突破该限制,无效0x...原创 2020-03-11 16:23:33 · 990 阅读 · 2 评论 -
从零开始写一个操作系统内核 笔记(三) 下 汇编实现 FAT12 文件系统
FAT文件系统包含:主引导扇区FAT表(2个)根目录区数据区文件系统的数据结构:卷控制块(每个文件系统一个)文件控制块(每个文件一个)目录节点(每个目录项一个)当需要时加载进内存卷控制块:当文件系统挂载时 进入内存文件控制块:当文件被访问时进入每次目录节点:在遍历一个文件路径时进入内存下面是 FAT16 系统的结构 (卷控制块):BS_OEMName db...原创 2020-03-08 20:44:49 · 1413 阅读 · 2 评论 -
王爽 汇编课程设计1
将实验 7 改进 输出成如下图assume cs:codesg,es:tablesg,ss:stacksgdata segmentdatasg segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983','1984','1985' db '1986','1987','1988','198...原创 2020-02-11 15:02:46 · 366 阅读 · 0 评论 -
王爽汇编 (十)实验
检测点 10.1assume cs:codestack segment db 16 dup (0)stack endscode segmentstart: mov ax,stack mov ss,ax mov sp,16 mov ax,1000h;______ push ax mov ax,0h;_____ push ax retfcode endsend star...原创 2020-02-09 14:48:36 · 355 阅读 · 0 评论 -
bochs环境在Mac下 安装
1.下载bochs 2.68https://sourceforge.net/projects/bochs/files/bochs/2.6.8/bochs-2.6.8.tar.gz/download2.切换到解压目录cd bochs-2.6.8内,执行如下配置./configure --enable-ne2000 \ --enable-all-optimizations ...原创 2020-02-09 00:04:57 · 1286 阅读 · 0 评论 -
王爽汇编 (八 九 十)实验
9.1监测点assume cs:codedata segment dd 12345678Hdata endscode segment start: mov ax,data mov bx,0 mov word ptr [bx],0 ...原创 2020-02-08 18:59:08 · 269 阅读 · 0 评论 -
王爽第三版汇编 实验题 实验(七 )
assume cs:codesg,ss:stacksg,ds:datasgstacksg segmentdw 0,0,0,0,0,0,0,0stacksg endsdatasg segmentdb '1. display 'db '2. brows 'db '3. replace 'db '4. modify 'datasg end...原创 2020-02-06 13:53:49 · 242 阅读 · 0 评论 -
王爽第三版汇编 实验题 实验(四 五)
P121页实验四(1)编程,向内存 0:200 ~ 0:23F依次传送数据0~63(3fh)assume cs:codecode segmentmov ax,0hmov ds,axmov cx,3fhmov bx,200hmov al,0hs:mov [bx],alinc bxinc alloop smov ax,4c00hint 21hcode endsend...原创 2020-02-04 23:03:41 · 531 阅读 · 0 评论 -
从零开始写一个操作系统内核 笔记(二)
汇编语言 介绍下面 举个例子 来了解下汇编语言:mov ax,3FH //将;立即数 3FH传递给 ax寄存器add bx,ax // bx =bx + axadd cx,ax //cx = cx + bxtips:0x3f 通常 16进制数 前面加 0x表示。在汇编语言中 也可以写成 十进制mov ax,63mov ax,0x3FH这两句话都是一样的效果。当然 你还可以写成 ...原创 2020-01-25 23:47:26 · 677 阅读 · 1 评论 -
从零开始写一个操作系统内核 笔记(一)
数据的表示方法:在计算机里 数据的表示由 0 1 0 1 组成称为 二进制0:代表着 低电平 代表着开关的关1:代表高电平 代表着开关的开这跟 摩斯密码是一个原理的 , 通过组合 0 1 可以表示成不同的消息。其实计算机系统内部是通过一系列的逻辑代数 组合 形成 不同的计算包括: 与 或 非与门: 假设 a 和 b 都是 1 那么就输出 1其实这个概念也不难理解假设有个 串联开关...原创 2020-01-25 16:06:22 · 729 阅读 · 0 评论