首页 > 编程语言 >2024-2025-1 学号20241315《计算机基础与程序设计》第五周学习总结

2024-2025-1 学号20241315《计算机基础与程序设计》第五周学习总结

时间:2024-10-26 23:12:32浏览次数:7  
标签:Pep9 addr 学号 累加器 2024 2025 指令 跳转 输入

作业信息

这个作业属于哪个课程 [2024-2025-1-计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)
这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK05
这个作业的目标 Pep/9虚拟机 机器语言与汇编语言 算法与伪代码 测试:黑盒,白盒
作业正文 https://www.cnblogs.com/tanzitian11/p/18504444

教材学习内容总结

计算机操作

  1. 存储
    概念:存储指的是在计算机中保存数据和信息的过程。
    作用:确保信息的持久性。
  2. 检索
    概念:检索是指从存储的海量数据中查找特定信息的过程。通过检索,可以快速找到特定文件或数据,提高数据访问的效率。
    作用:使用户能够高效地找到和访问已存储的信息。应用场景包括文件查找、数据库查询等。
  3. 处理
    概念:处理是对数据进行计算、分析、转换的过程。计算机通过CPU(中央处理器)执行各种指令,对数据进行处理。
    作用:实现数据的计算、逻辑判断和操作,生成新的结果或输出内容。数据处理广泛应用于日常操作(如计算、统计分析、图像编辑等)。

机器语言

概念:由计算机直接使用的二进制编码指令构成的语言。

Pep9

概念:是一种模拟计算机,用于学习汇编语言和计算机体系结构的基本原理。以下是Pep9的主要特性:

  1. 简单体系结构
    字长和指令:Pep9使用16位的字长,并且具有有限的指令集,适合初学者学习计算机操作的基础知识。
    内存地址空间:Pep9模拟的内存空间为0x0000到0xFFFF,共64KB
  2. 寄存器
    累加器(A):用于存储运算结果或临时数据,许多指令都涉及对A寄存器的操作。
    程序计数器(PC):存储当前指令的地址,执行后自动指向下一条指令的位置。
    指令寄存器(IR):用于存储当前正在执行的指令。
  3. 指令集
    基本指令:Pep9提供多种基本指令,如数据传输、算术运算(加减乘除)、逻辑运算(与、或、非)、条件跳转等。
    寻址模式:支持多种寻址模式,包括直接寻址、间接寻址、立即寻址和基址寻址等,使得学习者能够理解不同的内存访问方式。
    I/O指令:提供输入输出指令,使用户可以模拟控制台输入和输出,便于学习基本的I/O操作。
  4. Pep9模拟器
    Pep9模拟器:提供图形化界面,方便用户编写、调试和运行Pep9汇编程序,观察寄存器、内存和条件码的变化。
    调试功能:包含单步执行、断点设置、内存和寄存器监视等功能,有助于用户分析程序的执行过程和理解计算机的工作原理。
    通过Pep9,学习者可以掌握汇编语言、寄存器操作、指令执行流程等基本概念,是计算机体系结构入门的理想工具。

5.关于Pep9的一些指令:

1.数据传送指令
LDA addr:将内存地址addr中的值加载到累加器A。
STA addr:将累加器A中的值存储到内存地址addr中。
2.算术和逻辑指令
ADDA addr:将内存地址addr中的值加到累加器A。
SUBA addr:从累加器A中减去内存地址addr中的值。
ANDA addr:将累加器A与地址addr中的值执行按位与操作。
ORA addr:将累加器A与地址addr中的值执行按位或操作。
3.输入/输出指令
CHARI:从输入设备读取一个字符,并将其存储到累加器A。
CHARO:将累加器A中的字符输出到输出设备。
指令格式示例:
每条指令的格式通常由操作码和操作数组成,操作码标识指令类型,操作数为内存地址或数据。例如:
LDA 0x0040:表示将地址0x0040中的值加载到累加器A。
BRLE 0x0020:表示当CC为负或零时,跳转到地址0x0020。

汇编语言

