汇编语言寄存器内存访问笔记

本文详细介绍了汇编语言中数据传输的原理与实践,包括如何使用mov指令进行数据和寄存器之间的传输,以及如何解决直接将数据送入段寄存器的限制问题。此外,还探讨了段寄存器的使用和其与物理地址的关系。

本博客是我看王爽的汇编语言第二版,做的笔记,一是为了巩固自己的学习知识,二是为了和大家多多交流!:

CPU内存方式 字在存储器的存储

| 0| 0| 0|0|0|0|0|0|0|0|0|0|0|0|0|0|   16位的存储为
这里写图片描述

内存中字的存储

这里写图片描述

mov指令

  1. mov bx,1000H //将数据送入寄存器中
  2. mov ds,bx //将一个寄存器的内容送入另外一个寄存器中
  3. mov al,[0] //将物理地址为:DX*10+0中的内容存入al中
  4. mov [0],al //将存储器内容送入内存

mov 指令中 的[]说明操作对象是一个内存单元, []中的 0 说明这个内存单元的偏移地址是 0 ,它的段地 址默认放在 ds中,指令执行时, 8086CPU 会自动从 ds 中取出。 mov bx ,1000H mov ds ,bx 若要用 mov al,[0]完成数据从 1000:0 单元到 al 的传送,这条指令执行时, ds 中的内容 应为段地址1000H,所以在这条指令之前应该将1000H 送入 ds 。
如何把一个数据送入寄存器呢?我们以前用类似 “mov ax.l” 这样的指令来完成,从 理论上讲,我们可以用相似的方式: mov ds,1000H ,来将1000H 送入 ds 。可是,现实并 非如此, 8086CPU 不支持将数据直接送入段寄存器的操作,也是一个段寄存器,所以 mov ds,1000H 这条指令是非法的。
那么如何将 1000H 送入 ds>呢?只好用一个寄存器来进 行中转,即先将 1000H 送入一个一般的寄存器,如 bx ,再将bx 中的内容送入 ds。
为什么 8086CPU 不支持将数据直接送入段寄存器的操作?这属于 8086CPU 硬件设计 的问题,我们只要知道这一点就行了。

  1. DS段寄存器可以为0000吗?
  2. 段地址*16+偏移地址=物理地址
  3. 内部地址加法器的目的是为了获取物理地址,另外是为了地址总线匹配,达到通过内部地址加法器运算之后能够找到物理地址,达到充分利用地址总线,提高寻址能力
  4. 64位CPU内存条支持超过4G,那是因为64 位CPU寻址能力比较大,给内存条分配的空间比较多,32位CPU只能给内存条分配4G,那么是因为CPU寻址能力稍微弱,除了给内存分配之外,还要给显存,等其他设备分配逻辑地址

64位cpu并不是说地址总线是64根,而是说的是处理数据的能力是64位

32位处理器intel从奔腾Pro AMD从速龙加入PAE,将地址扩展到了36位。 64位处理器intel是40位。(intel
datasheet写的39-bit guest physical address and host physical address
widths)AMD貌似也是40位,family 15h没找到。
补充:安腾的话是50位(查于安腾9350 ),Power SPARC ARM等未查。
一般处理器多少位是指的寄存器的长度,当然数据线需要与之相同,地址线则不需要与之相等的。

下面是王爽汇编中的解释

我们说 8086CPU 的上一代 CPU(8080 、8085)等是 8 位机,而 8086 是 16 位机,也可以说 8086 是 16 位结构的 CPU 。那么什么是16 位结构的 CPU 呢?
概括地讲,16 位结构 (16 位机、字长为 16 位等常见说法,与 16位结构的含义相同) 描述了一个 CPU 具有下面几方面的结构特性。
• 运算器一次最多可以处理 16 位的数据;
• 寄存器的最大宽度为16 位:
• 寄存器和运算器之间的通路为 16 位。

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值