有一段代码,请写出寄存器的变化情况?jmp $+9
mov ax,0
mov cx,8
add ax,cx请写出其不16位的情况和32位的情况,谢谢!!
mov ax,0
mov cx,8
add ax,cx请写出其不16位的情况和32位的情况,谢谢!!
解决方案 »
- MFC中搜索局域网设备问题?
- 使用LIB.EXE从DLL生成lib文件,其命名约定是如何的?
- VS2005中的CStdioFile类用WriteString和ReadString?????
- 能否实现程序通过指定的一个modem进行网络通讯 ?
- 如何显示文件目录
- 大家说说!用CInternetSession获取html数据,如何得知数据是gzip格式,如何解压呀?
- UNICOD 与 ansi编码转换的源代码,帮忙看看,哪里有问题
- 多文件下载遇到的问题??大家帮忙看看!!谢谢!
- 关于串口异步编程
- visual c++ 和c++ builder 哪一个好
- [VC->VB@DLL]如何给SAFEARRAY**类型的参数传值?
- sp6 for visual c++ and visual basic 怎么用,我下的文件是msmenu.exe
{
_asm
{
jmp $+9
mov ax,0
mov cx,8
add ax,cx
}
return 0;
}运行结果为:
ax初始值为0xCCCCCCCC,cx为0
jmp $+9跳过了mov ax,0直接运行mov cx,8
所以最后cx是8,ax是0xCCCCCCCC + 8
00401028 jmp main+21h (00401031)
11: mov ax,0
0040102D mov ax,offset main+1Fh (0040102f)
12: mov cx,8
00401031 mov cx,offset main+23h (00401033)
13: add ax,cx
00401035 add ax,cx
这是上面的语句编译后的代码,jmp用了4bit,mov也是4bit,所以jmp $+9就跳过了mov ax,0