小编Ste*_*mas的帖子

在程序集中添加两个数字

我刚刚开始组装,我想创建一个简单的程序,添加两个数字并打印结果

这是我到目前为止:

.globl main
   .type main, @function
main:
   movl $14, %eax
   movl $10, %ebx
   add %eax, %ebx
call printf
Run Code Online (Sandbox Code Playgroud)

根据我的理解,这里是逐行发生的事情

第1行:我正在创建一个可以由链接器访问的标签main

第2行:我正在为函数指定标签main的类型

第3行:我开始对main进行定义

第4行:我将数值14存储到通用寄存器eax中

第5行:我将数值10存储到通用寄存器ebx中

第6行:我在eax和ebx上添加值并将结果存储在ebx中

第7行:我调用函数printf(这里是我感到困惑的地方)

如何指定打印寄存器的值?

另外,如何完成此程序,目前运行时,程序会导致分段错误?

c linux assembly cpu-registers

0
推荐指数
1
解决办法
1675
查看次数

标签 统计

assembly ×1

c ×1

cpu-registers ×1

linux ×1