计算机系统结构与操作系统实验三(5)-中断

news2025/1/10 23:40:17

📍实验要求

将中断处理程序放到C里编写

📍实验过程

鉴于代码相比之前,多出了很多配套的固定代码,因此代码量和代码中来突增,本文就不再一个一个贴代码了,需要的直接去看我上传在csdn的代码吧(文末有链接)

文件结构
在这里插入图片描述
主要看interrupt中的异常处理和makefile文件中的编译命令改动
在这里插入图片描述在这里插入图片描述
makefile👇

.PHONY:build burn

mbr_source=boot/mbr.S
mbr_target=boot/mbr.bin
loader_source=boot/loader.S
loader_target=boot/loader.bin
hard_disk=/home/lhj/Public/bochs/bin/hd60M.img

build:
		nasm -I boot/include/ -o $(mbr_target) $(mbr_source)
		nasm -I boot/include/ -o $(loader_target) $(loader_source)
		gcc -m32 -I lib/kernel -m32 -I lib/ -m32 -I kernel/ -c -fno-builtin -o build/main.o kernel/main.c
		gcc -m32 -I lib/kernel -m32 -I lib/ -m32 -I kernel/ -c -fno-builtin -o build/interrupt.o kernel/interrupt.c
		gcc -m32 -I lib/kernel -m32 -I lib/ -m32 -I kernel/ -c -fno-builtin -o build/init.o kernel/init.c
		nasm -f elf -o build/print.o lib/kernel/print.S
		nasm -f elf -o build/kernel.o kernel/kernel.S
		ld -m elf_i386 -Ttext 0xc0001500 -e main -o build/kernel.bin build/main.o build/init.o build/interrupt.o build/print.o build/kernel.o
burn:
		dd if=$(mbr_target) of=$(hard_disk) bs=512 count=1 conv=notrunc
		dd if=$(loader_target) of=$(hard_disk) bs=512 count=3 seek=2 conv=notrunc
		dd if=./build/kernel.bin of=$(hard_disk) bs=512 count=200 seek=9 conv=notrunc

📍一键运行

更改run.sh
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

📍遇到的小问题

1.缺少相关库,需要完善编译环境
在这里插入图片描述
解决方法:Ubuntu 编译出现fatal error: bits/libc-header-start.h: No such file or directory

本实验所有源码👉👉👉计算机系统结构与操作系统实验三bochs源代码

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

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

相关文章

音视频绕不开的话题之WebRTC

什么是WebRTC? 闲来无事,我们今天探讨下音视频绕不开的一个话题:WebRTC。WebRTC之于音视频行业,无异于FFMpeg,可以说WebRTC的开源,让音视频行业大跨步进入发展快车道。 WebRTC是一个支持实时音视频通信的开…

mac系统终端运行python文件

1.在要运行的python文件首行里添加python解释器路径代码 代码: #!/usr/bin/env python3 注意:上面代码中的python3是对应当前的python版本 例子: 2.复制要运行的python文件位置,在终端使用代码进入要运行的文件位置 终端运行代码&…

架构训练营3:架构设计流程和架构师职责

架构师相关职责: 架构师是业务和技术之间的桥梁,架构师不能只顾技术,不懂业务,架构师很容易两头不讨好 三个核心能力: 判断:1业务理解力2.技术能力3.沟通能力 拆解:1技术深度2.技术宽度3.技术…

出差在外,远程访问企业局域网象过河ERP系统【内网穿透】

文章目录 概述1.查看象过河服务端端口2.内网穿透3. 异地公网连接4. 固定公网地址4.1 保留一个固定TCP地址4.2 配置固定TCP地址 5. 使用固定地址连接 概述 ERP系统对于企业来说重要性不言而喻,不管是财务、生产、销售还是采购,都需要用到ERP系统来协助。…

抖音seo软件技术开发源码搭建部署

抖音SEO矩阵系统源码开发流程分为以下几个步骤: 1.需求分析 在开发抖音SEO矩阵系统源码之前,首先需要对用户的需求进行分析,确定开发的功能和特性。 2.架构设计 根据需求分析的结果,进行架构设计,确定系统的整体框…

模型压缩-裁剪、量化、蒸馏

模型压缩是一种缩小神经网络结构和参数的技术。 压缩的模型在使用少量计算资源 的情况下,使其性能与原始模型近似;常见包括剪枝、量化、蒸馏、神经结构搜索(NAS)等 ##模型压缩与工程部署关注的常用参数1)模型大小 一般使用参数量parameter来衡…

Acwing算法基础 前缀和 差分 双指针 位运算 离散化

