我正在学习MP书的作者-GODSE.我的问题:A)AX、BX、CX、DX 16位寄存器能否用作传输“8位“数据的源?例如:Mov [734AH],BX;将bx的“内容”复制到ds。在这里,内容意味着什么?
Mov [734AH],BX
bx
ds
实验2:Mov DS,BX;将“word”从bx复制到ds。为什么他们提到word本身?(如果1字节数据也可以传输,他们会给出“content”本身。)
Mov DS,BX
kkbh8khc1#
A)AX、BX、CX、DX 16位寄存器能否用作传输“8位“数据的源?不完全是。但是,您可以使用AL作为传输8位数据的源(特别是AX的低8位)。AX本身拥有16位,如果您将其用作MOV指令的源,则所有这些位都会被传输。例如:移动[734 AH],BX;将bx的“内容”复制到ds。这里,内容意味着什么?a)数据或字b)只有字?“内容”就是BX的内容。它的16位的值。它们被传送到给定的内存地址。实施例2:移动DS、BX;把“word”从bx复制到ds。为什么他们要提到word本身?听起来你对“word”的意思很困惑。word是一个数据单位。引用维基百科:字基本上是一组固定大小的数字(二进制或十进制),由处理器的指令集或硬件作为一个单元处理。
AL
AX
MOV
gwbalxhn2#
在真实的模式下;你可以在段寄存器中存储任何你喜欢的值(例如ds),只要你不使用不想要的值作为内存引用。例如,像mov [foo],ax这样的指令使用ds作为它的隐含段寄存器,如果你忘记了这一点,并将ds设置为任意值,你的代码将中断。在保护模式和长模式下;段寄存器加载涉及保护/健全性检查,并且您不能在段寄存器中存储任意值。对于大多数操作系统(使用分页而不使用分段),您可能只能将2个值加载到数据段寄存器(如ds)中-进程启动时已经包含的值和零。
mov [foo],ax
2条答案
按热度按时间kkbh8khc1#
A)AX、BX、CX、DX 16位寄存器能否用作传输“8位“数据的源?
不完全是。但是,您可以使用
AL
作为传输8位数据的源(特别是AX
的低8位)。AX
本身拥有16位,如果您将其用作MOV
指令的源,则所有这些位都会被传输。例如:移动[734 AH],BX;将bx的“内容”复制到ds。这里,内容意味着什么?a)数据或字b)只有字?
“内容”就是BX的内容。它的16位的值。它们被传送到给定的内存地址。
实施例2:移动DS、BX;把“word”从bx复制到ds。为什么他们要提到word本身?
听起来你对“word”的意思很困惑。word是一个数据单位。引用维基百科:
字基本上是一组固定大小的数字(二进制或十进制),由处理器的指令集或硬件作为一个单元处理。
gwbalxhn2#
在真实的模式下;你可以在段寄存器中存储任何你喜欢的值(例如
ds
),只要你不使用不想要的值作为内存引用。例如,像mov [foo],ax
这样的指令使用ds
作为它的隐含段寄存器,如果你忘记了这一点,并将ds
设置为任意值,你的代码将中断。在保护模式和长模式下;段寄存器加载涉及保护/健全性检查,并且您不能在段寄存器中存储任意值。对于大多数操作系统(使用分页而不使用分段),您可能只能将2个值加载到数据段寄存器(如
ds
)中-进程启动时已经包含的值和零。