鱼C论坛

 找回密码
 立即注册
查看: 2272|回复: 0

[学习笔记] 《汇编语言》第三章3.1节~3.5节

[复制链接]
发表于 2017-7-16 23:58:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
3.1节 内存中字的存储

一个字节占一个存储单元,一个字占两个储存单元(一存储单元的大小为8bit)
存放一个字的时候高八位放高字节,低八位放低字节
                                                                                                                                                                                1.png

如右图:
(1)0地址单元存放的的字节型数据:20H;
(2)0地址单元存放的的字型数据:4E20H;
(3)2地址单元存放的的字节型数据:12H;
(4)2地址单元存放的的字型数据:0012H;
(5)1地址单元存放的的字型数据:124EH。

从中可以看出任意两个连续的内存单元,N号和N+1号单元,可以将它们看成两个内存单元,它们为字节型单元,也可以看成一个地址为N的字单元中的高位字节单元和低位字节单元。

3.2节 DS和【address】
DS称之为数据段寄存器

有如下的汇编指令:
mov bx, 1000H
mov ds, bx
mov al, [0]

mov bx, 1000H表示将1000H放在bx中,mov ds, bx表示将bx的数据放在ds中。
mov ds, bx和mov al, [0]表示将放在10000H内存中的数据放去al中
10000H如何来的呢?[0]表示偏移地址为0,而它的段地址来自ds中,因为mov ds, bx已经将1000H放在ds中
当要执行mov al, [0]时,CPU将自动将ds中的数据当作段地址

注意:不能做mov ds 1000H这样的,只能mov ds 某一寄存器或者内存地址    8086CPU不支持将数值直接放在ds中(这是硬件问题)

3.3节 字的传送
只要在mov指令中给出16位的寄存器就可以进行16位的数据传输了
如: mov ax [0]
        mov [0] ax

3.4节 mov、add、sub指令
我们知道,mov有如下的指令:
mov ax, 8;
mov ax, bx;
mov ds ax;
mov [0], ax;
mov ax, [0]。

那应该也有 mov ax, ds也是成立的
                  mov ds [0]也是成立的
                  mov [0] ds 也是成立的

对于add指令和sub指令同mov一样
如:
add ax,8
add ax,bx
add ax, [0]
add [0] ax
sub ax, 8
sub ax, bx
sub ax, [0]
sub [0], ax
以上都是成立的
可是add ds,ax不成立

3.5节 数据段
我们将一组长度为N(N<=60KB)、地址连续、起始地址为16的倍数的内存单元当作专门的存储空间来放数据,这样称之为数据段
下面将讨论如何访问数据段中的数据
如有123B0H~123B9H的内存单元定义为数据段,有如下代码:
mov ax, 123BH
mov ds, ax
mov al, 0
add al, [0]
add al, [1]
add al, [2]

这样将访问到数据段的数据,将它们累加到al中


总结:
(1)[address]地址单元可根据指令中的寄存器的所指向的位数,决定[address]中是一个字节还是两个字节
(2)字要用两个连续的内存单元来存放,字的高位字节方存放在高位地址,字的低位字节存放在低位地址
(3)mov指令访问内存单元时,在[address]给出偏移地址,段地址存放在ds中,在访问内存单元时CPU会自动使用ds中的段地址
(4)注意到add ds, ax不成立
(5)mov、add、sub为两个操作对象的指令,jmp为一个操作对象指令

评分

参与人数 1鱼币 +4 收起 理由
小甲鱼 + 4

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 16:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表