汇编语言:一种低级语言,用助记码表示特定计算机的机器语言指令。
汇编器:把汇编语言程序翻译成机器代码的程序。

  1. 数字数据
    概念:数字数据是计算机中存储和处理的基本信息类型,通常表示为二进制形式(0和1)。它可以代表各种类型的数值(整数、浮点数)、字符编码、颜色值、音频信号等。
    作用:计算机通过对二进制数据的操作来执行数学运算、逻辑运算和其他计算任务。
  2. 分支
    概念:分支是控制程序执行流程的一种机制,使程序可以根据条件选择不同的执行路径。
    作用:分支控制允许程序在不同条件下执行不同的代码块,提高程序的灵活性和适应性。
  3. 标签
    概念:标签是程序代码中的一个标记,用于标识某个特定位置,以便程序可以跳转到该位置执行。标签通常用于循环、分支和子程序调用等。
    作用:标签可以作为程序控制流的锚点,使得代码可以在不同位置跳转到标签处执行。例如,在汇编程序中,可以通过标签实现循环和条件跳转。

Pep9的表达算法

在Pep9汇编语言中,表达算法的核心在于使用基本指令进行数据的加载、存储和算术运算。通过指令的组合,Pep9可以表达各种算法逻辑,包括算术运算、逻辑判断、循环结构等。以下是Pep9中表达算法的几个关键点:

  1. 算术运算
    实现两个数相加的算法:
    LDA 0x0010 ; 加载内存地址0x0010的值到A寄存器
    ADDA 0x0012 ; 将地址0x0012的值加到累加器A
    STA 0x0014 ; 将结果存储到地址0x0014
    在这个例子中,我们将地址0x0010和0x0012的值相加,并将结果存储在0x0014中。

  2. 条件判断与分支
    条件判断与分支控制是算法表达的重要部分。Pep9使用条件跳转指令根据条件码状态实现分支选择,例如:

LDA 0x0010 ; 加载地址0x0010的值到A寄存器
SUBA 0x0020 ; 从A寄存器减去地址0x0020的值
BRLT LESS ; 若结果为负,跳转到LESS标签
BRGT GREATER ; 若结果为正,跳转到GREATER标签
在这个例子中,程序会根据A的值与0x0020的值的比较结果,跳转到不同标签执行不同操作。

  1. 循环结构
    循环结构常用于执行重复操作。Pep9可以通过标签和条件跳转指令实现循环。以下是一个简单的递减循环示例:

LDA 0x0010 ; 将起始值加载到A
LOOP: ; 循环开始
SUBA 0x0001 ; 每次循环减去1
BRZ END ; 若A为0,跳转到END结束循环
BR LOOP ; 否则跳转到LOOP继续循环
END: ; 循环结束
该示例中,当累加器A中的值变为零时,循环结束。

c语言键盘输出和屏幕输入

  1. 屏幕输出
  • C语言中用于将数据输出到屏幕上的常用函数是printf。它可以将格式化的文本和变量的值输出到屏幕上。
    语法:printf("格式化字符串", 变量1, 变量2, ...);

  • 格式化字符串:%d(整数)、%f(浮点数)、%c(字符)、%s(字符串)等,格式化符号用于指定输出变量的类型。
    示例:int a = 10;
    float b = 3.14;
    printf("a的值为: %d, b的值为: %f\n", a, b);
    输出结果:
    a的值为: 10, b的值为: 3.140000

  1. 键盘输入
  • 键盘输入常用的函数是scanf,它从标准输入(通常是键盘)中获取数据并存储到指定的变量中。
    语法:scanf("格式化字符串", &变量1, &变量2, ...);
  • &符号:scanf的参数要求是变量的地址,所以在变量前要加&。
    示例:int a;
    float b;
    printf("请输入一个整数和一个浮点数: ");
    scanf("%d %f", &a, &b);
    printf("你输入的整数是: %d, 浮点数是: %f\n", a, b);
    输入与输出过程:
    输入:10 3.14
    输出:你输入的整数是: 10, 浮点数是: 3.140000
  1. 单个字符的输入与输出
  • 如果只需要输入或输出一个字符,可以使用getchar和putchar函数。
  • 字符输入(getchar):从标准输入获取一个字符。
    char ch;
    printf("请输入一个字符: ");
    ch = getchar();
    printf("你输入的字符是: %c\n", ch);
  • 字符输出(putchar):输出一个字符到标准输出。
    char ch = 'A';
    putchar(ch);
    printf("\n");

黑盒和白盒

