当在机器运行如下代码时:MOV AX,DS:[DX];假设此时DS=04H,DX=2344H,那么CPU怎样才能在内存中找DS:[DS]的值呢?其步骤如下:(1)从DS选择子中选取04H。(2)从对应的描述符空间中查找到第04H个描述符。(3)取出描述符中的三个参数,分别是段基地址、段界限和段属性。假设段的基地址等于00012345H,段界限等于5678H。(4)这时,段基地址就是段的开始位置,通过EIP的32位偏移,就可得到物理地址,由:物理地址=段基地址+偏移可得物理地址就是179BDH(00012345H+5678H)。(5)此时就可以从179BDH中取出数据放入AX寄存器中。
请问[dx]在这里起到什么作用呢?
请问[dx]在这里起到什么作用呢?
解决方案 »
- 键盘钩子可以获取 PrintScreen 这一件事件吗(即截图的键)
- 请问如何才能让使用GDI+画出来的字看好些呢
- #视频捕捉是 ##摄像头问题## 还是别的问题?
- EDIT 文本框长度超过界面怎么弄
- 如何将窗口居中显示?
- 如何给tab页发送TCN_SELCHANGE通知消息?
- 求助!~急需一个邮件发送程序
- 关于2000下DLL里使用ShellExecute执行程序的小问题,请帮我。
- 请问,谁有液晶显示屏开发的经验。诚请赐教。注(dos)
- 我有一个VC自带的Sample,是makefile那种的,我该怎样才能把它编译成.exe啊?
- 变量定义出错!
- 别人的一个程序界面中有一个Button类的控件,怎样查看它的属性是可见的还是不可见得
如果你指的是8086汇编
则:如果我没记错的话
ds:[dx] 应该就的指向实际地址,地址就是ds<<4 + dx
他的理解一点都不沾边
找来看看