|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
CS=2000
IP=0000
然后计算机从内存20000处开始读取指令,那么,问题来了,计算机是怎么知道,读取的是20000,20001,20002这三个内存区块的内容的
换句话说,CS2000,IP0000,它指向的段地址应该是20000这个没问题,但是它是怎么知道读到20002停止的呢
在这个例子中,计算机从20000地址开始读取指令,根据您的描述,它读取了20000、20001和20002这三个内存地址的内容。这很可能是因为这条指令的长度正好是3个字节。指令的长度取决于具体的指令类型和操作数,不同的指令长度会有所不同。
计算机在执行指令时,会根据当前指令的长度来更新IP(指令指针)的值。在这个例子中,计算机执行完内存地址20000~20002的指令后,知道这条指令的长度是3个字节,所以将IP的值加3(0000 + 0003 = 0003),这样计算机就知道下一条指令应该从20003地址开始读取了。
所以,计算机在执行指令时,并不是事先知道要读到哪个地址停止,而是在执行完一条指令后,根据该指令的长度更新IP的值。在这个例子中,计算机读取了20000、20001和20002这三个内存地址的内容,因为这条指令的长度正好是3个字节。然后,计算机根据指令的长度更新IP的值,知道下一条指令应该从20003地址开始读取。
|
|