8086汇编语言(01)
本文最后更新于353 天前,其中的信息可能已经过时,如有错误可以直接在文章下留言

最近做了一道IDA里面动态调试的题目,主动态调试的时候主要还是看汇编部分,所以这玩意还是太重要了,大一上学期我是花了很多时间看了B站小甲鱼的《零基础入门学习汇编语言》,但是没看完,而且当时也学的不够仔细,每看完一集确实很有成就感,打算从今天开始从头开始温习一下,因为已经看过很多了,再看一遍的过程中我的理解估计也会更深。把视频链接放下面了。

【8086汇编入门】《零基础入门学习汇编语言》_哔哩哔哩_bilibili

1.机器语言

计算机是不能直接识别我们所编写的C程序或者Java程序的,甚至我们学的汇编语言也是无法识别的。它只能识别机器语言,而机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指指令系统令的集合。

也就是说机器语言只由0和1组成,比如汇编语言中的PUSH AX,用机器语言来表示就是01010000

早期的程序设计均使用机器语言。程序员们将用0, 1数字编成的程序代码打在纸带或卡片上,1打孔,0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。

用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍,而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。

这时候汇编语言便产生了。

2.汇编语言

汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写方式。汇编指令是机器指令的助记符。

比如机器指令1000100111011000,表示的操作就是将寄存器BX的内容送到寄存器AX当中。我们直接用汇编指令来表示就是 MOV AX,BX。这样的写法显然好记多了,可读性也大大增强。

那我们在这里简单来说说什么是寄存器。简单来说就是CPU里面存储数据的器件,一个CPU里面有多个寄存器,且他们都有自己的代号,如AX,BX。代号不同的寄存器,他们的作用可能也会有所不同。

汇编语言发挥作用的过程如图。

反正计算机是无法识别汇编语言的,而类似C语言的高级语言,则是编译成汇编语言,然后走这个流程。

汇编语言由汇编指令、伪指令和其他符号组成。汇编指令既是机器码的助记符,伪指令计算器是无法识别的,不会产生机器代码,但是编译器可以识别,并转化为伪指令想要表达的意思,例如程序结束伪指令END,定义存储单元的伪指令DB、DW、DD、DQ、DT。其他符号也是由编译器识别并执行,例如加减乘除,这些后面都会学的更清楚一些。

3.存储器

CPU是计算机的核心部件,它控制整个计算机的运作并进行运算,要想让一个CPU运作,则必须向它提供指令和数据。指令和数据是存放在存储器当中的,也就是我们平时所说的内存,内存只是主要的一个存储器,电脑的一些其他部件也是有自己的存储器的.

磁盘不同于内存,磁盘上的数据或者程序如果不读入到内存中,就无法被CPU使用。

存储器被划分为若干个存储单元,每个单元都从0开始顺序编号。如图,

存储器和磁盘的容量单位换算(B表示Byte)

1KB=1024B

1MB=1024KB

1GB=1024MB

1TB=1024GB

存储器在读写属性上分为两种,随机存储器(RAM)和只读存储器(ROM)。

在这之前首先介绍一下主板和接口,在每一台电脑种,都有一个主板,主板上是一些核心器件和一些主要器件,这些器件通过那三类总线相连。计算机系统种,所有可用程序控制其工作的设备,都必须受到CPU的控制。CPU对外部设备,如显示器啊,音箱,打印机等不能直接控制,直接控制这些设备进行工作的是是插在扩展插槽上的接口卡。

主存就是随机存储器,是与CPU直接交换数据的内部存储器,我们平常经常说的内存应该说的就是主存。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。当电源关闭时RAM不能保留数据,如果需要保存数据,就必须把它们写入一个长期的存储设备中(例如硬盘)

只读存储器所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。它们主要是用来存储一些系统信息,或者启动程序BIOS程序,这些都是非常重要的,只可以读一般不能修改,断电也不会消失。。BIOS即基本输入输出系统,通常是固化在只读存储器中,它是由主板和各类接口卡厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出。就PC而言,BIOS 包含了控制键盘、显示屏幕,磁盘驱动器,串行通讯设备和很多其它功能的代码。在主板和某些接口卡上插有存储相应BIOS的ROM。

5.指令和数据

在内存和磁盘上,数据和指令都没用任何区别,都是二进制的信息。

二进制信息1000100111011000,如果把它当作数据,那就是89D8H,如果把它当作指令,就是MOV AX,BX。

6.CPU对存储器的读写

