汇编学习
汇编学习记录
yangmyangs
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
汇编学习7
保护模式 前言 实模式下,用户程序对内存的访问十分的自由,没有任何限制,随随便便就可以修改任何一个内存单元。这样往往会导致很多安全问题,毕竟在多用户多程序的时代,内存中会有多个用户程序同时运行,为了使他们互不干扰,各自在自己的内存空间 ‘活动’ ,保护模式是十分重要的。 全局描述符表 在保护模式下,在对每个段进行访问之前,必须先进行登记。登记的信息包括段的起始地址,段的界限和各种访问属性。 和一个段有关的信息,需要8个字节来描述,称为段描述符,每个段都需要一个描述符。为了存放这些描述符,需要在内存中开辟出一原创 2020-05-16 18:17:47 · 379 阅读 · 0 评论 -
汇编学习6
进入32位x86处理器 寄存器的扩展 原有的AX,BX,CX,DX,SI,DI,BP,SP 通用寄存器,扩展成32位,在汇编语言中,用EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP来表示。 扩展后的通用寄存器具有一定的兼容性,可以在32位处理器上运行16位的软件。 每个程序有属于自己的内存空间,在16位模式下,一个程序可以访问不属于它自己的内存空间,这是不安全的,但在32位模式下,处理器要求在加载程序时,先定义该程序拥有的段,然后再允许使用这些段。定义段时,除了基地址(起始地址)外,还附加了原创 2020-05-14 12:18:13 · 292 阅读 · 0 评论 -
汇编学习5(未完留坑
前言 通过在主引导扇区写一个程序加载器,来加载另一个程序到内存中,在这个过程中学习更多的语法以及知识点。 思路 操作系统其实也是位于硬盘上面的,计算机开机启动的时候,如果设置的是从硬盘启动,那么ROM-BIOS会先把主引导扇区的内容加载到内存里面,然后跳到那里进行执行。所以我们需要在主引导扇区写一个程序,在执行这个程序的时候,这个程序可以把位于硬盘的操作系统的一系列代码加载到内存的某个地方上,然后...原创 2020-04-27 18:43:07 · 816 阅读 · 0 评论 -
汇编学习4
前言 通过写1+2+3+…+100 的程序来认识一种新的数据结构-栈 栈 什么是栈 栈是一种特殊的数据结构,数据的存储只在一端进行,满足后进先出的特点。 和代码段 数据段 附加段一样,栈也被定义成一个内存段,叫做栈段,由段寄存器SS指向。 定义栈 定义栈需要两个连续的步骤,即初始化段寄存器SS和栈指针SP的内容。 关于栈的指令 push 和 pop push命令是压入栈,push指令的操作数 可以...原创 2020-04-15 21:22:57 · 2374 阅读 · 0 评论 -
汇编学习3
前言 和汇编2的所要实现的东西一样,只是换了另外一种实现方法(更简洁),从而学习一些新的知识,新的指令。 代码展示 1 ;代码清单6-1 2 ;文件名:c06_mbr.asm 3 ;文件说明:硬盘主引导扇区代码 4 ;创建日期:2011-4-12 22:12 5 6 jmp near start ;相对偏移,跳到start块地方 7 8 mytext db ‘L’,0x07,‘a’,0x07,...原创 2020-04-11 16:43:42 · 1946 阅读 · 0 评论 -
汇编学习2
摘要 通过编写一个分解整数并显示的一个程序,来学习一些汇编的基础指令和语法 主引导扇区 处理器在加电或者复位以后,如果硬盘是首选的启动设备,那么ROM-BIOS将试图读取硬盘的0面0道1扇区。这就是主引导扇区,会先把主引导扇区的代码(指令集)加载到内存,然后处理器来执行,一般主引导扇区是用来启动操作系统的。但此次,我们把编写的程序加载到主引导扇区,让它被处理器执行。 程序的基本思想 怎么让屏幕上显...原创 2020-04-10 16:39:10 · 615 阅读 · 0 评论 -
汇编学习1
什么是汇编语言 为了克服机器指令难以书写和理解的缺点,人们想到可以用一些容易理解和记忆的符号,也就是助记符,来描述指令的功能和操作数的类型,这就产生了汇编语言 --x86汇编语言 通俗一点来说,汇编语言和C语言、java它们一样,都是计算机编程语言,只不过汇编语言更贴底层。最终也是需要通过编译器编译成为计算机所能够理解的机器语言。 初识处理器、内存、指令 处理器 处理器是整个计算机最核心的部分,...原创 2020-04-06 22:02:04 · 277 阅读 · 0 评论
分享