复习-第三章寄存器(内存访问)

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

3.1 内存中字的存储

看图
在这里插入图片描述

N地址单元是什么有意思?

在这里插入图片描述
在这里插入图片描述

3.2 DS 和[address]

作用?

在这里插入图片描述

如何将10000H的数据读到al中?

在这里插入图片描述

原理

在这里插入图片描述

为什么不能直接mov ds,1000h,硬件不可以这样操作

3.3字的传送

4e20h两个字节
4e一个字节
20一个字节
在这里插入图片描述
在这里插入图片描述

例子

在这里插入图片描述

减法

在这里插入图片描述

3.4 mov、add、sub指令

mov指令的几种形式

在这里插入图片描述

mov寄存器,段寄存器

mov ax,ds

mov内存单元,段寄存器

在这里插入图片描述

mov 段寄存器,内存单元 不行

add

在这里插入图片描述

3.5.数据段

在这里插入图片描述

累加前三个数据到al中

在这里插入图片描述

累加前三个数据到ax中

在这里插入图片描述

3.1~3.5小结

在这里插入图片描述
在这里插入图片描述

3.6 栈

3.7 CPU 提供的栈机制

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

SS和SP和push过程

在这里插入图片描述
在这里插入图片描述

栈空指向哪里?最高地址的下一个单元。

push

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

pop

在这里插入图片描述

3.8 栈顶超界的问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.9 push、pop 指令

在这里插入图片描述
在这里插入图片描述

重要例题

在这里插入图片描述
在这里插入图片描述

解释

在这里插入图片描述

总结

在这里插入图片描述

在这里插入图片描述

3.10 栈段

在这里插入图片描述

如果将10000H~1FFH这段空间当作栈段,初始状态栈是空的,此时

SS=1000H,SP=?

在这里插入图片描述
在这里插入图片描述

一个栈段最大可以设为多少?为什么?

在这里插入图片描述
64KB=2^16B
16代表16个字节。
16个空间,16个字节。
栈,每次push和pop都要用两个空间。
在这里插入图片描述

段的小结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

检测题

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
pop [e]
把栈顶指针指向的东西
赋值给[e]

mov ax,1000H
mov ss,ax
mov sp,0H

实验2 用机器指令和汇编指令编程

1、D命令的其他用法。

查看段寄存器中的内存。

从SA:偏移地址开始的内存区间中的数据

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、在E、A、U命令中使用段寄存器。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

算栈空间,sp,10,10-1,得到F

在这里插入图片描述

出现问题,mov sp,10呢?

在这里插入图片描述

为什么?

在这里插入图片描述

在这里插入图片描述

实验2

在这里插入图片描述

修改的内存单元的地址是,内容为?

它在问什么?

看代码sp是0100

Push后sp=sp-2
所以是00FE

Push后sp=sp-2
所以是00FC

内容就ax,bx,这就没什么了。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、分析,为什么2000:0~2000:f中的内容会发生改变
其实这些就是寄存器的信息,因为t是会使程序中断的,了解中断请跳看到12章。

所以每次执行t的时候,程序都会保存一次寄存器的信息。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值