实验六 16位机指令系统实验报告
一、实验目的:
1、学习和了解实验平台十六位机监控命令的用法; 2、学习和了解实验平台十六位机的指令系统; 3、学习简单的实验平台十六位机汇编程序设计
二、 实验内容:
1、使用监控程序R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;
2、使用A命令写一小段汇编程序,G命令运行程序,T或P命令单步运行并观察程序单步执行情况。
三、教学计算机的基本指令系统
1、运算器有16个通用寄存器R0~R15。其中R4为16位的堆栈指针SP,R5用作16位程序计数器PC。
2、有1个串行口的入出端口为80,81,,其中80数据寄存器地址,81是控制与状态寄存器的地址。
3、教学计算机的基本指令系统见表1
四、实验步骤
1、关闭电源,将实验板上的16位机COM口与PC机的串口相连; 2、 接通电源,在PC机上运行PCEC16.EXE文件; 3、设置控制开关为连续状态;
3、按一下“RESET”按键,再按一下“START”按键,屏幕上显示相应的初始信息;
4、用R命令查看寄存器内容或修改寄存器的内容,显示寄存器内容用R↓;修改寄存器内容用R 寄存器名称↓;
5、D命令显示存储器内容,D 地址;
6、E命令修改存储器内容,E 地址。可连续修改多个单元内容,之间用空格分隔;
7、用A命令键入汇编程序,A 地址; 8、G命令运行程序,G 地址;
9、用P或T命令,单步执行,观察执行结果
班级 姓名 学号
表1 教学计算机的基本指令系统
指令格式 汇编语句 操作数个数 CZVS 指令分组 功能说明 00000000 DRSR ADD DR,SR 2
***** A DR←DR+SR
00000001 DRSR SUB DR,SR 2 ***** A DR←DR-SR 00000010 DRSR AND DR,SR 2 ***** A DR←DR and SR 00000011 DRSR CMP DR,SR 2 ***** A DR-SR
00000100 DRSR XOR DR,SR 2 ***** A DR←DR xor SR 00000101 DRSR TEST DR,SR 2 ***** A DR and SR 00000110 DRSR OR DR,SR 2 ***** A DR←DR or SR 00000111 DRSR MVRR DR, SR 2 • • • • A DR←SR 00001000 DR0000 DEC DR 1 ***** A DR←DR-1 00001001 DR0000 INC DR 1 ***** A DR←DR+1 00001010 DR0000 SHL DR 1 * • • • A DR,C←DR*2 00001011 DR0000 SHR DR 1 * • • • A DR,C←DR /2 01000001 OFFSET JR ADR 1 • • • • A 无条件跳转 01000100 OFFSET JRC ADR 1 • • • • A C=1 时跳转 01000101 OFFSET JRNC ADR 1 • • • • A C=0 时跳转 01000110 OFFSET JRZ ADR 1 • • • • A Z=1 时跳转 01000111 OFFSET JRNZ ADR 1 • • • • A Z=0 时跳转
10000000 0000000 JMPA ADR 1 • • • • B 无条件跳到ADR(16位) 10000001 DRSR LDRR DR,[SR] 2 • • • • B DR←[SR] 10000010 I/O PORT IN I/O PORT 1 • • • • B R0←[I/O PORT] 10000011 DRSR STRR [DR],SR 2 • • • • B [DR]←SR 10000100 00000000 PSHF 0 • • • • B FLAG 入栈 10000101 0000SR PUSH SR 1 • • • • B SR 入栈
10000110 I/O PORT OUT I/O PORT 1 • • • • B [I/O PORT]←R0 10000111 DR POP DR 1 • • • • B 出栈到 DR 00001000 DR0000 MVRD DR, DATA 2 • • • • B DR←DATA(16位) 10001100 00000000 POPF 1 • • • • B FLAG←出栈 10001111 00000000 RET 1 • • • • B 子程序返回
11001110 00000000 CALA ADR 1 • • • • D 调用子程序 ADR(16位)
五、编写程序(以下两个程序任选其一)(实验程序单独附后)
1、在屏幕上循环显示95个可打印字符
2、从键盘输入一个4位16进制数到寄存器中,把它以二进制代码形式显示到屏幕上。可考虑加上相应的检错功能,参考流程图如下。
班级 姓名 学号
开始 用不同的寄存器为程序设置常量和变量初值 否有键盘输入 是 接收输入并显示, 清R0高位字节 为16进制否拒绝输入并删除 数字符屏幕上的显示 是 转换成二进制码并归并到 R1 中 否 已有4个输入字符 是 输出回车、换符行 R1 左移一位,依据C的值输出 字符1或字符0 否输出已达16位 是 结束
六、实验过的主要问
七、实验后的心得体会
程中遇到题
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务