首页 > 编程语言 >计算机基础系列 —— 汇编器

计算机基础系列 —— 汇编器

时间:2024-03-29 18:33:08浏览次数:26  
标签:... 汇编器 系列 计算机 符号 汇编语言 指令 变量

“The Analytical Engine might act upon other things besides numbers... Suppose, for instance, that the fundamental relations of pitched sounds in the science of harmony and of musical composition were susceptible of such expression and adaptations... If so, the engine might compose elaborate and scientific pieces of music of any degree of complexity.” —— Ada Lovelace(诗人拜伦的女儿在 1840 年的看法)

文中提到的所有实现都可以参考:nand2tetris_sol,但是最好还是自己学习课程实现一遍,理解更深刻。

之前的文章介绍了 Hacker 和汇编语言,如果要让汇编语言运行在 Hacker 上,我们还需要一个汇编器程序,把汇编语言翻译成机器语言,才能使得汇编语言运行。

A 指令

C 指令

如上图,A 指令和 C 指令的翻译很简单。每条指令都可以一对一翻译成 16-bits 的 01 串。

空格、注释和缩进

汇编器直接忽略掉就好。

符号

预定义符号

这里有些符号在后面的文章里会用到,对于预定义符号直接把 symbol 替换成 value,就和上面的指令翻译是一样的了。

标签符号

标签符号对应的 value 就是和标签相邻的下一条指令的行数,对应的就是 ROM 里的指令行数。

变量符号

变量符号就简单一些,除了预定义的 15 个变量,新定义的变量从 RAM[16] 依次存储,变量的映射关系存储在汇编器的 Symble table 里,如下图:

接下来我们就可以用自己喜欢的语言 Python、C++ etc... 实现按上面的过程实现这个汇编器啦,实际上最早的汇编器使用机器语言写的,重要的不是用什么语言写汇编器,重要的是理解汇编器的核心思想 —— 把指令集翻译成机器语言。

后面的文章,我们还会实现自己的操作系统,高级语言,VMCode Translator。

标签:...,汇编器,系列,计算机,符号,汇编语言,指令,变量
From: https://blog.csdn.net/quoniammm/article/details/137126463

相关文章

  • getmac 是一个 Windows 系统命令,用于显示指定计算机上的网络适配器的物理地址(MAC 地址
    getmac是一个Windows系统命令,用于显示指定计算机上的网络适配器的物理地址(MAC地址)。MAC地址是唯一标识网络设备的地址,通常由6组十六进制数字组成,用于在局域网中唯一标识网络设备。使用getmac命令可以查看计算机上每个网络适配器的MAC地址,这对于网络管理员来说是一个很......
  • Python工具箱系列(五十一)
    九宫格与词云对图片进行九宫格切割,并且放到微信朋友圈曾经风靡一时。对于python来说,这个也非常简单。fromPILimportImageimportmathdefninerectanglegrid(inputfilename):"""实现九宫格切割Args:inputfilename(string):输入文件名称""......
  • 【计算机网络】http协议的原理与应用,https是如何保证安全传输的
    ✨✨欢迎大家来到景天科技苑✨✨......
  • 2024年1000个计算机毕业设计项目推荐(源码+论文【万字】)
    2024年最新计算机毕业设计题目推荐,项目汇总!本科、专科。项目设计、项目定制、辅导、万字文档哈喽,大家好,大四的同学马上要开始做毕业设计了,大家做好准备了吗?博主给大家详细整理了计算机毕业设计最新项目,对项目有任何疑问,都可以问博主哦~技术栈包括但不限于:Java、JavaWeb......
  • 2月手机市场表现稳健,iPhone15系列拉动手机市场均价大幅上涨
    最近,小米Civi4Pro手机正式发布,多数网友表示期待其在轻薄机型和等深微曲屏上的新表现。与此同时,2月手机市场稳步发展,对比去年有所进步。根据鲸参谋电商数据平台显示,今年2月线上电商平台(淘宝天猫京东)的手机销量累计约560万件,同比去年下滑8%;销售额累计约220亿,同比去年上涨10%......
  • AI 异构计算机设计原理图:902-基于6U VPX 高带宽PCIe的GPU AI 异构计算机
    基于6UVPX高带宽PCIe的GPUAI异构计算机 一、产品概述   基于6U 6槽VPX高带宽PCIe的GPUAI异构计算机以PCIe总线为架构,通过高带宽的PCIe互联,实现主控计算板、GPU AI板卡,FPGA接口板,存储板的PCIe高带宽互联访问,PCIe支持3.0规范,X8或者X16带宽。主板......
  • 原语笔记:BuF系列
    参考:UG472UG953UG768BUFGPrimitive:GlobalClockSimpleBuffer介绍:该设计元素是一个高扇出缓冲器,它将信号连接到全局布线资源,以实现信号的低偏斜分布。BUFG通常用在时钟网络以及其他高扇出网络(例如设置/重置和时钟使能)上。简介:全局缓冲,BUFG的输出到达FPGA内部的I......
  • 山东大学23强基班计算机导论第四次习题答案
    T7.1#include<iostream>usingnamespacestd;intmain(){intlower,upper;cin>>lower>>upper;if(lower>upper||upper>100||lower<=0){cout<<"Invalid.";return0;}......
  • 【附源码】JAVA计算机毕业设计在线考研刷题系统(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,计算机在教育领域的应用日益广泛。特别是在线教育平台,以其便捷性、灵活性和资源共享性受到了广大师生的青睐。近年来,考研热潮......
  • 【附源码】JAVA计算机毕业设计在线考试系统的设计与实现(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的迅猛发展和互联网的普及,传统的教育模式正面临着深刻的变革。在线考试系统作为教育信息化进程中的重要一环,正逐渐取代传统的纸质考试方......