计算机组成原理实验报告二-认识汇编语言

news2024/9/21 1:28:55

实验资料:
https://wwpv.lanzoue.com/b05drqjef
密码:d19t

  1. 使用txt文档编写下面C源码,文档命名为【学号_hello.c】并使用Mingw工具(是
    Minimalist GNU for Windows的缩写)的bin文件夹下gcc.exe带选项编译(),打开文件后截图。
#include<stdio.h>
#define A 1000
int main()
{
	printf("hello_%d",A);
	return 0;
}
选项生成的文件后缀名打开生成文件截图
gcc.exe -E xx.c.i预处理
gcc.exe -S xx.c.s编译
gcc.exe -c xx.c.o汇编
gcc.exe xx.c -o xx.exe.exe链接
gcc.exe xx.c -v.txt版本信息

注意:第一至四个命令的实际使用参考下图
编译c程序
参考:
GCC编译常用命令
C语言编译 - gcc 编译指令
gcc 编译命令详解及最佳实践
C语言的编译过程详解

步骤一:打开DOS窗口:
按住shift+鼠标右键,选择“在此处打开XXXX窗口”

步骤二:认识Gcc的常用选项
-E *.i 预处理后的文件
-S *.s 汇编文件
-c *.o 目标文件object(二进制)
  hello.o + printf.o + math.o = *.exe
  printf.o + math.o+… 打包成库文件
-o 指定生成想要的EXE文件名
-v

步骤三:敲以下命令
.\gcc.exe .\2100130499_hello.c -E (显示到屏幕上)
.\gcc.exe .\2100130499_hello.c -E > 2100130499_hello.i (将屏幕上的内容重定向到txt中)
.\gcc.exe .\2100130499_hello.c -v (显示版本信息到屏幕上,无法直接重定向)
.\gcc.exe .\2100130499_hello.c -v 2>&1 > 2100130499_vhello.txt(需要加2>&1再重定向)
.\gcc.exe .\2100130499_hello.c (自动生成可执行文件a.exe)
.\gcc.exe .\2100130499_hello.c -o 改成你的学号.exe (指定生成特定文件名的exe)
注:-c -S 等选项会自动生成

  1. 用txt文件软件打开【学号_hello.s】汇编文件,将汇编语句的”hello”改成”Kitty”(修改后截图),并使用gcc.exe 学号_hello.s -o 学号_Kitty.exe,在DOS界面中运行学号_Kitty.exe,运行效果截图
    参考截图:
    修改汇编
    运行程序

  2. 拷贝下面1到10的累加C源码到【学号_sum.c】,
    (1) 使用gcc.exe 学号_sum.c -O0 -S -o 学号_sum_O0.s,查看生成的文件,截图
    (2) 使用gcc.exe 学号_sum.c -O2 -S -o 学号_sum_O2.s,查看生成的文件,截图
    (3) 比较-O0和-O2生成的汇编文件中main函数代码行数,截图上分别写明行数。

#include<stdio.h>
int main()
{
	int i, sum = 0;
	for( i = 1; i < 10; i++)
	{
		   sum += i;
	}
	printf(“sum=%d”,sum);
	return 0;
}

(1)
(2)

  1. 下载附件中的“2100130499.exe”。安装并使用ultraEdit软件,强制修改文件将打印的”2100130499”修改成“你自己的学号”,并截图在ultraEdit软件修改的部分(用红色框框定),以及在DOS中修改前1次及修改后2次的运行截图。

    附件:2100130499.exe
    注释:直接搜索 20130499 ,如下图所示,然后在点击右侧的字符串,修改为自己的学号
    查找

  2. (实验三内容-有兴趣的同学提前做)下载附件中的“2100130499VIP.exe”。安装并使用ultraEdit软件,强制将修改文件中的if…else分支语句,将”2100130499普通会员”修改成“你自己的学号VIP”,并截图在ultraEdit软件修改的部分(用红色框框定),以及在DOS中修改前1次及修改后2次的运行截图。

