资讯详情

【计算机系统1】3 LC-3汇编语言求成绩等级

目的与要求

内容与方法

步骤与过程

程序总体设计

核心数据结构-冒泡排序

调试过程

成绩数据文件data初始编写和程序数据

成绩复制

冒泡排序

A B计数保存

核心代码

结论或体会


目的与要求

分析和理解实验中指定的问题

利用LC-3.汇编代码设计实现相关程序

熟练掌握循环支程序设计方法

内容与方法

  • 背景
    • 16名学生的成绩排名和统计分析
    • 分类规则
      • A:全班前25%,成绩85分以上
      • B:非A分,全班前50%,75分以上
      • C:非A、B成绩
      • 要求
    • 使用LC-3汇编语言,编写程序实现上述功能
  • 输入
    • 16名学生的成绩存储在x3200至x320F
    • 每个分数在0到100之间,由16比特无符号整数表示
  • 输出
    • 成绩降序排序,并存储在x4000至x400F内存位置,x4000位置成绩最高
    • 得A、B成绩的学生总人数,分别存储于x4100,及x4101位置

步骤与过程

  • 根据主题,首先要实现的是结果的存储。首先,我使用标签SCORE存储结果的第一个地址x3200,用data在起始位置记录了16个成绩:.ORIG x3200。
  • 其他重要地址和常用标号如下:
SCORE .FILL x3200  ;成绩存储的起始地址 RES  .FILL x4000  ;成绩降序结果存储起始地址 Anum .FILL x4100  ;存放A地址 Bnum .FILL x4101 nAscore .FILL -85   ;A分数相反数 nBscore .FILL -75  StuNUM .FILL 16   ;学生人数 ONE     .FILL 1   ;1 
  • 具体实现步骤如下:
    • 将结果复制到结果区:COPY循环
    • 泡沫排序:2层嵌套循环
    • 计算A B人数:每两个循环(CountA CountB)
    • 结果保存:STORE

C 代码如下:

for(int i=1;i<n;i  ){  For(int j=0;j<n-I;j  ){   If(score[j]<score[j 1]){    Swap(score[j],score[j 1])   }  } } 

由于程序步骤较多,我逐步完成了模块编写和调试。

标签: 3x400高压电缆电容值

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司