栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

ZUCC

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ZUCC

浙江大学城市学院实验报告 一、实验目的:

了解Linux汇编语言的基本语法、汇编语言的编写、调试技巧

二、实验内容:
  1. 用给定的hello.s和test.s练习linux汇编语言的汇编、链接、执行、调试过程。
  2. 采用eax,ebx,ecx,edx四个寄存器存放数据10,20,30,40,编程完成10+20+30+40,结果存放在eax,写出完整的可执行汇编程序代码,并采用gdb调试,查看寄存器结果。
三、实验步骤 1、用给定的hello.s和test.s练习linux汇编语言的汇编、链接、执行、调试过程。

hello.s

#hello.s 
.data                    # 数据段声明
        msg : .string "Hello, world!n" # 要输出的字符串
        len = . - msg                   # 字串长度
.text                    # 代码段声明
.global _start           # 指定入口函数
        
_start:                  # 在屏幕上显示一个字符串
        movl $len, %edx  # 参数三:字符串长度
        movl $msg, %ecx  # 参数二:要显示的字符串
        movl $1, %ebx    # 参数一:文件描述符(stdout) 
        movl $4, %eax    # 系统调用号(sys_write) 
        int  $0x80       # 调用内核功能
        
                         # 退出程序
        movl $0,%ebx     # 参数一:退出代码
        movl $1,%eax     # 系统调用号(sys_exit) 
        int  $0x80       # 调用内核功能



test.s

#test.s 
.text                    # 代码段声明
.global _start           # 指定入口函数
        
_start:               # 完成5+8
	  movl $5,%eax    #立即数5送入寄存器eax
	  movl $8,%ecx    #立即数8送入寄存器ecx
	  addl %ecx,%eax  #5+8的结果送入寄存器eax

                       # 退出程序
      movl $0,%ebx     # 参数一:退出代码
      movl $1,%eax     # 系统调用号(sys_exit) 
      int  $0x80       # 调用内核功能



2、采用eax,ebx,ecx,edx四个寄存器存放数据10,20,30,40,编程完成10+20+30+40,结果存放在eax,写出完整的可执行汇编程序代码,并采用gdb调试,查看寄存器结果。

源码:

#include
extern int add(int a, int b);
extern int add1;
extern int add2;

int main()
{
        printf("add is %dn", add(add1, add2));
        printf("add is %dn", add(40, 30));
        return 0;
}
.data
.globl add1
.globl add2
add1: .int 10
add2: .int 20

.text
.code32
.globl add



add:
        movl 0x8(%esp),%eax
        movl 0x4(%esp),%ebx
        add %ebx,%eax
        ret

调试过程:

四、思考题(必做) 查资料,了解汇编语言的应用场合。

汇编语言的特点:

  1. 面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。
  2. 保持了机器语言的优点,具有直接和简捷的特点。
  3. 可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。
  4. 目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。
  5. 经常与高级语言配合使用,应用十分广泛。

汇编语言的应用:

  1. 70%以上的系统软件是用汇编语言编写的。
  2. 某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。
  3. 某些高级绘图程序、视频游戏程序是用汇编语言编写的。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/461202.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号