计算机硬件基础实验1【汇编程序设计】

实验平台:虚拟仿真实验教学平台

一.实验目的

掌握虚拟实验平台微机原理及接口技术教学实验系统的操作,熟悉实验台的操作环境。
掌握不同进制数及编码相互转换的程序设计方法。

二.实验内容

1、编写程序,将00~0FH共16个数写入内存3000H开始的连续16个存储单元中。
2、编写程序,将内存3500H单元开始的8个数据复制到3600H单元开始的数据区中。
3、编写程序,将ASCII字符串‘8A’转换成十六进制。(选做)

三.实验原理

1、
(1)利用AX寄存器将数据段寄存器DS的值设为0,即数据段的段基址从0开始
(2)利用SI存放偏移地址,建立数据在内存的数据段的起始地址
(3)利用AX的低8位AL寄存器存放写入的数,将其内容复制到内存对应位置
(4)重复(3)十六次,即到CX寄存器里的值变0,每次偏移地址和数值加1
(5)利用中断退出程序
2、
(1)模仿上述的方法1,将从内存3500H单元开始的8个单位依次赋值为00~07H
(2)利用SI存放3500H开始的偏移地址,利用DI存放3600H开始的偏移地址
(3)借助AX的低8位AL寄存器,将3500H内存单元数据复制到3600H内存单元中
(4)重复(3)八次,即到CX寄存器里的值变0,每次偏移地址和数值加1
利用中断程序退出

四.实验步骤

【1】整体流程
(1)编写程序
(2)发送场景信息,发送代码信息,编译,在程序终止前设置断点,运行代码。
(3)查看存储器相应单元的信息。
【2】程序流程图
1.
在这里插入图片描述
2.
在这里插入图片描述
程序如下:
Lab1_1.asm

sstack segment stack;定义堆栈段
       dw 32 dup(?)
sstack ends

code   segment
       assume cs:code,ss:sstack
start: push ds;这个可做可不做
       xor ax,ax;清空
       mov ds,ax;段基址从0开始
       mov si,3000H;偏移地址,建立数据起始地址
       mov cx,16;计数次数,循环次数
aa1:   mov [si],al;al是8位的,默认为00
       inc si;地址加一
       inc al;数据加一
       loop aa1
       mov ax,4C00H;退出程序的标准操作
       int 21H;
code   ends
       end start

Lab1_2.asm

sstack segment stack;定义堆栈段
       dw 32 dup(?)
sstack ends

code   segment
       assume cs:code,ss:sstack
start: push ds;这个可做可不做
       xor ax,ax;清空
       mov ds,ax;段基址从0开始
       mov si,3500H;偏移地址,建立数据起始地址
       mov cx,8;计数次数,循环次数
aa1:   mov [si],al;al是8位的,默认为00
       inc si;地址加一
       inc al;数据加一
       loop aa1
       mov si,3500H
       mov di,3600H
       mov cx,8
aa2:   mov al,[si]
       mov [di],al
       inc si
       inc di
       loop aa2   
       mov ax,4C00H;退出程序的标准操作
       int 21H;
code   ends
       end start

五.实验结果

1、
在这里插入图片描述

可以看到段基址0000H,偏移地址3000H开始16个内存单元的值依次被赋于了从00H到0FH的数值。
2、
在这里插入图片描述

以上为内存中偏移地址为3500H开始的内容。
在这里插入图片描述
可以看到成功将内存3500H单元开始的8个数据复制到3600H单元开始的数据区中。

六.实验总结

