计算机组成原理实验报告二-认识汇编语言
实验资料:
https://wwpv.lanzoue.com/b05drqjef
密码:d19t
- 使用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 | ![]() |
注意:第一至四个命令的实际使用参考下图

参考:
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 等选项会自动生成
-
用txt文件软件打开【学号_hello.s】汇编文件,将汇编语句的”hello”改成”Kitty”(修改后截图),并使用gcc.exe 学号_hello.s -o 学号_Kitty.exe,在DOS界面中运行学号_Kitty.exe,运行效果截图。
参考截图:


-
拷贝下面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;
}


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

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

-
(实验三内容-有兴趣的同学提前做)下载附件中的“2100130499VIP.exe”。安装并使用ultraEdit软件,强制将修改文件中的if…else分支语句,将”2100130499普通会员”修改成“你自己的学号VIP”,并截图在ultraEdit软件修改的部分(用红色框框定),以及在DOS中修改前1次及修改后2次的运行截图。
请参考 计算机组成原理实验三-修改二进制文件的程序改变最终运行结果 第二个问题
相关文章:
计算机组成原理实验报告二-认识汇编语言
实验资料: https://wwpv.lanzoue.com/b05drqjef 密码:d19t 使用txt文档编写下面C源码,文档命名为【学号_hello.c】并使用Mingw工具(是 Minimalist GNU for Windows的缩写)的bin文件夹下gcc.exe带选项编译()…...
都说计算机今年炸了,究竟炸到什么程度呢?
近期,最大的计算机领域新闻莫过于Intel CPU严重漏洞曝光。该漏洞被称为“Meltdown”和“Spectre”,几乎涵盖了所有使用Intel芯片的计算机,包括PC、笔记本电脑、服务器和移动设备。 Meltdown漏洞的主要风险是黑客可以利用此漏洞访问操作系统的…...
0Ω的电阻作用
0欧姆电阻即电阻标值为0欧姆的电阻,多用于PCB设计等方面,是一种理想电阻。那0欧姆电阻是表示没有电阻吗?当然不是,0欧姆电阻的阻值不是0欧姆,只是接近0欧姆。 1、调试方便或者兼容设计:可以选择器件、功能…...
02 PostGIS常用空间分析函数
常用的PostGIS空间分析函数清单: 序号函数名描述示例1ST_AsText(geometry)将几何对象转换为文本形式的WKT字符串ST_AsText(ST_GeomFromText(‘POINT(1 2)’)) 返回 ‘POINT(1 2)’2ST_GeometryType(geometry)返回几何对象的类型,如POINT、LINESTRING、P…...
[Golang] 管理日志信息就用Zap包
😚一个不甘平凡的普通人,致力于为Golang社区和算法学习做出贡献,期待您的关注和认可,陪您一起学习打卡!!!😘😘😘 🤗专栏:算法学习 &am…...
【pytest】执行环境切换的两种解决方案
一、痛点分析 在实际企业的项目中,自动化测试的代码往往需要在不同的环境中进行切换,比如多套测试环境、预上线环境、UAT环境、线上环境等等,并且在DevOps理念中,往往自动化都会与Jenkins进行CI/CD,不论是定时执行策略…...
2023国赛tomcat题
环境: 10.10.120.128 安装 tomcaA 10.10.120.129 安装tomcatB 10.10.120.130 安装 nginx 配置dns: 正向解析 反向解析 Tomcat ssl配置 [root@localhost ~]# tar -zxvf jdk-11.0.8_linux-x64_bin.tar.gz [root@localhost ~]# mv jdk-11.0.8 /usr/local/ Vim /etc/profile …...
计算机视觉——day 92 基于跨领域协作学习的单图像去雨
基于跨领域协作学习的单图像去雨 1. Introduction3. Proposed method3.1 网络架构 4. Experiments and results4.1 数据集和指标4.3 合成图像的结果4.8 建模复杂度和运行时间 5. Conclusion 1. Introduction 深度卷积神经网络(DCNN)在图像解析任务中取得了优异的性能。然而&am…...
Java 正则表达式
Java 正则表达式 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。 示例 boolean b String.matches(String regex) ;regex 有2种形式: 字符串 直接就是一…...
Oracle索引知识看这一篇就足够
🏆 文章目标:本篇介绍Oracle索引知识以及案例场景 🍀 Oracle索引知识看这一篇就足够 ✅ 创作者:Jay… 🎉 个人主页:Jay的个人主页 🍁 展望:若本篇讲解内容帮助到您,请帮忙…...
kafka命令行操作
新老版本kafka命令行操作 啓動Kafka: kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties Kafka命令行操作 查看当前集群中已存在的主题topic 旧的方式 kafka-topics.sh --zookeeper bdphdp01:2181 --list kafka-topics.sh --zookeeper bdphd…...
Pinia 上手使用(store、state、getters、actions)
参考链接:https://juejin.cn/post/7121209657678364685 Pinia官方:https://pinia.vuejs.org/zh/introduction.html 一、安装 npm i pinia -S二、main.js 引入 import { createApp } from "vue" import App from "./App.vue" impor…...
C++小项目之文本编辑器mynote(1.0.0版本)
2023年5月19日,周五晚上: 今天晚上突然想写一个运行在命令行上的文本编辑器,因为平时写文本时老是要创建新的文本文件,觉得太麻烦了。捣鼓了一个晚上,才选出一个我觉得比较满意的。我把这个程序添加到了系统环境变量中…...
人工智能的界面革命,消费者与企业互动的方式即将发生变化。
本文来源于 digitalnative.substack.com/p/ais-interface-revolution 描述了一种社会现象: 随着真实友谊的减少和虚拟友谊的增加,越来越多的人开始将AI聊天机器人视为自己的朋友,甚至建立了深厚的情感纽带。这可能与当前人们越来越孤独的现实…...
深度学习课程:手写体识别示例代码和详细注释
Pytorch 的快速入门,参见 通过两个神经元的极简模型,清晰透视 Pytorch 工作原理。本文结合手写体识别项目,给出一个具体示例和直接关联代码的解释。 1. 代码 下面代码展示了完整的手写体识别的 Python 程序代码。代码中有少量注释。在本文后…...
10-03 单元化架构设计
设计原则 透明 对开发者透明 在做实现时,不依赖于单元划分和部署对组件透明 在组件运行时,不感知其承载单元对数据透明 数据库并不知道为哪个单元提供服务 业务可分片 系统业务复杂度足够高系统可以按照某一维度进行切分系统数据必须可以被区分 业务…...
JAVA—实验3 继承与多态
一、实验目的 1.掌握类的继承机制 2.掌握抽象类的定义方法 2.熟悉类中成员变量和方法的访问控制 3.熟悉成员方法或构造方法的多态性 二、实验内容 1. Circle类及其子类 【问题描述】 实现类Circle,半径为整型私有数据成员 1)构造方法:参数为…...
TCP协议和相关特性
1.TCP协议的报文结构 TCP的全称为:Transmission Control Protocol。 特点: 有连接可靠传输面向字节流全双工 下面是TCP的报文结构: 源端口和目的端口: 源端口表示数据从哪个端口传输出来,目的端口表示数据传输到哪个端口去。…...
【SpringCloud组件——Eureka】
前置准备: 分别提供订单系统(OrderService)和用户系统(UserService)。订单系统主要负责订单相关信息的处理,用户系统主要负责用户相关信息的处理。 一、微服务当中的提供者和消费者 1.1、概念 服务提供…...
JVM面试题(一)
JVM内存分哪几个区,每个区的作用是什么? java虚拟机主要分为以下几个区: JVM中方法区和堆空间是线程共享的,而虚拟机栈、本地方法栈、程序计数器是线程独享的。 (1)方法区: a. 有时候也成为永久代,在该区内…...
《模型思维》系统动力学:从存量流量到商业决策的反馈艺术
1. 系统动力学:商业决策的隐形引擎 第一次接触系统动力学时,我正面临一个典型的产品增长困局:明明增加了市场投放预算,用户增长率却不升反降。当时团队争论不休,有人认为是渠道质量下降,有人指责产品体验变…...
Notepad++ 高效使用技巧|程序员必备的 10 个隐藏功能,提升编码效率 10 倍
一、Notepad:被低估的Windows程序员工具 很多人只把Notepad当普通文本编辑器,其实它是一款功能强大的代码编辑器,完全免费开源,搭配插件和隐藏功能,能媲美重型IDE的核心体验。先给大家附上Notepad官网,获取…...
FastAPI子应用挂载:别再让root_path坑你一夜稼
Julia(julialang.org)由Stefan Karpinski、Jeff Bezanson等在2009年创建,目标是融合Python的易用性、C的高性能、R的统计能力、Matlab的科学计算生态。 其核心设计哲学是: 高性能:编译型语言(JIT…...
AD9833 DDS信号发生器驱动设计与嵌入式实践
1. AD9833信号发生器模块底层驱动技术解析AD9833是一款由Analog Devices(ADI)推出的低功耗、可编程波形发生器芯片,采用28引脚SSOP封装,通过标准SPI接口与主控MCU通信。其核心功能是生成高精度、频率可调的正弦波、三角波和方波信…...
javaSE之图书管理系统
思路:一个图书管理系统项目的构建本次的代码是实现一个图书管理系统要求,有登入系统和用户选择系统,之后还有用户操作交换系统,和图书管理系统,具体思路如下创建以下类,加粗部分为包test:Testbo…...
FastbootEnhance:5步掌握Windows平台最强安卓刷机工具
FastbootEnhance:5步掌握Windows平台最强安卓刷机工具 【免费下载链接】FastbootEnhance A user-friendly Fastboot ToolBox & Payload Dumper for Windows 项目地址: https://gitcode.com/gh_mirrors/fa/FastbootEnhance 还在为复杂的Fastboot命令行操作…...
ArcGIS进阶:利用Python脚本在字段计算器中实现复杂条件赋值
1. 为什么需要Python脚本进行复杂字段赋值 在ArcGIS中处理属性表数据时,新手最常犯的错误就是手动逐条编辑。我曾经接手过一个项目,同事花了整整三天时间手动修改5000多条记录,结果还出现了大量错误。实际上,字段计算器(Field Ca…...
从视频到网格:基于Colmap与OpenMVS的自动化三维重建实战
1. 三维重建技术入门:从视频到网格的魔法之旅 想象一下,你手里有一段普通的手机视频,可能是绕着某个物体拍摄的简单环绕画面。通过今天要介绍的技术,这段视频可以神奇地变成一个带纹理的三维模型,就像变魔术一样。这就…...
【实战指南】利用再生龙(Clonezilla)实现Linux服务器整盘灾备
1. 为什么选择再生龙做服务器灾备? 第一次听说再生龙(Clonezilla)是在五年前,当时公司的测试服务器突然硬盘故障,整整两周的开发进度差点泡汤。从那时起我就开始研究各种系统级备份方案,试过dd命令、rsync脚…...
Lychee多模态重排序模型效果展示:T→T纯文本检索中长尾query高分匹配案例
Lychee多模态重排序模型效果展示:T→T纯文本检索中长尾query高分匹配案例 1. 引言:当搜索遇到“冷门”问题 想象一下,你在网上搜索一个非常具体、甚至有点冷门的问题。比如,你想知道“如何用Python代码实现一个能识别手写数字的…...





