汇编语言 第三章 寄存器

3.1 内存中字的存储:

在内存存储时,由于内存单元是字节单元(一个单元存放一个字节),所以一个字要用两个地址连续的内存单元来存放,这个字的低位字节存放在低地址单元中,高位字节则会存放在高地址的单元中。

字单元,即存放一个字型数据的内存单元,由两个地址连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节。

3.2 Ds和address:

CPU想要读取一个内存单元时,必须先给出这个内存单元的地址。8086中有一个DS寄存器,通常用来存放要用的数据的段地址,正常情况下如果我们想要赋值ds会通常用类似:mov ds 1000h的这种赋值方式,但是,现实并不是如此,8086不支持将数据直接送入寄存器的操作,因为ds是寄存器所以上面的方法是非法的,所以我们会先将1000放入一个一般的寄存器,之后再赋值给ds。

例如 mov bx,1000h

mov ds,bx

这样的做法才是比较好的。可以把bx的值放入ds中。

3.3 3.4 3.5 字的传送 指令 数据段:

因为80806有16根数据线,所以可以一次性传送16位的数据,也就是说可以一次性传送一个字。

例如 mov ax 1000h

mov  ds,ax

mov  ax,[0]

前两条指令目的是将ds设为1000h

之后再将1000:0里存的数据放到ax中。

用mov指令访问内存单元,可以在mov指令中给出单元的偏移地址,此时,段地址默认在ds寄存器中

在内存和寄存器之间传送字型数据时,高地址单元和高8位寄存器,低地址单元和低8位寄存器相对应。

mov,add,sub是具有两个操作对象的指令。而jmp是具有一个操作对象的指令。

3.6   3.7 3.8 3.9关于栈的相关知识

栈有2个基本的操作:入栈和出栈。入栈就是将一个新的元素放到栈顶,出栈就是从栈顶取出一个元素。栈顶的元素总是最后入栈,需要出栈时,又最先被从栈中取出。

在8086中最主要的是push和pop两个操作。 push ax表示将寄存器ax中的数据送入栈中,pop ax表示从栈顶取出数据送入ax。8086中的入栈和出栈的操作都是以字为单位的。

8086提供了栈的操作机制, 在ss,sp中存放栈顶的段地址和偏移地址:

提供入栈和出栈指令,他们会根据ss和sp指示的地址,按照栈的方式访问内存单元

8086只会记录栈顶,栈的空间的大小我们要自己管理。

用栈来暂存以后需要恢复的寄存器的内容时,寄存器出栈的顺序要和入栈的顺序相反。

 3.10 相关知识

将一段内存当做栈段,仅仅只是我们在编程时候的安排,CPU并不会由于这种安排,就在执行push和pop等操作指令时自动的将我们定义的的栈段当做栈的空间来访问。

一段内存,可以既是代码的存储空间,又是数据的存储空间,还可以是栈空间,也可以什么也不是。关于在于CPU中寄存器的设置,即CS,IP,SS,SP,DS的指向。

原文地址:https://www.cnblogs.com/QiaoGeGe/p/9821286.html

时间: 2024-08-10 15:09:46

汇编语言 第三章 寄存器的相关文章

汇编语言:第三章 寄存器(内存访问)

3.1内存中字的存储 CPU中寄存器是16位的,可以用高低字节存储一个字,但是每个内存单元是8位的,只能存储一个字节, 所以内存中用相邻2个内存单元存储一个字的高低字节 如:20000数值(4E20H)在地址0的内存单元数值为20H,在地址1的内存单元数值为4EH 两个内存单元存储一个字型数据叫做一个字单元, 字单元的起始地址为N就叫N地址字单元,表示一个字的低字节在地址N的内存单元,高字节在地址N+1的内存单元 任意连续的2个内存单元都可以组成一个字单元 3.2 DS和 [address] C

汇编语言第三章——寄存器(内存访问)

1.内存中字的存储 高位字节存放在高地址单元中,地位字节存放在低地址单元中. 将起始地址为N的字单元简称为N地址字单元. 2.DS和[address] 8086CPU自动取DS中的数据为内存单元的段地址. 8086CPU不支持将数据直接送入段寄存器的操作. 3.字的传送 mov ax,[0]:字型数据传送 mov al,[0]:字节数据传送 原因:高位字节存放在高地址单元中,地位字节存放在低地址单元中. 4.mov,add,sub指令 mov指令的几种形式: mov 寄存器,数据 mov 内存单

