首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >asm中的结构

asm中的结构
EN

Stack Overflow用户
提问于 2015-01-26 07:33:43
回答 1查看 568关注 0票数 0

我正在学习不带宏的do结构(纯汇编)。

想象一下功能和结构

代码语言:javascript
复制
foo(struct house* ip)
    house{
    short a;
    short b;
    int c;
    }

和汇编中的程序:

代码语言:javascript
复制
push 0   ; c = 0
pushw 11 ; b = 11
pushw 0  ; a = 0

mov ecx, esp ; pointer to the structure
execute->foo(ecx)

两个问题: 1. asm中的结构在结构后必须为NULL?我见过一些代码把null和no.2放在一起,怎么知道"asm“特别是引用我的结构?变量由ebp+nº字节引用

EN

回答 1

Stack Overflow用户

发布于 2015-01-26 08:14:29

在程序集中,不要求结构后面有NULL。

esp总是指向你刚刚在堆栈上压入的内容,正如你正确地假设堆栈在内存中向下增长。

但是,您不能使用push设置任意结构,就像您在这里尝试的那样。

堆栈条目有一定的固定宽度(通常是16、32或64位),这取决于CPU的运行模式,因此,只有当结构中的所有元素恰好都有一个宽度,这是堆栈条目的宽度的倍数时,您的方法才有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28142865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档