作业帮 > 物理 > 作业

关于80486寻址方式的一些题目,上课没听懂,

来源:学生作业帮 编辑:作业帮 分类:物理作业 时间:2024/05/14 14:07:54
关于80486寻址方式的一些题目,上课没听懂,
写出下列指令中目标操作数,源操作数的寻址方式,如果有非法的内存操作数请改正,并写出CPU所寻址的逻辑段.
1.MOV BX,50
2.CMP [BX],100
3,ADD [SI],1000
4.MOV BP,CP
5.MOV BX,[BP+4]
6.MOV AX,[BX+DI+5]
如果能写出如何判断的详细过程那就太谢谢了,肯定追加分数.
指令的一般格式:操作码 目标操作数,源操作数
先跟你讲一下一些主要的寻址方式吧,我学的是8086,寻址方式和80486基本是一样的,只是在名称上可能会有点不同,我会注明,具体的你看一下书吧.
1.立即寻址:操作数是一个立即数(就是常数)
例如:MOV AX,3100H 中的3100H
2.直接寻址:指令中给出的不是数值,而是操作数存放的物理地址(偏移地址)
例如:MOV AX,[5400H] 中的[5400H]
3.寄存器寻址:指令的操作数是CPU的内部寄存器
例如:MOV SI,AX 中的AX
4.寄存器间接寻址:用寄存器的内容表示操作数的偏移地址,同样,寄存器不再表示数值本身,而是操作数存放的物理地址(偏移地址),此方式只允许使用SI、DI、BX、BP
例如:MOV AX,[SI] 中的 [SI]
5.寄存器相对寻址(带位移的基址/变址寻址):与寄存器间接寻址相类似,只是偏移地址中多了一个给定的8位或16位位移量
例如:MOV AX,[BX+5] 中的[BX+5]
6.基址-变址寻址:由基址寄存器BX和BP中的任意一个和变址寄存器SI和DI中的任意一个相加而形成操作数的偏移地址
例如:MOV AX,[BX][DI] 中的[BX][DI]
7.基址-变址相对寻址(带位移的基址-变址寻址):与基址-变址寻址相类似,只是偏移地址中多了一个给定的8位或16位位移量
例如:MOV AX,[BX+DI+8] 中的[BX+DI+8]
记住一点,带有“[ ]”的,都是代表地址,而并非真正的数值.
至于逻辑段,主要针对的是源操作数的寻址.默认情况下,指令中只要没有出现BP,逻辑段是DS;出现了BP,逻辑段为SS
1.MOV BX,50
目标操作数:寄存器寻址,源操作数:立即寻址,逻辑段:DS
2.CMP [BX],100
目标操作数:寄存器间接寻址,源操作数:立即寻址,逻辑段:DS
3.ADD [SI],1000
目标操作数:寄存器间接寻址,源操作数:立即寻址,逻辑段:DS
4.MOV BP,CP
CP是什么?如果不是抄错的话CP是非法操作数.
5.MOV BX,[BP+4]
目标操作数:寄存器寻址,源操作数:寄存器相对寻址,逻辑段:SS
6.MOV AX,[BX+DI+5]
目标操作数:寄存器寻址,源操作数:基址-变址相对寻址,逻辑段:DS
若有不足之处,还望谅解.