<汇编语言(第2版)>2011032401

典型的CPU是由运算器、寄存器、控制器等组成

不同的CPU,寄存器的个数和结构都不相同。

8086CPU有14个寄存器,都是16位
AX\BX\CX\DX
SI\DI
SP\BP\IP
CS\SS\DS\ES
PSW

通用寄存器
AX、BX、CX、DX

为了兼容8086以前的,寄存器又可分成两个8位寄存器,如AH/AL

汇编指令:
Mov 目的地址,源数据
Add 目的地址,加数

物理地址:
所有的内存单元构成的存储空间是一个一维的线性空间,每一个内存单元在这个空间中都有唯一的地址。

16位结构的CPU
有如下结构特征:
运算器一次最多可以处理16位的数据
寄存器的最大宽度为16位
寄存器和运算器之间的通路是16位

8086就是16位,之前的8080-8085是8位。

8086CPU有20为地址总线,有1MB寻址能力,但8086是16位的cpu,只能处理64KB的地址。
所以采用一种在内存用两个16位地址合成的方式来形成20位的物理地址
所以:物理地址=段地址*16+偏移地址(实质:是基础地址+偏移地址=物理地址的具体实现)

段的概念,内存并没有分段,段的划分来源CPU,在8086上,其寻址能力是64KB。

段寄存器
CS、DS、SS、ES

CS和IP是8086CPU中最关键的2个寄存器,指示了CPU当前要读取指令的地址。
CS:代码段寄存器
IP:指令指针寄存器
在8086中,任何时刻,CPU将CS:IP指向的内容为当前指令执行
改变CS,IP内容的指令为转移指令
当前学习:
jmp 段地址:偏移地址        修改CS,IP
jmp 某合法寄存器            修改IP

调试工具Debug工具
是Dos、Windows提供下的实模式(8086 方式)程序的调试工具

R命令查看、改变CPU寄存器内容
D命令查看内存中的内容
E命令改写内存中的内容
U命令将内存中机器指令转为汇编指令
T命令执行一条机器指令
A命令以汇编指令的格式在内存中写入一条机器指令
posted @   西就东城  阅读(142)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
点击右上角即可分享
微信分享提示