您尚未登录。

#1 2013-05-20 08:07:27

Mosalut
会员
注册时间: 2012-04-06
帖子: 53

一个编程问题困惑着我

闲话休多 上代码:

.section .data
    value:
        .long 1
.section .text
    .globl _start
    _start:
        nop
        movq value, %rcx
        movq $1, %rax
        movq $0, %rbx
        int $0x80

为何%rcx最终的结果不是1而是 0x1 0000 0001

而把.long换成.int 把rcx 改成ecx movq改成movl 就对了 书上就是这样的 但那是32位的教程 我是64的机器所以想这个样改 网上说movq是64位移动命令 不知到是不是真的

离线

#2 2013-05-20 10:18:04

Mosalut
会员
注册时间: 2012-04-06
帖子: 53

Re: 一个编程问题困惑着我

我弄好了 原来是 .quad 我之前把 .quad定义8个字节的数据 看成8位数据了 所以没有留意他

离线

#3 2013-05-21 09:54:34

reverland
root
注册时间: 2012-02-04
帖子: 356
个人网站

Re: 一个编程问题困惑着我

可以先用32位的 用gcc 加上-m32参数。


>>>>>>>>>jekyll博客>>>>>>>>>>
<<<<<<<<<更残念的vimwiki<<<<<<<<<
本人vim控,偏偏喜欢lisp

离线

#4 2013-05-21 18:23:57

Mosalut
会员
注册时间: 2012-04-06
帖子: 53

Re: 一个编程问题困惑着我


我是用as编译 ld链接的 -m32 和 文件开头加上.code32 效果一样嘛?

离线

页脚