1.将一个内存中的数据复制到另个内存地址处时不能直接MOV,需借用寄存器作为中间商进行复制。
2.程序开头定义的堆栈段,虽然没有被显式用到,在发生中断,调用程序时会隐式用到堆栈段。

  • 11
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.前言 汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而,对程序的空间和时间的要求很高的场合,汇编语言的应用是必不可少的。至于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可了。随着科学技术迅速发展,理工科大学生不仅需要掌握计算机方面的基本理论知识,而且还需要掌握基本的实验技能及一定的科学研究能力。通过课程设计,使学生巩固和加深微型计算机原理理论知识,通过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。 鉴于汇编语言的广泛用途及其在当代计算机界的重要作用,本人利用学的知识,在同学门的帮助下,花费大量时间,完成了关于电子表的系统设计! 这个系统是应用于电脑中的小应用程序,可是显示电脑中的时间。很多地方都会有个时钟显示,其中大多是应用了类似这样的方法! 2.系统功能 该系统实现了与电脑中的时间同步的效果,当用户在运行这个程序的时候会看到此电子钟的现实时间与用户电脑中的时间是同步的!这就是次系统最主要的功能,当然,在运行期间如果用户不需要此电子钟的显示了,可以按下“e”键就推出了! 3.设计思想 本程序是以蓝色为背景,具有提示信息。钟表的显示主要是调用子程序不断循环变换时间!在get_time这个小的模块中就是对时间的判断及更改!仅有时间的更改是不能够实现这个程序的运行的,其间,还有show子程序(对时间的处理并显示),print子程序(根据bl中的值来显示相应的信息),clear子程序(屏幕初始化),sound子程序(响铃的作用)。通过这几个及程序的协助,使得这个系统可以正常的运行!
1. 深入掌握CPU的工作原理,包括ALU、控制器、寄存器、存储器等部件的工作原理; 2. 熟悉和掌握指令系统的设计方法,并设计简单的指令系统; 3. 理解和掌握小型计算机的工作原理,以系统的方法建立起整机概念; 4. 理解和掌握基于VHDL语言和TEC-CA硬件平台设计模型机的方法。 二、设计要求   参考所给的16实验CPU的设计与实现,体会其整体设计思路,并理解该CPU的工作原理。在此基础上,对该16位的实验CPU(称为参考CPU)进行改造,以设计得到一个8位的CPU。总的要求是将原来16位的数据通路,改成8位的数据通路,总的要求如下: 将原来8位的OP码,改成4位的OP码; 将原来8位的地址码(包含2个操作数),改成4位的地址码(包含2个操作数)。   在上述总要求的基础上,对实验CPU的指令系统、ALU、控制器、寄存器、存储器进行相应的改造。具体要求如下: 修改指令格式,将原来指令长为16位的指令格式改成8位的指令长格式; 设计总16条指令的指令系统。此指令系统可以是参考CPU指令系统的子集,但参考CPU指令系统中A组和B组中的指令至少都要选用2条。此外,常见的算术逻辑运算、跳转等指令要纳入所设计的指令系统; 设计8位的寄存器,每个寄存器有1个输入端口和2个输出端口。寄存器的数量受控于每一个操作数的位数,具体要看指令格式如何设计; 设计8位的ALU,具体要实现哪些功能与指令系统有关。设计时,不直接修改参考CPU的VHDL代码,而是改用类似之前基础实验时设计ALU的方式设计; 设计8位的控制逻辑部件,具体结合指令功能、硬布线逻辑进行修改; 设计8位的地址寄存器IR、程序计数器PC、地址寄存器AR; 设计8位的存储器读写部件。由于改用了8位的数据通路,不能直接采用DEC-CA平台上的2片16位的存储芯片,需要按照基础实验3的方法设计存储器。此种方法不能通过DebugController下载测试指令,因此测试指令如何置入到存储器中是一个难点。设计时,可以考虑简单点地把指令写死在存储器中(可用于验证指令的执行),然后用只读方式读出来;或者考虑在reset的那一节拍里,实现存储器中待测试指令的置入; (可选项)设计8位的数据寄存器DR; (可选项)不直接设计存储器RAM,而是采用DEC-CA平台上的2片16位的存储芯片.在实现了第9个要求的基础上,实现由Debugcontroller置入待测试指令; (可选项)顶层实体,不是由BDF方式画图实现,而是用类似基础实验4(通用寄存器组)中设计顶层实体的方式,用VHDL语言来实现。 (可选项)自己设想   利用设计好的指令系统,编写汇编代码,以便测试所有设计的指令及指令涉及的相关功能。设计好测试用的汇编代码后,然后利用Quartus II软件附带的DebugController编写汇编编译规则。接着,利用DebugController软件把汇编编译之后的二进制代码置入到所采用的存储器中,并对设计好的8位CPU进行测试。
BOPPPS-教学模型在计算机硬件基础课程中的探索和实践分析全文7页,当前为第1页。BOPPPS-教学模型在计算机硬件基础课程中的探索和实践分析全文7页,当前为第1页。BOPPPS 教学模型在计算机硬件基础课程中的探索和实践分析 BOPPPS-教学模型在计算机硬件基础课程中的探索和实践分析全文7页,当前为第1页。 BOPPPS-教学模型在计算机硬件基础课程中的探索和实践分析全文7页,当前为第1页。 计算机硬件基础课程是我院部分非计算机专业开设的一门必修课,课程以信息在计算机内部的加工、处理为主线,介绍微型计算机的硬件结构、工作原理和功能特性以及系统内部各部件之间的互连;指令及程序在计算机内部的执行过程;主机和外部设备之间的连接和数据交换方法。但是教学效果总是不尽如人意,我们对课程教学特点进行分析,并尝试运用新的教学模型。 1 计算机硬件基础课程教学特点 (1)先导知识要求高。学习计算机硬件基础课程,要求学生学习过高级语言程序设计,对计算机基本工作原理有所了解,掌握数据在计算机内部的存储表示,对计算机科学中常用思维方式有所了解。目前对于非计算机专业的学生,在学习计算机硬件基础课程之前一般仅开设了大学计算机基础和计算机程序设计两门课程,对于课程所要求的先导知识虽然有所涉及,但是学生学习情况并不理想,有待进一步加强。 (2)概念抽象难理解。计算机硬件基础课程包含CPU、存储器、输入输出接口及设备和总线四个方面,有很多抽象枯燥的概念,比如寻址方式、指令流水线、存储器分段、总线仲裁、总线握手、I/O 同步控制和中断等,对于非计算机专业的学生而言,确实较难理解。而且,课程还涉及众多算法思想,对于仅从大学计算机基础和计算机程序设计两门课程建立起来的编程思想是远不够用的。 BOPPPS-教学模型在计算机硬件基础课程中的探索和实践分析全文7页,当前为第2页。BOPPPS-教学模型在计算机硬件基础课程中的探索和实践分析全文7页,当前为第2页。(3)实验效果不明显。计算机硬件基础课程开设了实验实验内容主要包含汇编语言程序设计和输入输出接口。汇编语言程序设计部分的实验,侧重于指令的应用,因为有源代码很多实验题目演变为验证性质的实验,学生只是输入代码然后运行,可能代码本身都不理解,更不用说调试程序和理解CPU 的工作原理了。而输入输出接口部分的实验,主要采用试验箱进行实验,大部分学生只是在进行连线的工作,对计算机硬件工作原理的理解帮助甚微。 (4)思维方式待提高。计算机科学包括其独有的思维方式,而且该思维方式贯穿于计算机相关课程的学习,经过大学计算机基础和计算机程序设计两门课程不到120 学时的学习培养起来的计算思维,对于计算机硬件基础课程的学习略显单薄。从以上几点不难看出,对于计算机硬件基础课程的教学,还有很多方面值得任课教师取探讨和研究。本文尝试将BOPPPS 教学模型应用到计算机硬件基础课程的教学中。 2 BOPPPS 教学模型 BOPPPS 教学模型由加拿大教师技能培训工作坊(InstructionalSkills Workshop,ISW)创建,目前已被全世界超过33 个国家引进采用,在全球超过100 所大学和培训机构实施[1],近两年开始引入中国大陆地区。BOPPPS 教学模型[2]将教学过程分为6个阶段:导入(Bridge-in)、目标(Objective)、前测(Pre-assessment)、参与式学习(Participatory Learning)、后测(Post-assessment)和总结(Summary),其名称来源于各阶段英文单词首字母缩写。 BOPPPS-教学模型在计算机硬件基础课程中的探索和实践分析全文7页,当前为第3页。BOPPPS-教学模型在计算机硬件基础课程中的探索和实践分析全文7页,当前为第3页。2.1B导入(Bridge-in) 导入就是帮助学生专注于即将要介绍的内容,从而引起学生的学习兴趣。可以由问题或案例引出,或者讲述一个与主题相关的故事,或者其他方式。 2.2O目标(Objective) 目标是让学生了解到通过内容的学习要达到何种学习效果。为了方便学生有效实施,对于目标的描述要求具体明确,最好是可量化、可观察、可操作的。可以采用布鲁姆(B.S.Bloom)等人于1956 年提出的认知领域教育目标分类系统[3]。 2.3P前测(Pre-assessment) 前测是正式学习之前进行的一种测试,目的是通过测试了解学生的兴趣、能力和当前知识结构,从而帮助教师适当调整内容的深度和进度。可以采用小测验、正式考试、作业或非正式提问等,甚至开展讨论、头脑风暴等形式。 2.4P参与式学习(Participatory Learning) 参与式学习是具体进行学习的环节,包括师生之间以及生生之间进行的参与式

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值