文章目录
实验报告
课程名称:微处理器原理与应用
实验名称:CPUHomework1.1
实验时间:2022年9月11日
【实验目的】
- 掌握基本的 Masm for Windows 集成实验环境 2015的使用
- 掌握 Windows XP DOS 环境下 Masm5 的编译和运行
- 掌握 Win 11下使用 DOSBox 实现虚拟 DOS 环境,进而实现 Masm5 的编译和运行
【实验要求】
- 完成 Windows 和 DOS 环境下汇编程序的编译和执行,屏幕上显示 HelloWorld
- 了解如何在 Windows 环境下 Debug 程序,了解 寄存器的状态和单步执行程序时寄存器的存储过程
【实验具体内容】
- 理解 masm5 环境
- 对于 Hello World 程序学会两种编译方式 (DOS 方式 以及 Window 方式)
- 掌握 Masm for Windows 集成实验环境 2015 软件的使用,并使用调试方式,Debug 程序并了解程序的寄存器情况, 学习 Debug 的基本命令
【第一个实验 —— DOS方式】
1)实验源代码
STACKS SEGMENT STACK ; 栈段
DW 128 DUP(?) ; 注意这里只有 128 个字节
STACKS ENDS
DATAS SEGMENT
STRING DB 13,10,'Hello World!',13,10,'$'
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
LEA DX,STRING
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
2)实验代码、过程、相应结果(截图)并对实验进行说明和分析
- 输入 mount c: e:\microcomputer\masm5 , 进行挂载
mount:通知程序装入目录
c:告诉程序我希望新驱动器的名称
e:\microcomputer\masm5:设置为新驱动器的目录(为了方便文件管理,我将masm5文件夹移动了位置)
- 键入c: , 进入新驱动器
- 键入 dir , 查看c文件夹目录下的文件
- 为了解决每次调试程序时都要先mount一下的麻烦,对DOSBox进行配置
- 重新打开DOSBox,同时使用Alt + Enter快捷键开启全屏编辑,十分舒适(可惜全屏状态下不方便截屏),还可以打出Win11的DOS打不出的小符号,乐
- 言归正传,masm 运行一下
- hw.asm 编译一下 生成 hw.obj文件
加了个空格,编译失败,重新编译成功
- 本来想看一下目录,结果发现不行,且混入了奇怪的东西,遂重新打开目录并准备link
- link生成可执行文件并查看一下目录,键入hw直接运行
可以看到运行结果
【第二个实验 —— Masm_for_Windows 集成实验环境】
1)实验源代码
STACKS SEGMENT STACK ; 栈段
DW 128 DUP(?) ; 注意这里只有 128 个字节
STACKS ENDS
DATAS SEGMENT
STRING DB 13,10,'Hello World!',13,10,'$'
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
LEA DX,STRING
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
2)实验代码、过程、相应结果(截图)并对实验进行说明和分析
- 抄写代码至集成实验环境,保存文件并运行
成功运行!
- 调试,逐步执行
【实验心得】
- 汇编程序运行需要纯正的DOS环境,所以需要创建虚拟环境
除了使用DOSBox之外,我也尝试了使用虚拟机的方法(不务正业doge),上网查阅资料下载并安装了VMware Workstation Pro, 并主要参考 在虚拟机上安装 MS-DOS 6.22 简体中文版 (zoxoy.club) 进行 虚拟机 MS-DOS 6.22的安装,本来以为在MSDN上很方便找到操作系统的 .iso 文件,结果下载下来却是自解压的可执行文件,需要自己制作软盘镜像,所以用UltraISO开始制作文件,之后再制作网卡驱动(通过msnc),之后在安装时出现一些问题,打算之后有时间解决。
总之,这次的实验也给了我一个机会学习一下虚拟机,为后面尝试学习Linux打下了一个基础
- 关于 mount , 我们知道 Linux mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件,在此处也同理
- 此外,复习了一下之前学的DOS命令(之前写过相关的博客
常用DOS命令
#以下所有命令后都接回车
#盘符直接切换 E:
#查看当前目录下的所有文件 dir
#切换目录 cd change directory (参数斜杠/) 跨盘符/d (文件斜杠\) 加路径
#cd .. 返回上一级 cd 直接进入下一级目录
#清理屏幕 cls (clear screen)
#退出终端 exit 该命令用于退出CMD.EXE 程序
#查看电脑的ip ipconfig (配置)
#打开应用(cmd内外都可以使用) calc 打开计算器 mspaint 画图 notepad 记事本 osk 打开屏幕键盘 explorer 资源管理器
#ping 命令 测试网络是否正常 查看网站的节点信息/IP地址
ping www.baidu.com
#鼠标右键就是粘贴 (不能)使用Ctrl+V
#文件操作
md 目录名 make directory 删除指定文件夹
rd 目录名 remove directory 删除指定文件夹
cd>文件名 创建文件
del 文件名 删除指定文件
- Debug是DOS、Windows都提供的实模式程序的调试工具,可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行,其中 t 用来执行一条汇编指令,g 命令可以将程序完全执行(从学长报告中看到的,在王爽的汇编中好像没看见,且试过有效
- 补充查阅汇编原理后还是在此处添加一下:R 命令查看、改变 CPU 寄存器的内容;D 命令查看内存中的内容;E 命令改写内存中的内容;U 命令将内存中的机器指令翻译成汇编指令;T 命令执行一条机器指令;A 命令以汇编指令的格式在内存中写入一条机器指令;P命令执行一条机器指令,若遇到子程序则直接执行完;Q命令的作用是退出DEBUG,回到DOS状态。
- 再接再厉,计算机知识非常丰富,多多探索会发现许多有意思的东西
【知识点】
汇编原理,讲义,PPT上的知识罗列已经十分丰富,在这里我就做一些重点归纳以及课外拓展
-
微处理器大致可以分为三类,分别是 通用高性能微处理器 , 嵌入式微处理器和DSP处理器(以及AI芯片),嵌入式微控制器
-
X86架构(The X86 architecture)是微处理器执行的计算机语言指令集,指一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,定义了芯片的基本使用规则
-
百度百科中给出的 Bridge 网桥是早期的两端口二层网络设备。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Switch)所取代。
-
同时在虚拟机上也会有Bridge这个概念,其可以接入其他的网络设备,比如物理设备、虚拟设备、VLAN 设备等。并且Bridge 通常充当主设备,其他设备为从设备,这样的效果就等同于物理交换机的端口连接了一根网线。这样更便于理解,其实就是起到通信与数据交换的功能,可以联想大一上所学的计算机网络
-
南桥(英语:Southbridge)是基于个人计算机主板芯片组架构中的其中一枚芯片。南桥设计用来处理低速信号,通过北桥与中央处理器联系。各芯片组厂商的南桥名称都有所不同,例如英特尔称之为输出/输入控制器中心(Input/Output Controller Hub,ICH),NVIDIA的称为MCP,ATI的称为IXP/SB,AMD也开始纳入Fusion APU,并给予FCH这个标记,或称Fusion控制器中心,代表其南桥芯片。
-
北桥(英语:Northbridge)是基于 Intel 处理器的个人计算机主板芯片组两枚芯片中的一枚,北桥设计用来处理高速信号,通常处理中央处理器、存储器、PCI Express显卡(早年是AGP显卡)、高速PCI Express X16/X8的端口,还有与南桥之间的通信。
-
2003年,AMD推出了业界首款64位处理器Athlon 64,也带来了x86-64,即x86指令集的64位扩展超集,具备向下兼容的特点,当时Intel也在推行64位技术,但其IA64架构并不兼容x86,只是用在服务器处理器Itanium上。为了和AMD展开竞争,Intel也在2004年推出了自己的64位版x86,也就是EM64T,老师上课时也说过这些历史
-
关于CISC 和 RISC
CISC的英文全称为Complex Instruction Set Computer,即复杂指令系统计算机,从计算机诞生以来,人们一直沿用CISC指令集方式,早期的桌面软件是按CISC设计的,并一直沿续到现在。目前,桌面计算机流行的x86体系结构即使用CISC。微处理器(CPU)厂商一直在走CISC的发展道路,包括Intel、AMD,还有其他一些现在已经更名的厂商,如TI(德州仪器)、IBM以及VIA(威盛)等。在CISC微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。CISC架构的服务器主要以IA-32架构(Intel Architecture,英特尔架构)为主,而且多数为中低档服务器所采用。
RISC的英文全称为Reduced Instruction Set Computer,即精简指令集计算机,是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机(即RISC机),RISC机中采用的微处理器统称RISC处理器。这样一来,它能够以更快的速度执行操作(每秒执行更多百万条指令,即MIPS)。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢。 (摘抄自CISC和RISC是什么?它们的特点和区别? - 鸿鹄当高远 - 博客园 (cnblogs.com))
-
赛扬300A, 主要看了知乎相关的一些文章,还了解了一些其他的著名CPU,比如 AMD Duron ,图拉丁… ,总而言之很佩服当年的技术发烧友 (CPU史上的英雄——赛扬300A,一个专为超频而生的家伙 - 知乎 (zhihu.com)
-
说实话,对于AMD我只从《浪潮之巅》中了解到AMD得益于美国的反垄断法,以及我自己的电脑核显是AMD RADEON, CPU是AMD Ryzen7,但让AMD能yes起来的人我却不太了解,查找资料后才知道是半导体领域的首位女CEO、世界上薪酬最高的华人总裁——苏姿丰(Lisa Su),并且AMD不断创新的精神也很打动我
-
CPU硬件设计结构—— 冯诺依曼机构是一种将程序指令存储器和数据存储器合并在一起的存储器结构
-
计算机硬件由运算器、控制器、存储器、输入设备和输出设备组成
-
CPU内核结构,基本组成以及主要寄存器都很重要,在此处就不再赘述,建议全部掌握
-
CPU的功能:
- 指令顺序控制
- 操作控制
- 时间控制
- 数据加工
- 关于高速缓存器(Cache),是位于CPU和主存储器 DRAM(Dynamic Random Access Memory)之间,规模较小,但速度很高的存储器,通常由 SRAM(Static Random Access Memory静态存储器)组成
总而言之,关于汇编以及微处理器还有许多知识等待我们去探索,尽管会遇到许多出人意料的困难与挑战,但是收获知识与技术的喜悦是真实的,继续 痛并快乐着吧!