请参考 计算机组成原理实验三-修改二进制文件的程序改变最终运行结果 第二个问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/548030.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JUC之线程池的标准创建方式

文章目录 JUC之线程池的标准创建方式核心和最大线程数量空闲时长(keepAliveTime)线程工厂(ThreadFactory)任务阻塞队列线程池的拒绝策略线程池的任务调度流程 JUC之线程池的标准创建方式 ​ 因为使用Executors快捷创建线程池在使用时会有严重的潜在问题&#xff0c;因此在实战…

数据结构——队列的实现(细就完事了)

1.队列 1.1队列的概念和结构 今天我们要是实现的队列是完全相反的&#xff0c;队列是数据先进先出。而在栈中我们使用的顺序表(数组)来实现的。而队列却用单链表来实现是更加合适的。 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行数据操作的特殊线…

【王道·计算机网络】第六章 应用层【未完】

一、基本概念 1.1 应用层概述 应用层对应用程序的通信提供服务应用层协议定义&#xff1a; 应用进程交换的报文类型&#xff0c;请求还是响应?各种报文类型的语法&#xff0c;如报文中的各个字段及其详细描述字段的语义&#xff0c;即包含在字段中的信息的含义进程何时、如何…

这是关于“树先生“的故事

《数据结构专栏》 文章目录 《数据结构专栏》一、认识树结构如何遍历树如何创建一个树&#xff1f;如何判断一颗树是否是完全二叉树&#xff1f; 二、树的简单算法——递归1.相同树2.镜像树3.单值二叉树 总结 一、认识树结构 树的定义&#xff1a;树是指由N&#xff08;N>0…

高效研发团队都在看!一套方法论带你找到适合自己的效能提升路径

近日&#xff0c;ONES 受邀参加 2023 QECon 全球软件质量&效能大会&#xff08;深圳站&#xff09;。在会上&#xff0c;ONES 研发效能改进咨询顾问陈仪&#xff0c;发表了主题为《如何为研发团队打造专属的效能提升路径》的演讲。 陈仪有着丰富的咨询经验&#xff0c;曾带…

Netty核心技术二--BIO编程

1. I/O模型 I/O 模型简单的理解&#xff1a;就是用什么样的通道进行数据的发送和接收&#xff0c;很大程度上决定了程序通信的性能 Java共支持3种网络编程模型/IO模式&#xff1a;BIO、NIO、AIO Java BIO &#xff1a;同步并阻塞(传统阻塞型)&#xff0c;服务器实现模式为一个…

C++每日一练:饿龙咆哮-逃离城堡(避坑指南)非负整数求和

文章目录 前言一、题目二、解题代码及思路1、思路2、代码 三、非负整数求和总结 前言 饿龙这一题要说难度嘛&#xff0c;还真是挺简单的&#xff0c;但要满分也是有坑的&#xff01;本文就记录了笔者解题过程&#xff0c;希望能对读者使用C编程有所启发。至于非负整数求和代码…

RocketMQ集群环境部署

文章目录 1. 准备环境2. 修改主机名3. 免密登录配置4. 配置RocketMQ集群5. 搭建RocketMQ集群6. 启动集群 1. 准备环境 准备好三台虚拟机&#xff0c;下面是我的虚拟机的一些基本信息 名称ip地址worker010.117.33.135worker110.117.39.202worker210.117.9.52 三台虚拟机都已经…

Windows下nginx的配置与启动

一&#xff0c;下载 http://nginx.org/&#xff0c;打开官网&#xff0c;点击download 选择下载稳定版 二&#xff0c;解压 1&#xff0c;解压到硬盘某个目录 2&#xff0c;由于80端口被占用&#xff0c;于是我要修改conf目录下的nginx.conf文件 查看端口是否被占用 net…

路径规划算法:基于蝴蝶算法的路径规划算法- 附代码

路径规划算法&#xff1a;基于蝴蝶优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于蝴蝶优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法蝴蝶…

【C++】类和对象(上):带你速度了解什么是类,如何定义类!!

