(重定位问题)高手帮我看下以下汇编代码哪错了? 10

.386;Processor(386+).modelflat;Uses32bitregistersextrnExitProcess:proc;TheAPIitusesex... .386 ; Processor (386+)
.model flat ; Uses 32 bit registers

extrn ExitProcess:proc ; The API it uses
extrn MessageBoxA:proc

.data
;szMessage db "Hello World!",0 ; Message for MsgBox
szTitle db "Win32 rocks!",0 ; Title of that MsgBox
;kernel dd 70000000h

.code ; Here we go!

HelloWorld:
VStart:
call GetDelta

push 00000000h ; Sytle of MessageBox
push offset szTitle ; Title of MessageBox
push offset szMessage ; The message itself
push 00000000h ; Handle of owner

call MessageBoxA ; The API call itself

mov dword ptr [ebx+kernel],eax;这有问题

push 00000000h
call ExitProcess

GetDelta:
call delta
delta:
pop ebx
sub ebx,offset delta - VStart
ret

szMessage db "Hello World!",0 ; Message for MsgBox
kernel dd 70000000h
end HelloWorld
独孤星坛帅哥谢谢你的热心,不过这个问题对你深了点,呵呵。。
展开
 我来答
独孤星坛
2008-09-06 · TA获得超过121个赞
知道答主
回答量:116
采纳率:0%
帮助的人:149万
展开全部
在你的代码段中,没有给段寄存器初使化,,所以在你的那有问题的指令中没有找在数据段中找到变量kernel,因在段码段前面多加
mov ax,&data
mov ds,ax ;(我现学8086的,如位数不对你自已换回来吧)
还有,我看了几遍也找不到哪有EBX的初使语句和哪有子程序GetDelta 的定义,,更更奇怪的是,怎么在代码段中定义数据,,,
最后本人建议:不要用简化段定义来写代码,感觉乱乱的,最好用标准的完整段定义,,,,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9f8f24d
2008-09-05 · TA获得超过158个赞
知道小有建树答主
回答量:273
采纳率:0%
帮助的人:193万
展开全部
这代码写的真够乱
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式