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

汇编学习(一)

9.内存中字的存储

对于8086CPU ,16位作为一个字

16位的字存储在一个16位的寄存器中,如何存储?

高8位放高字节  低8位放低字节

16位的字在内存中需要2个连续字节存储,怎么存放?

低位字节存在低地址单元,高位字节存在高地址单元

字单元

字单元:由两个地址连续的内存单元组成,存放一个字型数据(16位)

10.用DS 和[address] 实现字的传送

 要解决的问题: CPU 从内存单元中要读取数据

要求:

        CPU要读取一个内存单元的时候,必须先给出这个内存单元的地址;

原理:

        在8086PC中,内存地址由段地址和偏移地址组成(段地址:偏移地址)

解决方案:DS和[address]结合

        用DS寄存器存放要访问的数据的段地址

        偏移地址用[...]形式直接给出

例1:

        mov bx,1000h

        mov ds,bx

        mov al,[0]

        将10000h(1000:0)中的数据读到al中(读取一个字节)

例2:

        mov bx,1000h

        mov ds,bx

        mov [0],al

        将al 中的数据写到10000h(1000:0)中

将段地址送入DS的两种方式

(1) mov ds,1000h  (错误  硬件不支持该操作)

(2) mov bx,  1000h

     mov ds,bx

8086CPU不支持将数据直接送入段寄存器中(硬件设计的问题)

套路:    数据 ----------》一般的寄存器-------------》段寄存器

8086CPU 可以直接一次性传送一个字(16位的数据)

例:

        mov bx,1000h

        mov ds, bx

        mov ax,[0]    ;1000::0 处的字型数据送入ax

        mov [0],cx        ;cx 中的16位数据送到1000:0中

汇编实例:

        

使用DOSBox 首先需要挂在

 

  


http://www.kler.cn/a/455177.html

相关文章:

  • word无法创建工作文件,检查临时环境变量。
  • 教育元宇宙的优势与核心功能解析
  • 【视觉惯性SLAM:六、图优化库(1):g2o的使用指南】
  • 【前端】MVC模式详解:如何构建高效的Web应用程序?
  • SLAM/数字图象处理基础
  • 嘉立创创建工程
  • 麒麟操作系统服务架构保姆级教程(五)NGINX中间件详解
  • 《Java源力物语》-4.集合府邸的新秀
  • 地理数据库Telepg面试内容整理-数据库设计与性能优化
  • 【面经】25届 双非本科 字节跳动 北京 四年的总结
  • scala基础学习_运算符
  • --- 网络基础 ---
  • 数据结构二叉树
  • ARM 获取cpu个数
  • 遥望科技转型这一年
  • CloudDM 升级全新 SQL 审核架构,适配多种数据源
  • Wireshark 分析常见 Web 攻击的流量特征
  • 抖去推碰一碰系统技术源码/open SDK转发技术开发
  • GoldenDB 三节点集群部署安装
  • 基于Qcom虚拟化平台vdev virtio的EF BE实现(八)
  • Confluent Cloud Kafka 可观测性最佳实践
  • MySQL NaviCat 安装及配置教程(Windows)【安装】
  • 神经网络-SENet
  • 如何通过HTTP API分组检索Doc
  • 萤石网络:以用户为中心,构建全方位协同能力
  • 《第十四部分》WDG看门狗