前言&#xff1a; 前面我们学习C一些基础的内容&#xff0c;也可以说C针对C语言的缺陷进行改进。而今天我们要学的是C的内容也就是类和对象。 一、初识类&#xff1a; 我们先来看看C语言解决一个问题的过程&#xff1a; 假设有以下这个场景&#xff1a;你需要手洗一件衣服&am…

算法Day09 | KMP,28. 实现 strStr() ,459.重复的子字符串

Day09 KMP28. 实现 strStr()459.重复的子字符串 KMP KMP是三个人人名缩写&#xff0c;用于在文本字符串text中搜索pattern字符串&#xff0c;返回在text中第一出现的位置。 算法做法就是在暴力匹配的基础上加速匹配。通过对pattern字符串求next数组(该数组也成为前缀表)&#…

element ui 表格内嵌图片预览展示样式问题 (element plus)

❤️砥砺前行&#xff0c;不负余光&#xff0c;永远在路上❤️ 目录 前言一、问题二、解决 前言 一、问题 二、解决 添加上preview-teleported 属性即可。

ChatGPT ✖️ 前端 = 有点er意思

HOT! HOT! HOT! &#x1f525; &#x1f525; &#x1f525; ChatGPT登上了国内各大平台的热搜榜&#xff0c;应该在去年11月末的时候就有不少同学了解并使用过&#xff0c;那个时候它刚刚问世&#xff0c;在互联网圈子里有了很大的热度&#xff0c;但是对于大众来说&#xff…

OpenGLES读写图像数据(内存与GPU)——使用PBO

一、什么是PBO 在 OpenGL 开发中&#xff0c;特别是在低端平台上处理高分辨率的图像时&#xff0c;图像数据在内存和显存之前拷贝往往会造成性能瓶颈&#xff0c;而利用 PBO 可以在一定程度上解决这个问题。 PBO &#xff08;Pixel Buffer Object&#xff09;是 OpenGL ES 3.…

iOS开发提效cocoapods插件cocoapods-util

cocoapods-util介绍 cocoapods-util是一个iOS开发提效的cocoapods插件。 取名util的原因是我想做一个通用的插件&#xff0c;把一些iOS中常用的命令或问题整理起来。 插件中除了package命令是根据cocoapods-packager插件做了修改而来&#xff0c;其余命令都是属于自己总结开…

uwb高精度定位系统源码 UWB高精度定位技术原理与实现

uwb高精度定位系统 UWB高精度定位技术原理与实现 近些年物联网产业高速发展&#xff0c;越来越多的物联网终端连上了网络&#xff0c;实现了人与物&#xff0c;甚至物与物之间的互连互通。随着智能化要求的进一步提高和物联网应用的进一步拓展&#xff0c;除了互联互通&#x…

Doxygen源码分析:doxygen执行过程的拆解

Doxygen源码分析&#xff1a;doxygen执行过程的拆解 2023-05-19 23:09:17 ~ 2023-05-20 16:38:13 ChrisZZ imzhuofoxmailcom Hompage https://github.com/zchrissirhcz 文章目录 Doxygen源码分析&#xff1a;doxygen执行过程的拆解1. doxygen 版本2. doxygen 可执行程序的入口…

System V方案 — 共享内存

目录 System V方案 — 详述共享内存共享内存共享内存的原理共享内存数据结构共享内存函数实例 消息队列消息队列数据结构消息队列函数创建删除 信号量信号量数据结构信号量函数创建删除 进程互斥 总结 System V方案 — 详述共享内存 SystemV标准的进程间通信方式&#xff0c;是…

【react 全家桶】react-Hook(上)

本人大二学生一枚&#xff0c;热爱前端&#xff0c;欢迎来交流学习哦&#xff0c;一起来学习吧。 <专栏推荐> &#x1f525;&#xff1a;js专栏 &#x1f525;&#xff1a;vue专栏 &#x1f525;&#xff1a;react专栏 文章目录 14【react-Hook &#xff08;上&#x…