特性 黑盒测试 白盒测试
测试依据 功能需求、用户视角 程序代码、开发人员视角
关注点 输入输出关系 内部逻辑、路径覆盖
测试用例编写 基于需求,不关注实现细节 基于代码逻辑,覆盖各个代码分支
优点 找出需求偏差、用户体验角度的问题 发现代码逻辑错误、覆盖率高
缺点 可能遗漏一些内部逻辑问题 依赖代码,可能未考虑用户需求偏差

基于AI的学习







代码调试中的问题和解决过程

  • 问题1:在青蛙蹦极有一题编写求和程序,就是输入一系列数字,遇到0就结束程序。一开始我写了一个循环,在codeblock上调试也没有问题,提交后显示我是错误的。
  • 问题1解决方案:我重新写了一个whlie循环,循环体换成
    scanf("%d", &num);
    if (num == 0) {
    break;
    }
    sum += num;
    结果提交后对了。之前程序的break我把它放在了程序的后面,而且我用的是do-while型循环,但是调试的时候也没有问题。很神奇。

标签:Pep9,addr,学号,累加器,2024,2025,指令,跳转,输入
From: https://www.cnblogs.com/tanzitian11/p/18504444

相关文章

  • 学期 2024-2025-1 学号20241317 《计算机基础与程序设计》第五周学习总结
    学期2024-2025-1学号20241317《计算机基础与程序设计》第五周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<写上具......
  • 2024-2025-1 20241310 《计算机基础与程序设计》第5周学习总结
    2024-2025-120241310《计算机基础与程序设计》第5周学习总结作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第一周作业这个作业的目标自学教材《计算机科学概论(第七版)》第6章并完成云班课测......
  • 20222408 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实验内容1.1回答问题(1)杀软是如何检测出恶意代码的?①基于特征码的检测:AV软件厂商搜集最全最新的特征码库,并以此来尝试匹配文件中的一个或几个片段②启发式恶意软件检测:根据片面特征推断,包括行为(如连接恶意网站、开放端口、修改系统文件等),外观(文件签名、结构、厂商等)。③基于行......
  • CSP-S 2024
    theendofmyOIday-7开始停课玩训练day-6~0打模拟赛,挂飞。day1上午打了打板子,rp++,14:10进考场,键盘打感还不错?就是enter为啥都恁奇怪。14:20试机,只打了快读,不知为何用不了-std=c++14?。14:30发pdf密码,复制密码错误,手打才对,神秘。14:35开T1,什么水题,10m......
  • CSP 2024 游记
    SH-S00652上海市大同中学(黄浦区南车站路353号)2号机房时行楼5楼504室座位号51考前考试前几天发现自己考场就在大同,这波是主场作战。但是大同只有Win7。考前一天在UOJ群里问Win7相比Win10有没有什么要注意的。有群友提醒,cmd中不能直接粘贴样例文本,要进......
  • 2024高等代数【南昌大学】
    已知f(x)=1+x+x2+⋯+xn−1f(x)=1+x+x^2+\cdots+x^{n-1}f(x)=1+x+x2+⋯+xn−1,证明:f(x)∣[f(x)+xn]2−xnf(x)\mid\left[f(x)+x^n\right]^2-x^nf(x)∣[f(x)+xn]2−xn。xf(x)=x+x2+x3+⋯+xnxf......
  • 第六届国际科技创新学术交流大会 暨通信、信息系统和软件工程学术会议(CISSE 2024)
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz提交检索:EICompendex、IEEEXplore、Scopus大会时间:2024年12月6-8日大会地点:中国-广州三、大会介绍通信、信息系统与软件工程学术会议(CI......
  • 2024.10.26
    1.st.upper_bound(c)返回的是地址想要上面的值要加*prev()也是;2.p1102的思路先for统计所有的数据的出现次数用map作为计数器一一对应,然后数组里存入的是arr[i]=数据-C;再for把map里有多少计数器的名字和“数据-C”一样的并且将计数器记的数累加求和;3.p1918思路先for把所......
  • 第六届智能控制、测量与信号处理国际学术会议 (ICMSP 2024) 2024 6th International
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz提交检索:EICompendex、IEEEXplore、Scopus三、大会介绍第六届智能控制、测量与信号处理国际学术会议(ICMSP2024)由西安石油大学、中海油田......
  • 学期:2024-2025-1 学号:20241303 《计算机基础与程序设计》第5周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第五周作业)这个作业的目标<写上具体方面>自学教材,计算机科学概论(第七版)第6章并完成云班课测试,《C语言程序设......