码迷,mamicode.com
首页 > 编程语言 > 详细

深入理解程序设计使用linux汇编语言--第3章练习题

时间:2015-07-06 00:16:49      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

1.程序中的某一行以字符"#"开始意味着什么?

以字符"#"开头在汇编语言中是注释,汇编程序不会对注释进行任何处理。

2.汇编语言文件和对象代码之间有何区别?

汇编语言文件里的汇编语言是方便人类阅读的机器指令形式。机器不可读,为了将其转换为机器可读需要汇编并链接 程序。对象文件是机器语言写成的代码,机器可读的。

3.链接器有什么作用?

链接器程序把多个目标文件合而为一,并且向其中添加信息,以使内核知道如何加载和运行改目标文件。

4.如何检测你最近运行的程序的结果状态吗?

在shell环境下运行echo $?

5.指令movl $1, %eax 和movl 1, %eax有何区别?

movl $1, %eax是把1加载到寄存器%eax中

movl 1, %eax是把地址1的值加载到寄存器%eax中

6.哪一个寄存器保存系统调用号?

32的寄存器是%eax 64的寄存器是%rax

7.使用索引的目的是什么?

可以使用索引寻址

8.什么索引通常从0开始?

9.条件跳转的作用是什么?

10.编写程序应计划好哪些事?


更改第一个程序使之返回值3

.section .data
.section .text

.global _start

_start:
    movl $1, %eax
    movl $3, %ebx
    int $0x80

更改最大值程序使之返回最小值。



深入理解程序设计使用linux汇编语言--第3章练习题

标签:

原文地址:http://my.oschina.net/guonaihong/blog/474927

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!