![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
x86汇编从实模式到保护模式学习
文章平均质量分 82
1710orange
凝听万物之音
展开
-
汇编语言(第三版)第十章 CALL 和 RET 指令 笔记
call和ret都是可以改变ip或是cs和ip。经常用来实现子程序设计。原创 2022-07-17 00:31:54 · 1446 阅读 · 0 评论 -
汇编语言(第三版)第九章 转移指令的原理 笔记
修改IP或是同时修改CS和IP的指令就是转移指令。就是可以控制执行内存中某处代码的指令。转移指令对IP的修改范围不同。通过学习无条件转移jmp来俩理解cpu执行转移的基本原理。原创 2022-07-15 17:44:29 · 544 阅读 · 0 评论 -
汇编语言(第三版)第八章 数据处理的两个基本问题 笔记
首先ax是16位,2^16-1=65535原创 2022-07-15 13:05:50 · 619 阅读 · 0 评论 -
汇编语言(第三版)第七章 更灵活的定位内存地址的方法 笔记
and 按位逻辑与,or 按位逻辑或7.2 关于ASCII码是一种编码方案,约定了用什么信息来表示现实对象。用61H表示’a’,用62H表示’b’.比方‘A’的ASCII码是41H,'a’的ASCII码是61H.之间相差了20H。通过比较发现,第五位如果是0就是大写,第五位为1就是小写。问题 7.17.6 用[bx+idata]的方式进行数组的处理7.7 SI 和 DIsi 和 di 在8086CPU中功能与 bx 相近。但不能将其分成两个8位寄存器使用。问题 7.3用更少的代码原创 2022-07-13 20:03:05 · 118 阅读 · 0 评论 -
汇编语言(第三版)第六章 包含多个段的程序 笔记
dw 就是定义字型数据。6.2 在代码段中使用栈检测点 6.16.3 将数据、代码、栈放入不同的段8086模式的限制 当数据 、栈、代码需要的空间超过64KB就不能放在一个段中了。定义多个段要注意的地方:(6)[1] 汇编语言:编写、调试具体多个段的程序......原创 2022-07-12 21:38:46 · 190 阅读 · 0 评论 -
汇编语言(第三版)第五章 [BX] 和 loop 指令 笔记
[0]表示偏移地址为0[bx]表示偏移地址在bx中mov ax,[bx] 表示 将一个长度为2字节的内存单元内容送入axmov al,[bx] 表示将一个长度为1字节的内存单元内容送入alloop表示循环使用描述性的符号"()"表示一个寄存器或一个内存单元中的内容。(ax)表示ax中的内容(al)表示al中的内容(20000H)表示内存20000H单元中的内容(()中的内存单元的地址为物理地址);((ds)*16+(bx)) 表示 (ds)*16+(bx) 地址单元的内容。(X) 表示的数据有原创 2022-07-12 09:07:46 · 1288 阅读 · 0 评论 -
汇编语言(第三版)第四章 第一个程序 笔记
以往的章节都是通过Debug来写指令。这一章节中将编写可执行文件。源程序中包含:XXX segment … XXX ends,这个表示是一个段的范围end,表示一个程序的结束。assume cs:XXX 表示将一个段寄存器与该段相关联。XXX是标号,作为该段的段地址。有一点要注意的是:这个图中,例如像有时候会疑惑为什么是 B8 23 01这个顺序。是因为按照或者图的顺序,右边的内存单元地址更高。原字为0123h ,01 比 23 高位,所以是23 01。因为没有Edit编辑器原创 2022-07-11 14:11:15 · 168 阅读 · 0 评论 -
汇编语言(第三版)第三章 寄存器(内存访问) 笔记
CPU中16位寄存器存储一个字:高8位在高字节,低8位在低字节。内存中,内存单元也是字节单元,所以一个内存单元存放一个字节也就是8bit。用此图举例。存放的数据4E20 h存放在地址0处。其中高位字节在地址1处,低位字节在地址0处。存放的数据0012 h是一样的。0012h存放在地址2处,高字节为00h,低字节为12h。将起始位置为N的字单元简称为N地址字单元。字单元:存放一个字型数据,就按照上述例子存储。(1) 20H; 地址单元应该是一个字节。(2) 4E20H,字型数据应该是一个字单元。原创 2022-07-10 21:57:52 · 1035 阅读 · 0 评论 -
汇编语言(第三版)第二章 寄存器 笔记
AX,BX,CX,DXSI,DISS, SP, BPIP,CSDSESPSWAX,BX,CX,DX8086CPU所有寄存器都是16 bit 。为兼容上一代CPU的8bit寄存器,这四个寄存器可以拆开为8个8bit的寄存器。例如:8086CPU的两种尺寸:汇编指令或者一个寄存器的名称并不区分大小写。add ax, bx ;ax=8226h bx=8226h因为 ax = ax+bx = (8226 + 8226)h = (1044c )h又因为 ax为一个字,2个字节,16位。将第17原创 2022-07-05 00:03:40 · 1923 阅读 · 0 评论 -
汇编语言(第三版)第一章 基础知识 笔记
汇编语言(第三版)学习笔记。原创 2022-07-04 15:13:26 · 268 阅读 · 0 评论 -
bochsdbg:[0x000fffffff0] f000:fff0 (unk. ctxt): (invalid) :ffff
在将5-1里的代码放入”虚拟硬盘“中后打开虚拟机:然后打开bochsdbg结果却与书上的不同关于bochsdbg配置的资料:http://morecoder.com/article/1167372.html:这是我运行的结果:错误的这是标准的:正确的最后发现是因为:先前下载的是bochs-win64压缩包,解压后直接运行的bochsdb...原创 2019-03-24 15:15:36 · 596 阅读 · 0 评论 -
X86汇编语言 从实模式到保护模式 检测点 4.2出错
mov ax,0xb800mov ds,axmov [0x00],'a'mov [0x02],'s'mov [0x04],'m'jmp $4-2.asm:3: error: operation size not specified4-2.asm:4: error: operation size not specified4-2.asm:5: error: operation siz...原创 2019-03-21 16:02:48 · 1943 阅读 · 0 评论