汇编语言 第三章 寄存器(内存访问)

1.字数据在内存中的存储 (1)内存以字节为单位划分为若干个单元. (2)字在储存时要用两个地址连续的内存单元来存放. (3)字数据的存-取原则:高-高,低-低.即小端法,低位字节存放在低地址内存单元,高位字节存放在高地址内存单元,并且取低地址内存单元地址作为字数据地址. (4)在内存和寄存器之间传送字型数据时,高地址单元和高8位寄存器.低地址单元和低8为寄存器相对应. 2.数据在内存单元和CPU之间的传送 (1)执行命令时,默认情况下,8086自动取寄存器DS中的值为内存单元的段地址. 1)将

汇编语言第三章知识梳理及思考

第三章 内存访问的角度学习寄存器 3.1内存中字的存储 0号单元是低地址单元,1号单元是高地址单元. 问题: (1)0地址单元(字节单元)中存放的字节型数据是多少?20H (2)0地址字单元中存放的字型数据是多少?4E20 (3)2地址字单元中存放的字节型数据是多少?12H (4)2地址单元中存放的字型数据是多少?0012H (5)1地址字单元中存放的字型数据是多少?124EH 结论:任何两个连续的内存单元,N号单元和N+1号单元,可以将它们看成一个地址为N的字单元中的高位字节单元N+1和低位字

汇编语言第三章总结

第三章中,我们从访问内存的角度了解学习几个寄存器 下面将知识点总结如下: 一.16位寄存器存储一个字,就要用高8位存放高位字节,低8位存放低位字节 0为低地址单元,1为高地址单元,表示数据4E20H(20000),起始地址是0,即是0地址字单元 存储字用两个单元,逆序存放,而存储字节只用一个单元 二.mov al,[0]  表示将内存单元内容存入寄存器,[]中的0表示偏移地址,DS寄存器,存放访问数据的段地址 用mov指令只能通过如 mov bx,1000 mov ds,bx 为DS寄存器赋值,

汇编语言第三章小结

第三章 内存访问 字数据在内存中的存储 1.      内存以字节为单位,划分为若干个单元 2.      字数据的存-取原则:高-高  低-低(小端法) 即: ① 字数据的低位字节存放在低地址内存单元 字数据的高位字节存放在高地址内存单元 ② 取低地址内存单元地址作为字数据地址 例1: 字数据124EH的地址是( 1 ) 字数据3020H存入内存后地址为4,则4存放( 30H ),3存放( 20H ) 例2: 从地址单元1取出一个 (1)     字节数据为:  4EH (2)     字数据

第三章 寄存器(内存访问)

在第五章的学习之后,因为实验课在老师的抽查之后发现前面的知识很多都忘了,便对之前的知识进行了一遍系统的复习,对汇编的基础知识基本都已经掌握,也有了更加深刻的认识. 在第三章中我们主要从内存访问的角度来继续学习CPU执行指令的原理,并进一步的学习上一章的寄存器. <1>内存中字的存储 字由高位字节和低位字节组成,用16位寄存器来存储.高八位存放高位字节,低八位存放低位字节.字需要两个地址连续的内存单元(一个字节)来存储,字的低位字节存放在低地址单元中,高位字节存放在高地址单元中.如下图,我们想要

汇编语言第三章

一.知识点(博主自认为关键的几点) 1.把值存入段寄存器ds:需通过先给数据寄存器值(ax, bx, cx, dx),再送入ds中 如: mov ax,2000 mov ds,ax 2.字数据的存取原则: 字数据的低位字节存放在低地址内存单元:高位则放于高位地址:(小端法) 如:124EH在内存中的存放位置如下: (且地址为[1]) 3.关于mov指令值得注意的一点,当作为第二个操作数的常数最高位为a-f时,前面要加0 4.SS:SP,与ds相同,ss也不能直接送值 二.小测试 栈的使用主要需要

第三章 寄存器(内存访问)相关内容总结

在本章中,我们从访问内存的角度继续学习了几个寄存器.我们提出字单元的概念:字单元,即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成.高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节.CPU要读写一个内存单元的时候,必须先给出这个内存单元的地址,在8086PC中,内存地址由段地址和偏移地址组成.8086CPU中有一个DS寄存器,通常用来存放要访问数据的段地址.我们用mov指令在寄存器和内存之间进行字节型数据的传送.因为8086CPU是16位结构,有