当前位置: 首页 > news >正文

汇编寄存器之内存访问

1.内存中字的存储:  

             在CPU中用一个16位寄存器来存储一个字, 高8位存高字节,低8位存低字节

            如AX寄存器存在一个字,那么AH存高字节,AL存低字节

            在内存中存储字时是用两个连续的字节来存储字的,

            这个字的低字节存在低单元,高字节存在高单元.

  如下表示:

                      内存单元编号       单元中数据           字节说明

020H低字节存储字的两个单元
14EH高字节
212H低字节存储字的两个单元
300H高字节
4
5

上面表中, 0,1单元存储了字 4E20H   , 2,3 单元中存储了字 0012H ,其中0,2单元为低单元.

4E20H的低字节为20H,  0012H的低字节为12H.

0地址字型数据:  4E20H

1地址字型数据:  124EH

 

2地址字型数据:  0012H

 

2.数据段与地址:

            读取

CPU------------>内存单元地址(段地址*16+偏移地址)---------------->内存单元

            写入

CS和IP修改成功

 

修改CS:IP指向当前汇编代码段指令开始地址 

 t执行汇编指令

 

 修改数据段寄存器DS值

 

MOV al,[0] 这个[0]表示ds默认段中的偏移地址 ,因DS=1000H,所以物理地址=1000:0

那么取到的就是下图中的FA用16进制表示:00FA ,因为是16位寄存,所以是4位16进制数字

相当于 二进制  0000 0000 1111 1010  

 

[]中的数字表示偏移地址,因为是16寄存器,所以按字类型来计算,第一字类型16位,占用二个内存单元,低单元存低字节,高单元存高字节 

 

 

 字类型减法计算

 

内存单元值传入段寄存器

 

 

ds[0] = 4B  ,ds[1]=B4 , ds[2] = 0D 

 

 

 

 

 

 

查看指定内存范围的数据

 

 

http://www.lryc.cn/news/91688.html

相关文章:

  • C++进阶 —— lambda表达式(C++11新特性)
  • 数据结构04:串的存储结构与KMP算法
  • 零基础快速搭建私人影音媒体平台
  • C++map和set
  • python接口测试之测试报告
  • HGFormer:用于领域广义语义分割的层级式分组Transformer
  • async函数用法
  • 简谈软件版本周期 | Alpha、Beta、RC、Stable版本之间的区别
  • VS2022发布独立部署的.net程序
  • 5-网络初识——封装和分用
  • 机器学习——特征工程
  • ubuntu安装搜狗输入法,图文详解+踩坑解决
  • docker 数据持久化
  • Pytest运行指定的case,这个方法真的很高效……
  • 操作系统复习2.3.4-进程同步问题
  • 3ds MAX 基本体建模,长方体、圆柱体和球体
  • 搭建个人博客
  • JavaScript进阶(下)
  • 基于PyQt5的图形化界面开发——堆栈动画演示
  • 2023 年第三届长三角高校数学建模竞赛赛题浅析
  • sqlite3免费加密开源项目sqlcipher简单使用
  • SOLIDWORKS PDM Professional中的Add-ins
  • 干货 | 郭晓雷:数智安全监管机制研究与思考
  • 感应雷电浪涌的防线,SPD浪涌保护器
  • ThreeJS教程:屏幕坐标转标准设备坐标
  • [elasticsearch 实现插入查询小demo ]
  • 因为计算机中丢失VCRUNTIME140怎么办?为什么会丢失VCRUNTIME140.dll
  • 【满分】【华为OD机试真题2023B卷 JAVAJS】数字游戏
  • NLP常用的三种中文分词工具对比
  • Visual C++ 6.0环境开发PACS影像系统的技术指标和精准算法