微机原理高手求救:寻址方式的问题?帮忙回答一下几个问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 13:43:10
1.立即寻址:操作数作为指令的一部分,紧跟在操作码之后,和指令一起存放在代码段中。这里的代码段是指代码段寄存器还是指内存的代码段?内存的代码段是什么东西?还有"操作数作为指令的一部分,紧跟在操作码之后,和指令一起存放在代码段中"中"紧跟在操作码之后,和指令一起存放在代码段中"这句话什么意思?这里的操作码是不是就是"mov,add"之类的?

2.立即寻址有物理地址?如果有,怎样确定其物理地址?它的段地址和偏移地址是什么?

3"立即寻址模式:即数据直接和指令一起编码,cpu读入执行的时候,无须再通过任何寻址方式,也就是不用通过地址去找数据。从感性上将,这是唯一不用寻址的模式(虽然他称为一种寻址模式)"这句话能再说的明白点嘛?
4.再具体例子说明一下如:mov ax,1234H,回答一下上面三个问题.谢谢
5.基址变址相对寻址:MOV CX,DS:[BX+SI+NUM]这条指令中的DS是不是多余的?BX默认下不是和DS配对嘛?这不是段超越吧?还有这条指令可以写成
MOV CX,DS:NUM[BX+SI],但可以写成"MOV CX,DS:[BX+SI]NUM"形式嘛?

6.为什么这条指令是错的:"mov ax,[100][si+bi]",即为什么不能在100加"[]",是不是intel公司的工程师在设计指令系统时就规定不能这样用啊?

7.符号扩展是什么意思?比如要把8位二进制数扩展为16为,该怎么扩展?十进制正数的是不是直接加8个0?十进制负数的是不是在负数的补码前加8个1,同时把此补码的第八位的1改为0?
8.biso,操作系统,显卡指令在内存的哪一段?电脑开机时(电源刚接通时那一刻)从那条指令开始运行?
9.为什么"立即数不能直接传给段寄存器;两个段寄存器之间不能传递数据."如:mov ds,1234h;mov ds,cs;"是错误的.是不是intel工程师在设计cpu时就不允许这样用啊?
10.立即数不能直接赋给内存,是这样嘛?
11.双操作数指

1.MOV和ADD之类是操作码
他们写成的格式是:
MOV DST,SRC
ADD DST,SRC

源操作数是src
目的操作数是dst

2.立即寻址是直接使用的,不存在物理地址,更不存在段地址之类的

3.举个例子:MOV AX,2000H
这就是直接寻址,这句话的意思就是把2000H直接送到AX里面,在这之前2000H不在其他任何存储器里面

4.同3

5.可以这么认为,那只是形式罢了
BX是和DS默认配对的,但是和这里不相干,所谓的相对基址变址就是相对寻址SI加基址寻址BX加变址寻址DI
不是段跨越前缀
可以

6.我只知道加括号是取内容,起码也得1000H
而且汇编不用那么生搬硬套
或者你应该写成:MOV AX,[SI+BI+1000H]

7.CBW符号扩展指令:扩展AL中的符号至AX中,将8位数扩展成等效的16位
CWD同上:扩展AX中的符号至DX中,将16位数扩展成等效的32位
例:计算-127/75,商存入RESULT单元
MOV AL,-127 ;装入被除数
CBW ;字节扩展到字
MOV BL,15 ;装入除数
IDIV BL ;-127/15
MOV RESULT,AL

问题一大堆啊