我是如何学习Java的~CPU简介和汇编环境搭建

14 篇文章 0 订阅
14 篇文章 0 订阅

CPU简介

CPU是计算机的核心部件,主要有运算器、控制器、寄存器等器件构成。CPU的运行依赖于存储器即内存中的机器指令和数据。运算器、控制器、寄存器等器件由CPU中的内部总线进行连接控制,同时,CPU提供外部总线进行外部器件的控制。

外部总线主要包括数据总线、地址总线、控制总线

数据总线的宽度决定了CPU和外部器件的数据的传送速度。对于8086CPU来说,数据总线宽度为16,一次可传送两个字节。相较于数据总线宽度为8的8088CPU,一次传送的数据多了1个字节。

控制总线决定了CPU对外部器件的控制能力。一个CPU的控制总线的多少,就意味了CPU提供了对外部器件的多少种控制。

地址总线的宽度决定了CPU的寻址能力。一个CPU有N条地址总线,就意味着CPU最多可以寻找到2的N次方个内存单元。CPU寻址方式由段地址和偏移地址决定:物理地址=段地址*16 + 编译地址

CPU中包含多个不同功能的寄存器,8086CPU中有14个寄存器:

AX:累加寄存器

BX:基址寄存器

CX:计数寄存器

DX:数据寄存器

SI:源变址寄存器

DI:目的变址寄存器

SS:栈段寄存器

SP: 栈顶指针寄存器

BP:基址指针寄存器

CS:代码段寄存器

IP:指令指针寄存器

DS:数据段寄存器

ES:附加段寄存器

PSW:标志寄存器

在计算机中,指令和数据都是以二进制数据进行存在的,同一内存地址下的二进制数据既可以表示机器指令,也可以表示数据,CPU通过不同的寄存器功能来对二进制数据进行不同的解读运算,如,DS:[偏移地址]指向的内存地址的数据当成数据来进行处理,CS:[IP]指向的内存地址数据当成机器指令来执行。

现在对各个寄存器的功能还不了解,随着后面的学习,会一点一点的介绍各个寄存器的功能和使用。

不同类型的CPU有不同的机器指令,汇编语法也不相同,在此学习的汇编依赖于8086CPU。学习理解了该CPU系列下的汇编后,在去接触其他类型的CPU下的汇编时,也能很快的学习并理解其对应的汇编语言。

 

汇编环境搭建

在windows下学习汇编,需要有一个汇编开发环境,只有动手实践,才能更好的掌握好一门编程语言。

windows下的汇编环境需要DOSBOX,官网下载地址:https://sourceforge.net/projects/dosbox/files/latest/download

同时还需要下载debug、link、masm等工具。

在此提供完整的工具安装包:https://download.csdn.net/download/weixin_41562374/11343343

安装步骤如下:

1、点击 DOSBox0.74-3-win32-installer.exe 安装。默认安装即可。

2、建立一个工作目录,如:D:\dosbox,把 debug.exe 等工具复制到工作目录中。

3、找到DOSBOX的安装目录,点击运行文件 DOSBox 0.74-3 Options.bat。

4、在打开的文本中,挂载第二步中新建的工作目录。在文件末尾添加命令如下:

      mount C D:\dosbox

      C:

 

安装配置完成后,运行dosbox程序,如下:

若不去挂载工作目录,在每次运行dosbox时,需要手动输入挂载指令。

 

在弹出的窗口中输入debug,进入调试模式:

 

输入R可以查看CPU中各个寄存器数据情况:

 

输入D指令,可以查看内存数据:

内存数据显示格式:

1、左边部分,如0483:0100,为每行内存的起始地址。

2、中间部分,起始地址及其后的内存中的数据。每行显示16个内存单元的内容,每个单元为一个字节。如0483:0100指                     向的数据为00,0483:0101指向的数据为00,前8个单元内容和后8个单元内容用 - 符号分割。

3、右边部分,表示内存单元的数据对应的可显示的ASCII码字符,若没有对应的字符,则用 . 来代替。

 

Debug功能下的其他常用指令:

E:改写内存中的内容

U:将内存中的机器指令翻译成汇编指令

T:执行CS:[IP]指向的一条指令

A:写入汇编指令到内存中

 

至此,所需要的准备和环境已搭建完成,下面开始投入到汇编语言的学习中吧。

 

目录

上一章

下一章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值