关闭

汇编学习笔记---3内存访问

1429人阅读 评论(0) 收藏 举报
分类:

在CPU中,用16位寄存器来存储一个字,高8位存放高字节,低8位存放弟子姐。

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

CPU读写一个内存单元的时候,必须给出这个内存单元的地址,在8086PC中,内存地址由段地址X16+偏移地址组成。

8086CPU有一个DS寄存器,通常用来存放数据的段地址,eg:

mov bx, 1000H

mov ds, bx

mov a1,[0]

表示将10000H中的数据读到a1中。

其中,[...]表示一个内存单元,[0]表示内存单元的偏移地址;mov bx, 1000H表示:mov 寄存器名,内存单元地址;

上面的代码实际上是先将段地址1000H放入DS寄存器中,然后使用mov a1,[0]来完成传送。

如何将一个数据放入寄存器呢?

由于8086CPU不支持将数据直接送入段寄存器,因此,我们无法直接使用mov ds, 1000H将1000H送入ds寄存器,我们这里是使用一个一般的级才能起bx进行了中转,以此来实现的。

mov, add, sub指令集:




0
0
查看评论

《汇编语言》学习(三)内存访问

《汇编语言》第三章主要介绍CPU对内存的访问方式:通用内存访问方式和栈内存访问方式。通用内存和栈内存只是访问方式不同,在存储器上没有区别。CPU对内存的访问都是通过“段+偏移”的方式,其中通用内存访问方式,应用的是DS寄存器指定待访问内存的段地址,偏移量直接用数值表示,相关的指令是“mov指令”;而...
  • Sagittarius_Warrior
  • Sagittarius_Warrior
  • 2016-09-23 16:31
  • 339

汇编语言之寄存器(内存访问)

其实那些数据段,代码段,都是人自己定义的,CPU可不会这么想,它执行代码的时候,它只跟着CS:IP走,CS:IP指向哪里,他就认为哪里是代码,并执行它。所以如果想让CPU执行我们放在内存中的代码,那么,请让CS:IP指向他即可。 8086CPU存放是按小端存放的规则来的,即字的高位字节存放在内存...
  • best_fiends_zxh
  • best_fiends_zxh
  • 2016-09-23 21:13
  • 307

汇编学习笔记:寄存器(内存访问)

==============寄存器(内存访问)=========================== CPU用16位寄存器存储一个字,高八位存放高位字节,低八位存放低位字节。 在内存中存储时,内存单元是字节单元(一个单元存放一个字节,即8位),所以使用两个连续的内存单元来存放。 字在内存中的存...
  • thinking_in_android
  • thinking_in_android
  • 2013-01-07 14:24
  • 731

as汇编基础程序设计--调用C库和内存访问

as汇编中的内存访问:movl (%ebx), eax(把ebx寄存器指向的地址上的值传送给eax);movl 4(%ebx), eax(把ebx指向的地址的位置往上偏移4字节的地址上的值传送给eax中);movl -4(%ebx),eax(把ebx执行的地址位置往下偏移4个字节的地址上的值传送给e...
  • YuZhiHui_No1
  • YuZhiHui_No1
  • 2015-01-09 16:13
  • 1112

[Intel汇编-MASM]内存单元访问扩展

1. 偏移地址的表示方式汇总:     1) 偏移地址表示规则:在中括号[ ]中最多有一个基址寄存器、最多有一个索引寄存器、最多有一个立即数,这三者的顺序可以任意,之间必须用+相连,不得用其它符号;     2) 基址寄存器:是指bx(base registe...
  • Lirx_Tech
  • Lirx_Tech
  • 2014-12-18 00:25
  • 763

汇编学习笔记--寄存器(内存访问 1)

内存访问首先要有地址,8086pc中的段地址存放在 ds 寄存器中(ds 和 cs是不一样的,cs是定位地址用于读取内存中的指令或者数据,而ds是读取内存中的数据时使用,下面我们会明白区别) 将内存中的数据写入寄存器: mov bx,1000H mov ds,bx mov al,[0...
  • qq_20480611
  • qq_20480611
  • 2015-05-19 23:35
  • 487

一步步学汇编(一)内存存取和debug

<br />实践我第一天的承诺,今天看了点汇编,做了点笔记,觉得有意思的,重要的就记下来了。<br />还是从基础的8086开始。虽然现在计组合嵌入式学校里教的都是arm和mips的,但是还是觉得8086最经典,下面是我今天的笔记:<br /> <...
  • zhangmiao111111
  • zhangmiao111111
  • 2011-03-27 20:53
  • 1209

汇编(通用寄存器_内存读写)

寄存器分为64位 32位 16位 8位寄存器,现阶段最多的就是64位寄存器,不过好多程序都是32位的,寄存器的位数是由计算机发展决定的  下面是他们的关系结构:   32位寄存器前面是32位的名词,后面是16位寄存器,而16位寄存器又由2个8位的寄存器组成 ...
  • cic10235
  • cic10235
  • 2016-07-30 14:20
  • 1285

【学习笔记之汇编语言】【一】基础知识

我们最初拥有的只是梦想和毫无根据的自信,可是一切都是从这里开始的 Adam衡 本文为《汇编语言(第2版)王爽 著》学习笔记,内容多摘自该书 1.  机器语言 机器语言是机器指令的集合 机器指令即一台机器可以正确执行的命令,在电子计算机中,机器指令是一列二进制数字 每一种微处理器(CPU...
  • xyq10612
  • xyq10612
  • 2015-03-31 20:13
  • 551

汇编--学习笔记(十五)-总复习

一、基本知识 (1)数制(B、Q、D、H) (2)运算(算术、逻辑、补码) (3)寻址方式(物理地址、偏移地址、寄存器) (4)指令系统 数据传送指令 (堆栈操作) 算术指令 (加、减、求补对条件标志位的影响) 逻辑指令 (移位指令) 串处理指令 (串源/目的串、数据串/附加段、SI/DI) 控制...
  • qq_28877125
  • qq_28877125
  • 2017-05-27 11:34
  • 287
    个人资料
    • 访问:577136次
    • 积分:7955
    • 等级:
    • 排名:第3134名
    • 原创:219篇
    • 转载:49篇
    • 译文:0篇
    • 评论:224条
    博客专栏
    最新评论