ZUCC_计算机系统原理实验_实验八 Linux汇编语言初步
浙江大学城市学院实验报告
一、实验目的:
了解Linux汇编语言的基本语法、汇编语言的编写、调试技巧
二、实验内容:
- 用给定的hello.s和test.s练习linux汇编语言的汇编、链接、执行、调试过程。
- 采用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+8movl $5,%eax #立即数5送入寄存器eaxmovl $8,%ecx #立即数8送入寄存器ecxaddl %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<stdio.h>
extern int add(int a, int b);
extern int add1;
extern int add2;int main()
{printf("add is %d\n", add(add1, add2));printf("add is %d\n", add(40, 30));return 0;
}
.data
.globl add1
.globl add2
add1: .int 10
add2: .int 20.text
.code32
.globl add/*
0x8(%esp)=b
0x4(%esp)=a
*/add:movl 0x8(%esp),%eaxmovl 0x4(%esp),%ebxadd %ebx,%eaxret
调试过程:
四、思考题(必做)
查资料,了解汇编语言的应用场合。
汇编语言的特点:
- 面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。
- 保持了机器语言的优点,具有直接和简捷的特点。
- 可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。
- 目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。
- 经常与高级语言配合使用,应用十分广泛。
汇编语言的应用:
- 70%以上的系统软件是用汇编语言编写的。
- 某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。
- 某些高级绘图程序、视频游戏程序是用汇编语言编写的。
ZUCC_计算机系统原理实验_实验八 Linux汇编语言初步相关推荐
- 微型计算机系统原理及应用实验,微型计算机系统原理及应用实验报告 .doc
微型计算机系统原理及应用实验报告 微型计算机系统 原理及应用 ---实验报告--- 实验题目: 8255并行接口 学 院: 信息科学与技术学院 班 级: 姓 名: 学 号: 一.实验目的 学习和掌握8 ...
- cmi编码实验_实验二 - 光纤通信系统线路码型CMI - 编译码实验 - 图文 -
实验二 光纤通信系统线路码型CMI 编译码实验 一.实验目的 1.了解线路码型在光纤传输系统中的作用 2.掌握线路码型CMI码的编译码过程以及电路实现原理 二.实验内容 1.验证符合光纤传输系统的线路 ...
- java基本语句回文数实验_实验二 java基本数据类型与把持语句.doc
实验二 java基本数据类型与把持语句.doc 还剩 4页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 5System.out.println(num ...
- ZUCC_计算机系统原理实验_大作业 bomb 破解
浙江大学城市学院实验报告 一.实验目的: 综合掌握程序的机器级表示以及汇编逆向调试过程. 二.实验内容: 二进制炸弹是作为一个目标代码文件提供给学生们的程序,运行时,它提示用户输入6个不同的字符串.如 ...
- ZUCC_计算机系统原理实验_实验五 位运算
浙江大学城市学院实验报告 一.实验目的: 了解高级语言中数据类型的转换和移位操作结果,从而能更好地理解指令系统设计和计算机硬件设计所需满足的要求和需要考虑的问题: 二.实验内容: 编写程序,完成实验讲 ...
- ZUCC_计算机系统原理实验_实验四 数据的存储
浙江大学城市学院实验报告 一.实验目的: 掌握计算机内部数据存储相关的概念:地址和内容: 掌握常见数据类型的存储宽度: 掌握计算机内部数据存储的顺序: 掌握计算机内部数据存储的对齐方式. 二.实验内容 ...
- ZUCC_操作系统原理实验_实验九 消息队列
操作系统原理实验报告 课程名称 操作系统原理实验 实验项目名称 实验九 消息队列 实验目的 了解 Linux 系统的进程间通信机构 (IPC): 理解Linux 关于消息队列的概念: 掌握 Linux ...
- ZUCC_计算机网络实验_实验01 实验一RJ45原理与制作
浙江大学城市学院实验报告 一.实验目的 掌握网线制作和测试方法,了解标准568A与568B网线的线序,掌握直通双绞线和交叉双绞线的做法. 二.实验内容 1.直通双绞线的制作 2.交叉双绞线的制作 3. ...
- ZUCC_计算机网络实验_实验09 网络基本命令
浙大城市学院实验报告 一. 实验目的和要求 熟悉Windows平台下常用网络命令的使用: arp, ftp, ipconfig, nbtstat, net, netstat, ping, route, ...
最新文章
- linux下samba病毒,Samba 用户模拟漏洞(CVE-2016-2125)
- 剖析IE浏览器子系统的性能权重
- OpenStack精华问答 | OpenStack是云吗?
- 北京大学计算机复试分数线,2014北京大学考研复试分数线公布
- 有向有权图的电阻------给你出道题
- 心理学专业学要学计算机吗,心理学专业学什么 都有哪些课程
- 计算机学院网络与新媒体,网络与新媒体专业课程描述.PDF
- PAT (Basic Level) Practice1024 科学计数法
- [置顶] 63行代码完美实现html5 贪吃蛇游戏
- 网页聊天室php无数据库_无需数据库的PHP聊天室程序
- 从零开始足球战术分析
- 999系统可用性时间表
- UG二次开发-加工篇:获取刀具的直径,总长,刃长等
- 计算机c盘无法扩展,C盘不够大怎么办 怎么扩展C盘容量合并硬盘分区
- app store生存之道
- 哈工大软件构造期末复习(根据老师复习提纲整理)
- 云运维给企业带来的价值
- attention mechanism in computer vision(1)——channel attention
- 浅谈托福阅读备考中的惯性思维
- 基于stm32f103zet6之NRF905无线模块的学习
热门文章
- 日更 - 摄影学习,一些关于摄影的细碎概念
- 快讯:奥运会开幕式主题歌将由刘欢和莎拉•布莱曼演唱
- VS创建和使用C++静态链接库教程
- [转]google工具大全
- 《小狗钱钱》读后感及总结的一点方法
- 【C】字符串库函数及重点函数的模拟实现(下)—— strstr | strtok | strerror
- 中国有机化学原料制造行业运行分析及投资前景研究报告2022-2028年
- 选频方波放大电路设计
- 2019年9月-最新1000个国内普通代理ip
- Smart “Predict, then Optimize”