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

news/2025/3/16 2:08:57/文章来源:https://www.cnblogs.com/vincent2077/p/18504283

2024-2025-1 20241420姚金济 《计算机基础与程序设计》第五周学习总结

作业信息

|作业所属课程|<班级链接>https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP

|作业要求|<链接>https://www.cnblogs.com/rocedu/p/9577842.html#WEEK05

|这个作业的目标|
①Pep/9虚拟机
②机器语言与汇编语言
③算法与伪代码
④测试:黑盒,白盒

教材学习内容总结

第6章 低级程序语言与伪代码
1. Pep/9的基本特性:
内存单元:65536字节存储空间,从0到65535编号。
字节组成:每个字节由8位组成。
字长:16位。
中央处理器(CPU)组件:
程序计数器(PC):存储下一条指令地址。
指令寄存器(IR):存储正在执行的指令副本。
累加器(A):存储数据和运算结果。
存储器地址:从0000到FFFF,包括FFFE。
2. 二进制和十六进制数:
一个字节最大表示的十进制数是255(二进制11111111,十六进制FF)。
一个字(16位)最大表示的十进制数是65535(二进制1111111111111111,十六进制FFFF)。
有符号数范围:-32767到+32767。
3. 指令格式:
指令由8位的指令说明符和可选的16位操作数说明符组成。
指令长度:1字节(无操作数说明符)或3字节(有操作数说明符)。
指令说明符包含操作代码(opcode)和寻址模式说明符。
操作代码长度:4位。
寻址模式说明符:3位,决定如何解析操作数。
立即寻址(i):操作数直接在操作数说明符中。
直接寻址(d):操作数说明符中存储操作数的内存地址。
4. 示例指令:
一元指令:没有操作数说明符,长度为1字节。
0000 :停止执行。
 1100 :将字(两字节)载入寄存器A中。
 1101 :将字节载入寄存器A中。
 1110 :存储寄存器A中的字。
 1111 :存储寄存器A中的字节。
 0110 :将操作数加到寄存器A中。
 1000 :从寄存器A减去操作数。
5. 输入/输出 (I/O) 操作:
Pep/9系统模拟键盘输入和屏幕输出。
输入设备地址:FC15。
输出设备地址:FC16。
使用ASCII字符集表示字符。
通过累加器进行字符的输入和输出操作。
6. Pep/9模拟器:
模拟器允许模拟Pep/9程序的执行。
程序代码以十六进制格式输入,并以'zz'结束。
7. 程序实例:
显示了如何使用Pep/9机器语言指令在屏幕上显示字符。
使用了载入、存储和停止指令。
程序代码以二进制和十六进制表示。

第4章 键盘输入和屏幕输出
常用转义字符:
转义字符 含义 转义字符 含义
 \n  换行(Newline)  \a  响铃报警提示音(Alert or Bell)
 \r  回车(不换行)(Carriage Return)  "  双引号(Double Quotation Mark)
 \0  空字符(Null),通常用作字符串结束标志  '  单引号(Single Quotation Mark)
 \t  水平制表(Horizontal Tabulation)  \  反斜线(Backslash)
 \v  垂直制表(Vertical Tabulation)  ?  问号(Question Mark)
 \b  退格(Backspace)  \f  走纸换页(Form Feed)
 \ddd  1到3位八进制ASCII码值所代表的字符
 \xhh  1到2位十六进制ASCII码值所代表的字符

C语言中使用  %c  格式符输入字符时可能遇到的问题:在C语言中, scanf  函数在读取输入时,会将换行符留在输入缓冲区中。如果后续使用  %c  读取字符,这个换行符可能会被错误地读取为字符,导致程序逻辑错误。
解决方法:
方法1:通过  getchar()  显式读取并丢弃换行符,确保后续的  %c  读取不会读取到错误的字符。
方法2:在  %c  格式符前加一个空格,这样  scanf  会自动忽略任何空白字符(包括空格、制表符和换行符),直到遇到非空白字符才停止读取,从而避免读取到换行符。
这两种方法都可以有效地解决由于缓冲区中的换行符导致的输入问题,确保程序能够正确地读取用户输入的字符。

基于AI的学习







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

  • 问题1:设定数量变量为num,解决无限量输入整数求和问题(输入0终止)时循环结构进行后输出结果未计入第一个结果

  • 问题1解决方案:将循环结构外的语句删掉,并且初始化num的值为1

  • 问题2:解决正弦转换问题时出现变量精确紊乱,输出随机数结果

  • 问题2解决方案:定义double常量PI

  • 计划学习时间:10小时

  • 实际学习时间:8小时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/822410.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《DNK210使用指南 -CanMV版 V1.0》第三十三章 image元素绘制实验

