腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(4005)
视频
沙龙
1
回答
为什么
在从
由
gcc
编译
的
C
"
Hello
World
“
程序
调用
printf
x86
程序
集
之前
修改
%
al
寄存器
和
堆栈
c
、
x86
、
x86-64
我正在尝试更好地理解
编译
器
和
汇编,并且目前正在尝试理解
为什么
这个简单
的
"
Hello
,
World
“
程序
在
调用
printf
之前
修改
堆栈
和
%
al
寄存器
。这是
gcc
在关闭优化
的
情况下生成
的
程序
集
(一些
编译
器指令已被删除)
浏览 11
提问于2019-01-12
得票数 2
回答已采纳
2
回答
用GNU汇编
程序
调用
x86_64中
的
printf
linux
、
gcc
、
assembly
、
x86-64
、
gnu-assembler
我编写了一个使用AT&T语法
的
程序
,用于GNU汇编
程序
:format: .ascii "%d\n" mov (%rbx), %rdi call
printf
ret
gcc
-o
浏览 1
提问于2016-07-12
得票数 17
回答已采纳
1
回答
在
程序
集
x86
中,
寄存器
和
堆栈
的
大小到底意味着什么?
assembly
、
x86
我刚开始组装,我真的很困惑,我读了几篇文章和一些书,但我不明白这意味着什么EAX :32位如果是Q3 -我想知道我应该在什么时候推
和
弹出
堆栈
?Q4 -
浏览 0
提问于2016-08-20
得票数 0
回答已采纳
5
回答
如何从
gcc
内联
c
++
程序
集
调用
arm7成员函数
c++
、
gcc
、
assembly
、
arm
下面是在
x86
上工作
的
代码,我需要将它转换为
gcc
/arm7 7内联
程序
集
。替换
堆栈
似乎是一个简单
的
问题,就是将
堆栈
指针移动到r15而不是esp中,但我不知道如何
调用
函数,或者如何将实际
的
变量放入arm
程序
集
代码中。Object *
c
; unsigned long _stack = (unsigned long)
c
->stack
浏览 6
提问于2012-08-04
得票数 0
1
回答
如何在
C
__asm__()中
调用
printf
?
c
、
assembly
我试图使用
c
__asm__打印__asm__,如下所示:{ "lea -0x140(%rbp), %rax\n\t" "call
printf
0x0000000000400563 <+45>: c
浏览 1
提问于2019-04-16
得票数 2
回答已采纳
2
回答
编译
器将
printf
更改为
c
、
gcc
、
assembly
、
compiler-optimization
考虑以下代码:
printf
("
Hello
world
\n");
printf
("
Hello
world
");这两种功能产生
的
程序
集
是: .string "
Hello
world
" f
浏览 1
提问于2020-02-05
得票数 5
回答已采纳
1
回答
x86
装配
堆栈
预留
x86
考虑下面这个简单
的
C
程序
{ return 0;{ return 0;这是
由
gcc
编译
的</e
浏览 2
提问于2012-03-05
得票数 4
2
回答
在
gcc
的
内联asm中使用
printf
函数
c
、
gcc
、
assembly
、
segmentation-fault
、
inline-assembly
我想在
gcc
上测试一下内联asm功能。所以,我在ubuntu 12.04 64位操作系统上输入并
编译
了以下代码,但是当它运行时,系统在屏幕上显示‘’分割错误‘’,我不知道是什么导致了这个问题。#include <stdio.h>int main() asm "movl $3,4(%esp);" "movl $Format,(%esp);&
浏览 1
提问于2012-07-08
得票数 1
回答已采纳
2
回答
在gdb中读取
的
文件是什么样
的
?
gdb
、
reverse-engineering
当
程序
从文件中读取时,这在GDB中是怎样
的
。我知道文件已经打开等了。也是这样
的
:......但是你能解释一下“从文件到
程序
内存复制字节”
的
动作吗?也许有一个装配
的
例子。其中
寄存器
是存储文件内容
的
文件/
程序
存储器
的
附件。fopen返回一个句柄。我怎么能追踪到这个?
浏览 0
提问于2014-01-11
得票数 0
回答已采纳
1
回答
x86
的
替代呼叫约定
x86
、
calling-convention
是否可以在不
修改
编译
器本身
的
情况下创建另一种
调用
约定?例如,这个假设
的
调用
约定可以用于优化。
浏览 1
提问于2018-03-10
得票数 0
回答已采纳
2
回答
为什么
.rodata段
的
静态字符串在
GCC
中有一个四点前缀?
c
、
gcc
、
assembly
关于下列代码:
printf
("
Hello
World
"); return0;用于
调用
printf
的
生成
程序
集
如下(64位): 400474: be 24 06 40 00 mov
浏览 1
提问于2016-01-11
得票数 3
回答已采纳
2
回答
gcc
可以
编译
x86
程序
集
还是直接链接它?
gcc
、
assembly
、
compiler-construction
、
x86
gcc
可以生成汇编,但是我如何用
gcc
或其他
编译
器
编译
纯汇编呢?我知道
x86
汇编是很困难
的
,而且是另一种指令
集
,而不是我
之前
看到
的
MIPS
和
Nios指令
集
,但现在我想尝试
编译
直接
的
x86
asm。这里有关于如何做
的
说明,但是其中包含了一个
C
文件,我
的
第一次最基本
的
编译
浏览 3
提问于2013-02-18
得票数 26
回答已采纳
2
回答
Clang不会将值通过
寄存器
作为指定
的
代码传递
c
、
x86-64
、
inline-assembly
、
calling-convention
我有下面的代码片段,这里我想通过
寄存器
rax传递变量num
的
值,但是在
程序
集
代码中,clang并不直接使用rax。相反,它将num
的
值保存在
堆栈
上,然后将
堆栈
上
的
值传递给行为不同于
GCC
的
rsi
寄存器
。
为什么
?顺便说一句,我在
编译
命令中没有使用任何优化标志。
C
代码int main(void) {
浏览 9
提问于2021-12-24
得票数 0
2
回答
汇编-- syscall写返回-38,没有输出
linux
、
assembly
、
system-calls
我正在尝试学习一些
程序
集
,我从将文本输出到屏幕开始。我开始认为这可能是我
的
环境
和
/或
编译
:到目前为止,我非常沮丧,因为我确实已经复制了
程序
集
代码,但它就是不
调用
系统
调用
。下面是源代码(主要来自)msg: .ascii "
Hello
World
\n"main: movq$
浏览 0
提问于2017-08-03
得票数 0
回答已采纳
1
回答
如何
编译
这个
程序
集
代码?
c
、
gcc
、
assembly
我在维基百科(意大利语)页面上找到了关于“组装”
的
代码,并有一些描述行: MODEL SMALL .DATA HW DB "
hello
,
world
", 13用<e
浏览 2
提问于2015-03-10
得票数 0
回答已采纳
2
回答
fputs是否比格式(“%s”,.)更有效?
c
、
format
、
stdio
在
C
代码中,如我想知道我是否应该用以前
的
代码更清晰,但速度慢吗?或者使用更多
的
内存?我更喜欢更清晰
的
代码,但当它看起来像是在愚蠢地浪费时间
和
内存时,我就不喜欢了。 我想知道
编译
器检测到了这样
的
情况,并且没有在运行时完成必要
的
格式解析和解释。毕竟,
gcc
在
printf
("&q
浏览 4
提问于2014-12-30
得票数 3
回答已采纳
3
回答
GCC
的
asm扩展版
gcc
、
assembly
、
inline-assembly
该函数可以采用四个参数:汇编代码、输出列表、输入列表
和
覆盖列表. 我
的
问题是,是覆盖列表中
的
寄存器
将归零吗?以前在那里
的
值发生了什么变化(来自其他正在执行
的
代码)。Update:到目前为止,在考虑我
的
答案时(谢谢!),我想补充
的
是,虽然一个
寄存器
列在了clobber列表中,但它(在我
的
例子中)正在pop (popl)命令中使用。没有其他参考资料。
浏览 9
提问于2009-06-30
得票数 4
回答已采纳
7
回答
定义为int但在正文中没有返回语句
的
C
函数仍然
编译
。
c
、
compilation
假设您有这样
的
C
代码:
printf
("
Hello
,
world
!\n");} 它与
gcc
一起
编译
得很好,输出(在我
的
系统上)是:14 但是..。但是..。我认为
C
不会让您
编译</em
浏览 9
提问于2010-11-23
得票数 18
回答已采纳
1
回答
为什么
GCC
不能
编译
由
CLANG生产
的
程序
集
?
assembly
、
gcc
、
clang
、
x86-64
、
gnu-assembler
因此,我注意到CLANG产生
的
程序
集
不能与
GCC
一起
编译
。例如,一个简单
的
“你好世界!”
程序
在
C
中,CLANG生成以下
程序
集
: .file "
hello
.
c
" .globl main # -- Begin function
world
!但是,当我试图用
gcc<
浏览 6
提问于2020-06-17
得票数 1
回答已采纳
1
回答
Noob ASM问题
gcc
、
assembly
、
x86
、
x86-64
为什么
test.s不能工作 在我
的
C
程序
中,main被定义为main(int,char ** argv),不是吗?因此,如果我不需要这些参数,那么在开始时不需要pop两次吗?S(我想这是在1中回答
的
,但如果不是.)通过更改
寄存器
来
调用
printf
,而不是将内容推到
堆栈
上。我想这是因为它更快?当
调用
c
函数时,您如何知道什么时候应该这样做,以及按什么顺序执行?我知道
printf
<e
浏览 4
提问于2013-05-14
得票数 0
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
只有170字节,最小的64位Hello World程序这样写成
栈溢出原理浅析
想要速成C 语言?除了时光机,这是迄今为止我知道的最容易的……
C程序代码编译、运行全过程解析
关于编程语言的思考—编译型和解释型
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券