汇编语言最新的(还要补充)P41-P45

P41

地址寄存器
段地址寄存器:偏移地址寄存器
8086CPU给了他20根地址线0000 0000 0000 0000 0000-111
地址线的数量决定了CPU的寻址能力
地址加法器
地址的计算方式
段地址16(10H)_偏移地址=物理地址
段地址
16=基础地址
基础地址+偏移地址=物理地址
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
现在只能够通过2张只能够写3位数字的纸条告诉你怎么去图书馆
你将第一章纸条当中的数字*10+第二章纸条当中的数字=图书馆
200(段地址)*10=2000m(基础地址)
826
在这里插入图片描述
在这里插入图片描述

P42

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

p43-6.7-监测点-2.2

段地址为0001H仅仅通过变化偏移地址,CPU的寻址范围为——到——
段地址10H+偏移地址=物理地址
0001H
10H
10H+(0-FFFFH)=物理地址
10H+0=10H
10H+FFFFH=1000FH

有一个数据存放在内存为20000H单元当中,现在给段地址为SA,如果想用偏移地址寻找到此单元,则SA应该满足的条件是最小为——最大——
提示,反过来思考一下,当段地址给多少的时候,Cpu无论怎们改变偏移地址都无法找到20000H
SA10H+(0-FFFFH)=20000H
20000H/10H=2000H,SA=2000H
2000H
10H+0=20000H
SA10H+0=20000H
SA
10H+FFFFH=20000H
SA*10H=10001H
10001H/10H=1000H

SA=1000H
1000H10H+FFFH=1FFFFH
这个是错误的
SA=1001H
1001H
10H+FFFH=2000F
在这里插入图片描述

P44-6.8Cpu是怎么区分指令和数据的?

u指令:将某个内存地址开始的字节全部当作指令
d指令:将某个内存地址开始的字节全部当作数据
段地址寄存器和偏移地址寄存器
在这里插入图片描述
mov ax,0
IP寄存器和指令有关
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
8086CPU当中,在任一时刻,CPU将CS:IP所指向的内容全部当作指令来执行
在内存当中指令和数据都是没有区别的,都是二进制的信息,CPU在工作的时候,才将有的信息当作指令
有的信息当作数据,CPU根据什么将内容当中的信息当中指令的话,CPU将CS:IP指向的内存单元当中的内容当作指令
1,使用debug,将上面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中内容的变化

可以使用 e 指令 和 a 指令修改

P45-小实验

CPU如何区分指令和数据

机器码			汇编指令


b8 20 4e		mov ax,4E20H
05 16 14		add ax,1416H
bb 00 20		mov bx,2000H
01 d8			add ax,bx
89 c3			mov bx,ax
01 d8			add ax,bx
b8 1a 00		mov ax,001AH
bb 26 00		mov bx,0026H
00 d8			add al,bl
00 dc			add ah,bl
00 c7			add bh,al
b4 00			mov ah,0
00 d8			add al,bl
04 9c			add al,9C

将以上的机器码用e指令输入到2000:0这个位置
在这里插入图片描述
在这里插入图片描述
都是内存,翻译成汇编指令,被当作指令来hi用
在这里插入图片描述
在这里插入图片描述
指令和数据在内存当中没有区别
CPU和CS的段地址寄存器和IP这个偏移地址寄存器组合的时候从中读取内容,读取出来的内容当作指令来执行数据
CS IP决定了CPU从哪里开始读取指令

猜你喜欢

转载自blog.csdn.net/weixin_43428283/article/details/110247435