王爽汇编基础知识和寄存器基础

CPU执行010001…的机器指令,汇编指令可以被编译器翻译成机器指令。

内存的最小单位是字节byte 1byte=8bit

地址线:数量决定了CPU的寻址能力(能找到多大的地址)
数据线:决定了CPU和其他部件进行数据传送时,一次性可以传送多少数据
控制线:CPU对其他部件进行控制的能力

eg.
1.8080的地址总线宽度为16根,寻址能力为64KB。 2 16 = 2 6 × 2 10 {{2}^{16}}\text{=}{{2}^{6}}\times {{2}^{10}} 216=26×210
2.8080的数据总线宽度为8根,一次可以传送的数据为1B。

内存空间:内存条(主内存)+显存 内存编号是区分开的,一段编号属于一种内存
RAM内存:允许读取写入,断电后指令和数据丢失
ROM内存:只允许读取,断电后指令和数据还存在(启动机器)

CPU通过内存地址访问内存空间,通过端口号访问鼠标键盘等外设

寄存器在CPU里面,存储了地址和数据信息。
汇编编程就是通过汇编指令去修改寄存器的值,从而控制CPU去控制整台计算机。

=======================================
AX BX CX DX四种寄存器很特殊,一方面可以作为16位寄存器(0-65535),另一方面可以分为两个独立的8位寄存器(AX=AH+AL)(0-255)。

寄存器和数据位数要对应,mov时几位寄存器对应几位寄存器,几位寄存器对应几位数据,否则会出错。

地址寄存器
8086CPU有20根地址线,但是他的段地址寄存器和偏移地址寄存器只有16位,为此约定:

段 地 址 × 16 ( 10 H ) = 基 础 地 址 段地址\times16(10H)=基础地址 ×16(10H)=
基 础 地 址 + 偏 移 地 址 = 物 理 地 址 基础地址+偏移地址=物理地址 +=

从而借助16位寄存器具备20位的寻址能力。

注意:段地址有范围,如果过小,偏移地址取最大也无法找到物理地址,如果过大,偏移地址最小也无法找到物理地址。

CPU如何区分指令和数据?
答:内存中存的都一样,都是二进制,只在工作中区分,CS和IP指向的内存空间存的是指令。CS和IP决定CPU从哪里读取指令。

指令的长度是不一样的,可以由多个字节组成,执行过程如下:
1.CPU从CS:IP指向的内存空间读取指令存入指令缓存器
2.IP加上该指令的长度,从而指向下一条指令
3.执行该指令缓存器中的内容,回到步骤1
(之所以这样设计,是为了call指令返回IP指向的下一条指令)

转移指令改变CS和IP,mov不能用
jmp 2000:0
jmp ax
call 将改变了的ip值保存起来
debug调试工具
r 查看CPU所有寄存器的值,还可以修改在这里插入图片描述
d 查看从任意位置开始的任意个内存内容
在这里插入图片描述
u 将内存中的机器指令翻译成汇编指令
在这里插入图片描述
a 在任意位置以汇编指令的格式在内存中写入在这里插入图片描述
t 执行当前CS、IP所指向的机器指令
在这里插入图片描述
e 方便写入内存(机器码一个字节一个字节输入),写入字符的ASCII码
在这里插入图片描述
在这里插入图片描述

数据长度:字节型数据和字型数据,字型数据是2byte,有内存中地址连续的两个内存单元存放。
高地址 存放高位字节
低地址 存放低位字节

注意:字节型数据的1是01,字型数据的1是01 00。

mov ax,1
mov ds,ax 可以确定内存地址中的段地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值