CALL DWORD PTR DS:[EAX*4+A9894C]是什么意思 20

一般C或C++的什么语法编译器会产品这样的代码... 一般C或C++的什么语法编译器会产品这样的代码 展开
 我来答
魔塔过客
2011-06-25 · TA获得超过242个赞
知道小有建树答主
回答量:244
采纳率:0%
帮助的人:281万
展开全部
读取内存 eax寄存器中的值+(0A9894C)(十六进制) 中的4个字节,
调用这四个字节代表的地址
=-======================
翻译成自然语言就是:
X=EAX*4+0x00A9894C
y=readmemory(x,4字节)
call y
更多追问追答
追问
一般C或C++的什么语法编译器会产品这样的代码
追答
只要是32位系统,无论C/C++/VB/DELPHI,最后都是以汇编语言(其实本质是机器语言)交付CPU运行的
匿名用户
2012-11-18
展开全部
你这属于存储器的段间跳转,在微机原理中有,这相当于调用子程序或者条件判断之后的跳转。
MOV AX,23456
CALL DISPAXD
MOV AH,4CH
MOV AL,0
INT 21H
DISPAXD PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DI
LEA DI,DECIMAL
CALL TRANS16TO10 ; //TRANS16TO10另外的子程序
MOV CX,5
LEA DI,DECIMAL+4
MOV AH,2
DISPAXD2:
MOV DL,[DI]
ADD DL,30H
DEC DI
INT 21H
LOOP DISPAXD2
POP DI
POP DX
POP CX
POP BX
POP AX
RET
DISPAXD ENDP
TRANS16TO10 PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DI
MOV BX,10
MOV CX,5
TRANS1:
XOR DX,DX
DIV BX
MOV [DI],DL
INC DI
LOOP TRANS1
POP DI
POP DX
POP CX
POP BX
POP AX
RET
TRANS16TO10 ENDP
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
辩一辩
2011-06-23 · TA获得超过412个赞
知道答主
回答量:136
采纳率:0%
帮助的人:173万
展开全部
调用一个函数。函数地址为 DS:[EAX*4+A9894C]
追问
一般C或C++的什么语法编译器会产品这样的代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式