学习汇编前置知识第二天

发布于:2025-02-27 ⋅ 阅读:(15) ⋅ 点赞:(0)

今天要做什么?

汇编语言继续学习

1:用nasm编译器将asm 汇编语言后缀型文件转化成bin文件:

下载后配置i下nasm环境变量,然后nasm example.asm -f bin -o exam.bin

Mov是 6D 6f 76

3B 是;

20是空格

立即数(Immediate Value)是直接嵌入汇编指令中的常量数值,无需通过寄存器或内存地址间接获取

2:指令MOV ax,0xf5fc中,“MOV”知识这是一条 传送 指令,0xf5fc是A。指令执行后,寄存器AX中的内容是0xf5fc

3:源程序共有3行,每一行第一个字符在文件内的偏移量分别是多少

0

0x35/53,

0x40/64

4:该源程序文件的大小是多少字节  ?

这取决于最后一个文件的偏移量,上图文件中文件的偏移量最后一个字符是48,因为文件是从0开始的,所以长度是49. 换算成10进制

0100 1001 = 73个字节

5:当计算机启动时,8086处理器的状态

每种系统启动运行程序 都要求符合标准的格式。

每当我们通电开机以后,处理器都会进行硬件初始化,以及一个可选的内部自测试,然后将内部所有寄存器的内容都初始到一个预置的状态,在计算机上有一个热启动按钮,热启动按钮和RESET引脚相连,RESET引脚在处理器上,当按下热启动按钮,会像RESET引脚发送一个信号 ,这同样会导致硬件初始化和内部自测试,并将所有寄存器的内容初始到一个预置的状态

对于INTEL 8086来说,复位操作将使代码段寄存器cs的内容重置为FFFF,其他所有寄存器都重置为0包括 通用寄存器,段寄存器,指令指针寄存器

段寄存器ES,和DS一样 ES也是一个数据段寄存器,因为是一个附加的数据段寄存器,所以也叫附加段寄存器ES,为社么需要他呢,有时候可能需要在两个数据段寄存器来回调用,一个可能不够用,处理器的主要功能是取指令和执行指令,再加电和复位之后他就会立刻尝试这样的操作。

6:INTEL 8086 地址空间的分配情况

6.1 内存布局

8086  最多一次1MB  地址00000-FFFFF

处理器的主要任务是取指令和执行指令,当计算机通电后,处理器立刻开始任务 ,这是电脑设计好的,换句话说,处理器将在FFFF0这个位置,开始取用位置,并加以执行

6.2 地址分配电路

F0000-FFFFF(地址范围 ROM BIOS)

那么8086访问的是一个特殊的存储芯片,叫做ROM BIOS,这种芯片只能用来读取不能用来写入,所以叫只读存储器,简称ROM,ROM的内容是由特殊手段 预先写入的,ROM,中间是芯片,四周是插座

内存条 DRAM (00000-9FFFF)

内存由字节组成,字节由比特组成,为了节约成本,并提高容量和集成度,每个比特的存储是由一个及其微小的晶体管,以及同样是及其微小的电容来组成的,电容同样可以存放电,可以通过通电和存放电来表示比特0和比特1,我们也清楚,电容很容易泄漏电荷

当一个电容通电后 不管他,把他放在一边,他就会慢慢放电,直至存储的电荷完全消失,可以想象组成这种电容的微小电容泄漏电荷的速度是非常快的,通常会在几微秒之内漏的一干二净,所以这种内存需要定期补充电荷以维持原先保存的内容,在各个过程叫做动态刷新,因此,这种存储器也称为动态随机存储器DRAM,

刚才我们讲到 随机访问术语,随机访问的意思是 访问任何一个内存单元的速度 所花的时间和他的位置 和地址无关,举个例子:

从头到尾的一盘录音带上,歌曲的位置在录音带的位置上越靠前,所化的时间越越短

内存则不同,读写任何内存单元所需要的时间都是一样的,不管他的地址是考前还是靠后,在内存刷新期间,处理器当然是无法访问内存的,不过对于内存来说,刷新时间所在用的操作是微乎其微的,可以错开进行,这种内存的工作原理,再断电后,所有内存保存的内容都会统统消失,再开机也没东西,

A0000-EFFFF 地址区间(外部设备接口电路、接口卡(声卡、显卡、网卡等))

 设备不能直接接入计算机:需要通过各自的接口电路或者接口卡接入

显卡:显示器的工作方式和处理器不同,信号也不一样,所以需要一个接口卡 来做设备信号的匹配和转换,这就叫显卡,显卡通过电缆等连接显示器,对显示器发送视频信号,还需要插在计算机的主板上。

显卡的下面有一个卡口(金手指),用来插入插槽,一旦插入之后,配对成功,显示器就通过接口卡和计算器连接起来了。

显卡上有存储器,处理器可以把要显示的文本内容写入显卡上的存储器,显卡负责将收到的数据转换成视频信号发送给显示器。

我们开始说8086处理器通电后发送的第一条指令是FFFF0,正好位于ROM中,储存一些基本指令

处理器取用指令的方式方向是从内存的低端 向高端推进,这是处理器 取指令和用指令的方式。

6.3 如何让处理器从当前位置跳到另一个内存地址处,取指令并执行

前后 随便跳

在汇编语言中,EA 本身不是标准的跳转指令注记符,但在特定架构的机器码层面可能作为跳转指令的编码片段存在,实际编程时应以具体架构的指令手册为准,避免混淆机器码与助记符合。

在特定的机器语言中EA是跳转之后,后面会跟着

偏移地址E05B和段地址F0000

JMP(JUMP) 0xF0000:0xE05B (跳转到逻辑地址F0000:E05B处读取指令并执行)