Apollo 11号登月飞船制导计算机源代码(待续)

2023-12-29 18:18

本文主要是介绍Apollo 11号登月飞船制导计算机源代码(待续),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今年是人类登月50周年,最近github上出现了Apollo 11号源代码,荣登排行榜第一。

这些指令可以理解为特制的汇编语言,说汇编,是因为它不是机器码,也不是高级解释性语言,而是介于两者之间。之所以说特制,是因为这些代码是用在特定的“计算机”上的,那个年代,说计算机其实不太合适,更像是个计算器。

                                                         

  在1960年代末和1970年代早期用于月球任务的阿波罗号太空船实际上是两种不同的航天器,命令模块Command Module (CM)和月球模块 Lunar Module (LM)。CM被用来让三名宇航员登上月球,然后再回来。LM用于登陆月球上的两名宇航员,而第三名宇航员则留在CM中,绕月球轨道运行。

                                                         

                                                               Apollo 15 CSM (Command and Service Modules)命令模块  

                                                            

                                                                                    Apollo 16 LM月球模块

程序指令是逻辑的符号化。

这些符号化的逻辑是如何改变世界的?

 

http://www.ibiblio.org/apollo/ScansForConversion/Luminary099/0026.jpg

上面是阿波罗11号制导计算(AGC)中指令模块(Comanche055)和登月模块(Luminary099)原始代码的一部分。

源代码采用了动词——名词结构来编程,下面是给动词和名词的汇编语言代码,有兴趣可以去github上搜索源代码,看看是怎么对应起来的。

 

http://www.ibiblio.org/apollo/A17_VN_Checklist.png

 

 

 

这些指令最大的目的是利用IMU(惯性测量单元)数据求解求解飞船姿态,根据当前姿态才有可能调整飞船的航行。这保证了飞船能够以预定轨道路线完成使命。

 

 

              

                                                                                   指令、导航和控制系统

 


A giant leap for technology

   When in 1962 MIT's Instrumentation Laboratory began, under the direction of the legendary Dr. Charles Stark Draper (a pioneer of inertial navigation systems), the development of a computer to bring people from the Earth to the Moon, computers where in their childhood. They were giant electronic-tubes devices, big as rooms or even building floors, controlled by means of of perforated tapes or cards, with insignificant memory capacity compared to the personal computers that would be born at the end of the 1970's. With an engineering courage that has few precedents, designers (historical characters like Hal Laning Jr, Eldon Hall, Ramon Alonso, Albert Hopkins and many others) elected to use for the first time in history a newly born electronic component: the integrated circuit. Still far away from the microprocessor or microcontrollers of the 1980's, the only functions available were simple logic ones. Using thousands of these logic gates, it was possible to implement what would be called today the central processing unit of the computer and all support circuitry. For memory, since it was still impractical to build it with integrated circuits, the ferrite core technology (where small rings were used to store single bits) was adopted. being reasonable easy to miniaturize. Using the same technology, the program memory was made of tens of thousands of ferrite cores, hand woven with thin copper wire to represent the 1's and 0's of the computer software. These wire were to be woven by specialized workers at least one month before the launch of a mission.

  These critical decisions, taken in the era of the "dinosaur computers", were found to be winners in the following years, just seven, that saw men land on the Moon. The onboard computer developed for the Apollo program (and installed into both the Command Module and the Lunar Module, but with different software for each vehicle) was an outstanding technological success and established rules for the development of future computers both for aerospace and other applications. It also opened the way to new applications of integrated circuits (it has been the first big user on an industrial scale) and being at the time the smallest computer in the world, helped push computers into other sectors of technology.

引自http://www.ibiblio.org/apollo/ForDummies.html


重点解读:设计师(如Hal Laning Jr,Eldon Hall,Ramon Alonso,Albert Hopkins等众多历史人物)选择在历史上第一次使用新生的电子元件:集成电路。距离1980年代的微处理器或微控制器还很远,唯一可用的功能是简单的逻辑功能。使用数千个这些逻辑门,可以实现今天所谓的计算机中央处理单元和所有支持电路。对于存储器,由于使用集成电路构建它仍然是不切实际的,因此采用了铁氧体磁芯技术(其中小环用于存储单个位)。合理容易小型化。使用相同的技术,程序存储器由数万个铁氧体磁芯组成,用细铜线手工编织,代表计算机软件的1和0。

这里也可以看到,那个时代还没有所谓单片机一说,就连集成电路都没有。设计师创造性的提出了把电子元件放在同一块介质上。 

这篇关于Apollo 11号登月飞船制导计算机源代码(待续)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/550286

相关文章

《计算机英语》Unit 1 Computer Overview 计算机概述