前缀和与差分 AcWing 795. 前缀和 import java.util.*; public class Main{public static void main(String[] args ){Scanner scnew Scanner(System.in);int nsc.nextInt();int msc.nextInt();int[] arrnew int[n1];arr[0]0;for(int i1;i<n;i) {arr[i]sc.nextInt()arr[i-1…

【从零开始学CSS | 第二篇】伪类选择器

目录 前言&#xff1a; 伪类选择器&#xff1a; 常见的伪类选择器&#xff1a; 举例&#xff1a; 小窍门&#xff1a; 总结: 前言&#xff1a; 上一篇文章我们详细的为大家介绍了一些常见的选择器&#xff0c;这几篇我们将再次介绍CSS中的一个常见选择器——伪类选择器&am…

flutter开发实战-css的linear-gradient的值转换成LinearGradient

flutter开发实战-css的linear-gradient的值转换成LinearGradient 在开发中遇到了参照前端的css的属性值&#xff0c;需要将css的linear-gradient值转换成LinearGradient&#xff0c;这样可以直接设置相应的值。这里暂时不涉及到&#xff0c;颜色值名称、color-stop1&#xff0…

第6章 NVMe 介绍 6.1-6.3

6.1 AHCI 到 NVMe AHCI协议。NVMe协议。 HDD 和早期的 SSD 绝大多数都是使用SATA接口&#xff0c;跑的是AHCI&#xff0c;它是一种系统接口标准。 后来&#xff0c;AHCI 和 SATA 不能满足高性能和低时延 SSD 的需求&#xff0c;SSD 需要更快、更高效的协议和接口。因此 NVMe 出…

webug4.0靶场通关笔记

文章目录 注入显错注入布尔注入延时注入post注入过滤注入宽字节注入xxe注入csv注入万能密码登陆 XSS反射型xss存储型xssDOM型xss过滤xss链接注入 任意文件下载任意文件下载mysql配置文件下载 上传漏洞文件上传(前端拦截)文件上传(解析漏洞)文件上传(畸形文件)文件上传(截断上传…

layui中laydate日期组件闪动打不开问题解决

在laydate.render里配置trigger:click’就可以了&#xff08;已解决&#xff09;

路径规划算法:基于人工蜂鸟优化的路径规划算法- 附代码

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

Leetcode-每日一题【83.删除排序链表中的重复元素】

题目 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,1,2]输出&#xff1a;[1,2] 示例 2&#xff1a; 输入&#xff1a;head [1,1,2,3,3]输出&#x…

Docker 安装与基本使用

一、简介 Docker 官方文档、Docker 中文文档&#xff0c;更新会落后于官方文档 什么是 Docker ? Docker 是一个应用打包、分发、部署的工具&#xff0c;也可以把它理解为一个轻量的虚拟机&#xff0c;它只虚拟软件需要的运行环境&#xff0c;多余的一点都不要&#xff0c;而普…

jinkens编译问题

可以看到是NapaMedia 编译有问题 往上面查看 再在gerrit上看提交的这个文件。。打开看下是不是有冲突 果然有冲突 有冲突在gerrit上直接解决冲突 然后保存 updatechanges再publish edit 然后点进编译

Gym - 101652

A - Odd Palindrome 题意&#xff1a;给你一个字符串如果它的所有回文子串长度为奇数&#xff0c;输出Odd.否则输出Or not. 思路&#xff1a;其实只要判断是否有两个相连的字符就可以了 #include <bits/stdc.h> using namespace std; #define pi 3.1415926 #define X f…

STM32初识---概念了解(下)

复位和时钟控制&#xff08;RCC) 系统复位 当发生以下任一事件时&#xff0c;产生一个系统复位&#xff1a; 1. NRST引脚上的低电平(外部复位) 2. 窗口看门狗计数终止(WWDG复位) 3. 独立看门狗计数终止(IWDG复位) 4. 软件复位(SW复位) 5. 低功耗管理复位 电源复位 当以下事件中…

XML文档详解

目录 XML文档 一、XML文件 二、Dom4J解析XML文件 三、Sax解析XML文件 四、使用Dom4j的XPath解析XML文件 4.1XPath语法 4.2 获取sys-config.xml文件的配置信息 4.3 获取server.xml文件的配置信息 4.4 获取bookstore.xml文件的配置信息 XML文档 一、XML文件 1.1 学习重…

s3fs安装使用

s3fs安装使用 前言 最近在预研将对象存储桶挂载到本地文件系统的需求&#xff0c;查阅了一些相关的资料&#xff0c;找到s3fs-fuse开源组件&#xff0c;可以满足需求&#xff0c;本文主要记录一下s3fs的部署以及使用。 s3fs简介 s3fs 是一个 C 开发的开源工具&#xff0c;可…