第三十三章 image元素绘制实验 1)实验平台:正点原子DNK210开发板 2)章节摘自【正点原子】DNK210使用指南 - CanMV版 V1.0 3)购买链接:https://detail.tmall.com/item.htm?&id=782801398750 4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k…

zlibrary网址是哪个及zlibrary电脑客户端/app下载

Z-Library是一家电子图书馆,同时也是全球科学图书和学术文献最大的免费资源之一。以下是对Z-Library的详细介绍及使用步骤: 一、Z-Library介绍 资源规模:Z-Library的数字档案库包含超过1400万本书籍,涵盖了广泛的学科领域,使其成为互联网上最为庞大的图书馆之一。 实体书籍…

[ACTF新生赛2020]rome

DIE查壳32位,无壳 32位ida打开 界面很难看,按\后得到加密程序关注这个while循环,明明是个循环16次,但却v1却只有四个元素 从声明变量这里可以看到v1是int数组,每个元素占四字节梳理一下逻辑,v1是我们需要求的flag,也就是传入的数据,这里通过第一个while循环进行了两次i…

第二章 实验任务

第一题 写入内存修改CS和IP执行(此处没把输入的全部指令都执行,只是做个演示,执行了前面几条)第二题 写入内存:修改CS和IP:执行:最后,AX=0010,即算出 第三题最后一行显示出了日期,但是这并不是电脑真正的生产日期。 这个是在DOSBOX模拟器上运行的,并不是真正的电脑环…

第一集 计算机早期历史

001 计算机渗透进入生活方方面面,我们不是第一次遇到推动全球发展的科技, 工业革命生产能力提高,大幅提升农业、工业、畜牧业的规模,机械化导致更多收成更多商品可以被大批量生产,旅行通讯能更快更好,生活质量得到提升 计算机与工业革命有一样的影响,自动化农业和医疗设…

图解:什么是多租户?

大家好,我是汤师爷~ 什么是多租户? 多租户是SaaS(软件即服务)领域里特有的一个概念。在SaaS服务中,“租户”指的就是使用这个SaaS系统的客户。 那么租户和用户有什么区别呢?举个例子。假设你正在使用一款面向企业(ToB)的SaaS产品,"用户"通常指的是公司里实际…

samtools flagstat参数对比对的bam文件进行统计

001、命令samtools flagstat sample_name.sorted.bam > sample_name.flagstat.txt a、生成的文件是一个包含16行的文本文件: 002、(base) [b20223040323@admin2 workdir]$ cat Asiatic1.flagstat.txt ## 查看统计结果 622520785 + 0 in total (QC-passed reads + Q…

Prometheus源码专题精讲——监控系统 Prometheus 2.x/3.x 源码阅读和分析

监控系统 Prometheus 2.x/3.x 源码阅读和分析 自2014年3月左右Prometheus的首个公开版本0.1.0发布以来 https://github.com/prometheus/prometheus/tree/0.1.0,距离当前已经 11 years ago。 在这期间,Prometheus及其生态系统,如Thanos等,已经在分布式监控领域占据了举足轻…

数据库 表单运用

一、进入数据库操作界面 1、mysql -u root -p 敲回车 ,输入密码 ,进入数据库操作界面 2、show databases 查看所有的数据(如果没有数据库:创建数据库 create database 库名称) 3、use 数据库名 使用数据库 4、show tables 显示库中的所有表 5、建表语句…

Cypress实现拖拽

使用Cypress内置的trigger方法实现拖拽一个元素到另一个同类型元素,实现排序Typescript实现方法: export function dragAndDrop(sourceLocator: string, targetLocator: string) {const dataTranferMock = { setData: () => {}, setDragImage: () => {} }cy.get(source…

js逆向实战之某市场监管公告服务平台返回数据解密

声明:本篇文章仅用于知识交流分享,不用于其他用途 练习网站:https://jzsc.mohurd.gov.cn/data/company 解密过程分析访问网站,随便选择一个区域,点击查询,看触发哪些数据包。只有一个数据包,且其响应数据一看就是经过加密的。 有经验的人就会条件反射是拦截器,全局搜索…

本博客只为个人提供学习和使用提供内容经供参考

本博客只为个人提供学习和使用提供内容经供参考!!!