x86 汇编语言:从实模式到保护模式
看x86 汇编语言这本书时整理的一些主要内容。
MoMing丶
糖里含有玻璃渣。
展开
-
x86汇编语言 代码清单5-1理解笔记
代码解析1 ;代码清单5-12 ;文件名:c05_mbr.asm3 ;文件说明:硬盘主引导扇区代码4 ;创建日期:2011-3-31 21:155前5行用于介绍文件信息6 mov ax,0xb800 ;指向文本模式的显示缓冲区将立即数 0xB800 传送到 AX文本模式下显存的起始物理地址是 0xB80007 mov es,ax将...原创 2020-03-08 22:19:47 · 1010 阅读 · 1 评论 -
x86汇编语言 DB声明并初始化数据
它的目的?在一个程序中,有时需要将数据临时保存起来以备后用。使用寄存器不太现实,因为它的数量很少,且还要在后续的指令中使用。因此,最好的办法是在内存中专门留出一些空间来保存这些临时数据。如何实现?尽管我们的目的仅仅是分配一些空间,但是要达到这个目的必须初始化一些初始数据来“占位”。这就好比是排队买火车票,你可以派任何无关的人去帮你占个位置,真正轮到你买的时候,你再出现。DB的使...原创 2020-03-08 19:52:55 · 4202 阅读 · 0 评论 -
x86汇编语言 屏幕是如何控制字符的显示?
字符介绍在计算机中,每个用来显示在屏幕上的字符,都有一个二进制代码。这些代码和普通的二进制数字没有什么不同,唯一的区别在于,发送这些数字的硬件和接收这些数字的硬件把它们解释为字符,而不是指令或者用于计算的数字。这就是说,在计算机中所有的东西都是无差别的数字,它们的意义只取决于生成者和使用者之间的约定。于是产生了ASCII,在前面也简单的介绍过了:字符的打印每个字符都占用一个字(两...原创 2020-03-08 19:51:58 · 901 阅读 · 0 评论 -
x86汇编语言 汇编地址&标号
段地址:偏移地址处理器访问内存时,采用的是“段地址:偏移地址”的模式。对于任何一个内存段来说,段地址可以开始于任何 16 字节对齐的地方,偏移地址则总是从 0x0000 开始递增。汇编地址为了支持这种内存访问模式,在源程序的编译阶段,编译器会把源程序整体上作为一个独立的段来处理,并从 0 开始计算和跟踪每一条指令的地址。因为该地址是在编译期间计算的,故称为 汇编地址。汇编地址是在...原创 2020-03-08 19:49:51 · 4706 阅读 · 0 评论 -
x86汇编语言 ASCII代码及其打印
ASCII的简单介绍在计算机中,每个用来显示在屏幕上的字符,都有一个二进制代码。为了在终端和大型主机,以及主机和打印机、显示器之间交换信息,1967 年,美国国家标准学会制定了 美国信息交换标准代码(American Standard Code for Information Interchange,ASCII)ascii的出现就是统一了信息传递标准;在早期计算机中,能在电...原创 2020-03-08 19:47:03 · 1691 阅读 · 0 评论 -
x86汇编笔记-第 5章 编写主引导扇区代码
5.1 欢迎来到主引导扇区处理器加电或者复位之后,如果硬盘是首选的启动设备,那么,ROM-BIOS 将试图读取硬盘的 0 面 0 道 1 扇区。传统上,这就是主引导扇区(Main Boot Sector,MBR)。资料参考《x86 汇编语言:从实模式到保护模式》(编著:李忠 王晓波 余杰)...原创 2020-03-01 23:43:48 · 763 阅读 · 0 评论 -
x86笔记-第 4 章 虚拟机的安装和使用
计算机的加电和复位对于 Intel 8086 来说,复位将使代码段寄存器(CS)的内容为 0xFFFF,其他所有寄存器的内容都为 0x0000,包括指令指针寄存器(IP)。8086 之后的处理器并未延续这种设计,但毫无疑问,无论怎么设计,都是有目的的。原创 2020-02-15 14:22:15 · 201 阅读 · 0 评论 -
x86笔记-第 3 章 汇编语言和汇编软件
汇编语言简介指令和被指令引用的数据在内存中都是一些或高或低的电平,每一个电平都可以看成是一个二进制位(0 或者 1),8个二进制位形成一字节。要解读内存中的东西,最好的办法就是将它们按字节转换成数字的形式。比如,下面这些数字就是存放在内存中的8086指令,我们用的是十六进制:B8 3F 00 01 C3 01 C1即使是很有经验的技术人员,要想用这种方式来编写指令,也是很困难的,而且...原创 2020-02-14 14:11:46 · 245 阅读 · 0 评论 -
x86笔记-第 2 章 处理器、内存和指令
bit、Byte、word和double word之间的关系换算1 字节(Byte)= 8 比特(bit)1 字(word)= 2 字节(Byte)= 16 比特(bit)1 双字(double word)= 4 字节(Byte)= 32 比特(bit)处理器总是很繁忙的,在它操作的过程中,所有数据在寄存器里面都只能是临时存在一会儿,然后再被送往别处,这就是为什么它被叫做“寄存器”的...原创 2020-02-12 21:39:54 · 745 阅读 · 0 评论 -
x86笔记-第 1 章 十六进制计数法
二、十、十六进制简化符号“B” 的英语单词是 Binary, 表示二进制“D” 的英语单词 Decimal, 表示十进制“H” 的英语单词 Hexadecimal, 表示十六进制二进制与十进制的转换二进制 → 十进制比如一个二进制数 10110001,它的基数是 2,所以要这样来计算与它等值的十进制数:10110001B=1×27+0×26+1×25+1×24+0×2...原创 2020-02-10 14:12:58 · 764 阅读 · 2 评论