大家好,如果您还对深入解析:基础理论与实践应用不太了解,没有关系,今天就由本站为大家分享深入解析:基础理论与实践应用的知识,包括的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
字节=B
1KB=1024B
1MB=1024KB
需要明确三个概念:
数据、控制、地址
一些基础操作及常识
MOV AX [3]; //将单元3的内容写入AX
8086数据线是16位80396 32位8088 8位
存储器
RAM 断电时丢失随机存储器、缓存等、显存、存储程序等。
ROM只读存储器,断电不丢失,多人模块BIOS
从图中可以看出:通过控制内部存储空间上数据的变化来控制外设。注意,这些逻辑地址是虚构的连续空间,但实际上是设备存储空间的连续寻址电路。
因此,在控制系统及其片内资源时,有必要了解其内部空间地址的分布。
寄存器
CPU内部由运算器(信息处理)、控制器、寄存器(信息存储)等组成,程序员通过修改寄存器来控制CPU。
8086中的寄存器是16位
通用寄存器:AX(AH,AL) BX(BH,BL)等
两个BYTE(8 位)形成一个字(16 位)。
程序集不区分大小写
使用寄存器时需要注意的事项:
1. 当使用AL 和AH 时,它们将分别被视为8 位寄存器。 AL 的溢出进位不会存储在AH 中。
2、寄存器与寄存器或数据交换时,要注意对应的位数以及存储数的上下限。
16位CPU特点:
8086中的地址总线是20位,它提供的数据位数是16位,所以你必须熟悉段地址+偏移地址来寻址物理地址的思想。
这种方式形成了段思维,完全是这种寻址方式造成的。事实上,内存是不存在分段的。一般情况下,段地址需要在加法器中移位并与偏移地址相加。
段寄存器cs和ip指令指针寄存器
8086中段寄存器包括CS、DS、ES和SS。当8086想要访问内存时,它们提供内存单元的段地址。
其中,合并地址时的主要操作转移指令mov不能修改cs和ip的值。
可以通过转移指令修改,如jmp段地址:偏移地址
示例:jmp 2AE3:3 执行后:CS=2AE3H IP=0003H,下一步将取2AE33H处的指令。
又如: jmp 3:0B16 -: CS=0003H IP=0B16H
只修改IP寄存器:
跳跃斧; //只修改ax中的值到IP寄存器中,CS寄存器中的值保持不变。
DEBUG SHELL
在DOSBOX 环境中:
MOUNT C C:/DEBUG //路径中有DEBUG.EXE
C: //进入挂载的C盘,即C:/DEBUG
DEBUG //进入DEBUG环境
R命令:查看或修改当前所有寄存器的状态和值
-R //查看
-R AX //修改AX寄存器的值
-D 命令:示例
-D 1000:0 //格式为段地址:偏移地址(终止偏移地址)
-E 可以指定以十六进制形式修改内存的内容。
-U 下面
-T 下面
-A 下面
寄存器(内存访问)
一些标题:
地址字单元——从地址开始的两个连续的存储单元(16位,2BYTE)
DS和[address]
DS段寄存器,用于存储默认段地址:
移动bx,1000h
移动ds,bx
移动斧头[0]; //8086取出1000h地址处的数据,通过ds中的默认段地址加上[0]偏移地址将其传输到AX寄存器。
并且注意:8086不支持传入数据到段寄存器的操作。
注意:字数据如何存储在内存中
2C34H 10000H 上的存储方式(8086)
mov,add,sub
类似的加减指令不能直接操作段寄存器,但其他指令可以
数据段:
自定义一个专门用于存储数据的内存地址,例如用DS来存储数据段的段地址。
关于深入解析:基础理论与实践应用的内容到此结束,希望对大家有所帮助。
【深入解析:基础理论与实践应用】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则