期末试卷组成 1、选择20道 2、判断20道 3、词汇翻译(单词+词组,参照课后习题) 4、翻译2道(一道原题,参照作业) SectionA About Computer 关于计算机 algorithm          n.  算法  operate          v.  操作  digital           adj. 数字的  integrated circuit

计算机组成原理——RECORD

第一章 概论 1.固件  将部分操作系统固化——即把软件永恒存于只读存储器中。 2.多级层次结构的计算机系统 3.冯*诺依曼计算机的特点 4.现代计算机的组成:CPU、I/O设备、主存储器(MM) 5.细化的计算机组成框图 6.指令操作的三个阶段:取指、分析、执行 第二章 计算机的发展 1.第一台由电子管组成的电子数字积分和计算机(ENIAC) 第三章 系统总线

计算机Java项目|基于SpringBoot的网上摄影工作室

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路  关注作者有好处 文末获取源码  项目编号:L-BS-QBBSSPRINGBOOT

【计算机组成原理】部分题目汇总

计算机组成原理 部分题目汇总 一. 简答题 RISC和CICS 简要说明,比较异同 RISC(精简指令集)注重简单快速的指令执行,使用少量通用寄存器,固定长度指令,优化硬件性能,依赖软件(如编译器)来提升效率。 CISC(复杂指令集)包含多样复杂的指令,能一条指令完成多步操作,采用变长指令,减少指令数但可能增加执行时间,倾向于硬件直接支持复杂功能减轻软件负担。 两者均追求高性能,但RISC

标准分幅下的图幅号转换成经纬度坐标【原理+源代码】

最近要批量的把标准分幅下的图幅号转换成经纬度坐标,所以这两天写了个程序来搞定这件事情。 先举个例子说明一下这个程序的作用。 例如:计算出图幅号I50G021040的经纬度范围,即最大经度、最小经度、最大纬度、最小纬度。 运用我编写的这个程序,可以直接算出来,这个图幅号的经纬度范围,最大经度为115.3125°,最小经度为115.25°,最大纬度为31.167°,最小纬度为31.125°。

安徽理工大学2计算机考研情况,招收计算机专业的学院和联培都不少!

安徽理工大学(Anhui University of Science and Technology),位于淮南市,是安徽省和应急管理部共建高校,安徽省高等教育振兴计划“地方特色高水平大学”建设高校,安徽省高峰学科建设计划特别支持高校,国家“中西部高校基础能力建设工程”支持高校,入选教育部“卓越工程师教育培养计划”实施高校、中国人民解放军后备军官培养选拔基地、全国首批深化创新创业教育改革示范高校、首

关于修改计算机的处理器数和最大内存数的问题

问题描述: 刚开始本来是想让计算机的运行速度运行的快点,于是在网上搜索如何让计算机的运行速度更快,找到了一种关于修改计算机内存数和计算机的处理核数可以让计算机运行的更快。 遇到问题: 当我通过命令msconfig →引导→高级选项→勾选了处理器数和最大内存数,然后重启,结构整个计算机都卡的要死,于是记录下来。网上的答案有时候真的是很不负责任,也有可能是自己技术不到位。 结果:取消处理器和内

兰州理工大学24计算机考研情况,好多专业都接受调剂,只有计算机专硕不接收调剂,复试线为283分!

兰州理工大学(Lanzhou University of Technology),位于甘肃省兰州市,是甘肃省人民政府、教育部、国家国防科技工业局共建高校,甘肃省高水平大学和“一流学科”建设高校;入选国家“中西部高校基础能力建设工程”、教育部“卓越工程师计划”、“111计划”、新工科研究与实践项目、国家大学生创新性实验计划,是国家国防教育特色学校、全国毕业生就业典型经验高校、中国政府奖

计组_计算机概要与设计

2024.06.23~2024.06.27:计算机组成原理学习笔记 CH1 计算机概要与设计 1.1 计算机的分类1.1.1 传统按照应用分类1.1.2 后PC时代1.1.3 存储容量 1.2 八大伟大设计思想1.2.1 两个设计原则1.2.2 四个提高性能1.2.3 存储器层次1.2.4 冗余提高可靠性 1.3 软硬件基础1.3.1 编程语言分类1.3.2 硬件基础(1) 冯诺依曼

【计算机体系结构】

第一章 计算机体系结构的基本概念 知识点 1.冯诺依曼描述的计算机的四个部分  2.指令驱动  3.存储程序计算机在体系结构上的主要特点 4.计算机体系结构的三个方面  5.计算机组成  6.计算机系统的多层次结构 7.翻译和解释    8.一种指令集结构可以有多种组成,同样一种组成可以有多种物理实现。系列机就是指在一个厂家生产的具有相同的指令集