CPU要想进行数据的读写,必须和外部器件(标准的说法是芯片)进行三类信息的交互:

1.存储单元的地址(地址信息)

2.器件的选择,读或写命令(控制信息)

3.读或写的数据(数据信息)

而电子计算机能处理、传输的信息都是电信号,电信号当然要用导线传送。计算机中专门有连接CPU和其他芯片的导向,通常称为总线。逻辑上划分为:

1.地址总线

2.控制总线

3.数据总线

刚好对应上面的三种信息,这个知识点在大一上学期的计算机导论学习中也有,下面是CPU从内存中读取数据的过程,我们上面已经强调过,内存不单指内存条,还有显卡的内存啊,网卡的内存啊。

一开始,CPU通过地址线向内存传输要读取的地址信息,图上是3,并通过控制线发出控制信息,是要读取数据,然后从内存中读到08这个数据,通过数据线写入CPU中存放。

至于写入数据的过程跟读取数据的过程也就差不多了,只不过写入数据当然会覆盖原有的数据。

上面提到数据和指令都是以二进制信息存储,那么CPU如何区分呢,就是通过总线,如果数据通过了地址总线,那CPU当然就认为是地址,通过了数据总线,就识别为数据,通过了控制总线,就识别为控制语句。

7.地址总线

CPU是通过地址总线来指定存储单元的。地址总线能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。

一个CPU有n根地址总线,则可以说这个CPU的地址总线的宽度为n,这样的CPU最多可以存储2的n次方个内存单元。

8.数据总线

数据总线是CPU与内存或其他器件之间的数据传送的通道。数据总线的宽度决定了CPU和外界的数据传送速度。每条传输线一次只能传输1位二进制数据。

9.控制总线

CPU通过控制总线对外部器件进行控制。控制总线的宽度决定了CPU对外部器件的控制能力。控制总线是控制线数量之和。上面的地址总线和数据总线也是如此。

控制总线说白了就是控制对器件进行读还是写,有一根名为读信号输出控制线负责由CPU向外传递读信号,CPU向该控制线上输出低电平表示将要读取数据。有一根名为写信号输出控制线负责由CPU向外传递写信号。

10.内存地址空间

地址总线的宽度能够表现CPU的寻址能力,假设一个CPU的控制总线宽度是10,则它能寻得最多的地址是1024个,这1024个地址单元就组成了这个CPU的内存地址空间。

首先上文提到的各种存储器都有两个相同点,第一是它们都和CPU的总线相连,第二是CPU对它们进行读和写的时候都通过控制线发出内存读写命令。

接下来是一个重点,从CPU来看,它会将各类存储器看成一个逻辑存储器,单说文字可能有点难以理解,如图。

右边是各类的存储器,但是CPU都会只将它们看成一个存储器,如左边所示,但是这一个逻辑存储器是由其他不同存储器的存放数据的空间组成的,这些空间的大小我们可以用地址来界定。

小甲鱼讲的汇编语言都以上面为低地址,下面为高地址

这样,我们假设上图中内存地址空间分配如下:

地址0到7FFFH的32kb空间为主随机存储器的地址空间。

地址8000H到9FFFH的8kb空间为显存地址空间

地址A000H到FFFFH的24kb空间为各个ROM的地址空间。

CPU大概就是这样看的,当然不同的计算机系统的内存地址空间分配是不同的,如下图就是8086PC机的内存地址空间分配。

这个一个逻辑存储器的知识还是很重要的,后面学的汇编的很多知识点都建立在此基础上。

这个逻辑存储器的容量取决于CPU的寻址能力,它就是我们所说的内存地址空间。

11.物理地址

CPU访问内存单元时要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间。我们将这个唯一的地址称为物理地址。

文末附加内容

评论

  1. Jolene3755
    Windows Chrome
    11 月前
    2024-2-23 15:47:31

    Modern Talking был немецким дуэтом, сформированным в 1984 году. Он стал одним из самых ярких представителей евродиско и популярен благодаря своему неповторимому звучанию. Лучшие песни включают “You’re My Heart, You’re My Soul”, “Brother Louie”, “Cheri, Cheri Lady” и “Geronimo’s Cadillac”. Их музыка оставила неизгладимый след в истории поп-музыки, захватывая слушателей своими заразительными мелодиями и запоминающимися текстами. Modern Talking продолжает быть популярным и в наши дни, оставаясь одним из символов эпохи диско. Музыка 2024 года слушать онлайн и скачать бесплатно mp3.

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