27 - 数据传送指令

---- 整理自B站UP主 踌躇月光 的视频

文章目录

  • 1. CPU 电路
  • 2. 数据传送指令的几种情况
  • 3. 实验工程
  • 4. 实验结果

1. CPU 电路

请添加图片描述

2. 数据传送指令的几种情况

# program.asm; 1.
; MOV A, 5;; 2.
; MOV A, B;; 3.
; MOV A, [5];; 4.
; MOV B, 6
; MOV A, [B]; 5.
; MOV [0x2f], 5;; 6. 
; MOV A, 0x18
; MOV [0x2f], A; 7.
; MOV [0x2e], 0x18
; MOV [0x2f], [0x2e]; 8. 
; MOV [0x18], 0xfe
; MOV A, 0x18
; MOV [0x2f], [A]; 9.
; MOV A, 0x18
; MOV [A], 5; 10.
; MOV A, 0x18
; MOV B, 0x33
; MOV [A], B; 11. 
; MOV [0x30], 0xdd
; MOV A, 0x18
; MOV [A], [0x30]; 12. 
; MOV [0x30], 0xee
; MOV B, 0x30
; MOV A, 0x18
; MOV [A], [B]HLT;

3. 实验工程

【27 - 数据传送指令】

import pinFETCH = [pin.PC_OUT | pin.MAR_IN,pin.RAM_OUT | pin.IR_IN | pin.PC_INC,pin.PC_OUT | pin.MAR_IN,pin.RAM_OUT | pin.DST_IN | pin.PC_INC,pin.PC_OUT | pin.MAR_IN,pin.RAM_OUT | pin.SRC_IN | pin.PC_INC,
]MOV = 0 | pin.ADDR2 # MOV指令定义为 1000 xxxx
ADD = (1 << pin.ADDR2_SHIFT) | pin.ADDR2 # ADD指令定义为 1001 xxxxNOP = 0
HLT = 0x3fINSTRUCTIONS = {2: { # 二地址指令MOV: { # MOV指令寻址方式(pin.AM_REG, pin.AM_INS): [ # (寄存器寻址,立即寻址) ==> MOV A,5pin.DST_W | pin.SRC_OUT, # 微指令:读取SRC寄存器里数据(5)送入DST指定的寄存器(A)中],(pin.AM_REG, pin.AM_REG): [ # MOV A, Bpin.DST_W | pin.SRC_R # 写寄存器(A),读寄存器(B)],(pin.AM_REG, pin.AM_DIR): [ # MOV A, [5]pin.SRC_OUT | pin.MAR_IN, # 从SRC寄存器读,送到MAR寄存器(RAM地址上)pin.DST_W | pin.RAM_OUT # 读取RAM指定地址的数据,写到寄存器(A),],(pin.AM_REG, pin.AM_RAM): [ # MOV A, [B]pin.SRC_R | pin.MAR_IN, # 读取寄存器(B)数据,送到MAR寄存器(RAM地址上)pin.DST_W | pin.RAM_OUT # 读取RAM指定地址的数据,写到寄存器(A)],(pin.AM_DIR, pin.AM_INS): [ # MOV [0x2f], 5pin.DST_OUT | pin.MAR_IN, # 读取DST寄存器数据,送到MAR寄存器(RAM地址上)pin.RAM_IN | pin.SRC_OUT # 从SRC寄存器读取数据5,写入RAM中],(pin.AM_DIR, pin.AM_REG): [ # MOV [0x2f], Apin.DST_OUT | pin.MAR_IN,pin.RAM_IN | pin.SRC_R],(pin.AM_DIR, pin.AM_DIR): [ # MOV [0x2f], [0x2e]pin.SRC_OUT | pin.MAR_IN,pin.RAM_OUT | pin.T1_IN,pin.DST_OUT | pin.MAR_IN,pin.RAM_IN | pin.T1_OUT],(pin.AM_DIR, pin.AM_RAM): [ # MOV [0x2f], [A]pin.SRC_R | pin.MAR_IN,pin.RAM_OUT | pin.T1_IN,pin.DST_OUT | pin.MAR_IN,pin.RAM_IN | pin.T1_OUT],(pin.AM_RAM, pin.AM_INS): [ # MOV [A], 5pin.DST_R | pin.MAR_IN,pin.RAM_IN | pin.SRC_OUT],(pin.AM_RAM, pin.AM_REG): [ # MOV [A], Bpin.DST_R | pin.MAR_IN,pin.RAM_IN | pin.SRC_R],(pin.AM_RAM, pin.AM_DIR): [ # MOV [A], [0x30]pin.SRC_OUT | pin.MAR_IN,pin.RAM_OUT | pin.T1_IN,pin.DST_R | pin.MAR_IN,pin.RAM_IN | pin.T1_OUT],(pin.AM_RAM, pin.AM_RAM): [ # MOV [A], [B]pin.SRC_R | pin.MAR_IN,pin.RAM_OUT | pin.T1_IN,pin.DST_R | pin.MAR_IN,pin.RAM_IN | pin.T1_OUT],}},1: {}, # 一地址指令0: { # 零地址指令NOP: [pin.CYC, # 让指令周期清零,跳过这次指令],HLT: [pin.HLT, # 指令停止]}
}# print(bin(MOV))
  1. 编译工程中的 controller.py 生成 micro.bin,加载进入到 CPU 控制单元上的 ROM 中
  2. 编译工程中的 compiler.py 生成汇编的编译结果 program.bin,加载到 RAM 中
  3. 运行

4. 实验结果

  • 依次将 2. 中的集中情况的注释打开,编译运行,这里只给出最后一次的结果。
...; 12. 
MOV [0x30], 0xee
MOV B, 0x30
MOV A, 0x18
MOV [A], [B]HLT;
...

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Apache RocketMQ ACL 2.0 全新升级

作者&#xff1a;徒钟 引言 RocketMQ 作为一款流行的分布式消息中间件&#xff0c;被广泛应用于各种大型分布式系统和微服务中&#xff0c;承担着异步通信、系统解耦、削峰填谷和消息通知等重要的角色。随着技术的演进和业务规模的扩大&#xff0c;安全相关的挑战日益突出&am…

为AI电脑生态注入强悍动力,安耐美PlatiGemini 1200W高性能电源

在DIY攒机的过程中&#xff0c;电源是非常重要的一环&#xff0c;现在高性能的硬件功耗往往很高&#xff0c;因此一款优秀的电源整个系统稳定运行的基石。最近&#xff0c;我发现一款由安耐美&#xff08;Enermax&#xff09;推出的PlatiGemini 1200W电源&#xff0c;它不仅满足…

云原生Kubernetes: K8S 1.29版本 部署ingress-nginx

目录 一、实验 1.环境 2. K8S 1.29版本 部署ingress-nginx 二、问题 1.kubectl 如何强制删除 Pod、Namespace 资源 2.创建pod失败 3.pod报错ImagePullBackOff 4.docker如何将镜像上传到官方仓库 5.创建ingress报错 一、实验 1.环境 &#xff08;1&#xff09;主机 表…

springboot如何使用RedisTemplate

第一步&#xff1a;创建一个spring boot项目 第二步&#xff1a;pom导入redis相关依赖 <!--reids依赖--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </depen…

微信小程序:12.页面导航

什么是页面导航 页面导航指的是页面之间的相互跳转。例如&#xff0c;浏览器中实现的页面导航的方式有两种&#xff1a; 连接location.href 小程序中实现页面导航的两种方式 声明式导航 在页面上声明一个导航组件 通过点击组件实现页面跳转 导航TabBar页面 是指配置TabB…

LM2576D2TR4-5G 3.0安15伏降压开关稳压器 PDF中文资料_参数_引脚图

LM2576D2TR4-5G 规格信息&#xff1a; 制造商:ON Semiconductor 产品种类:开关稳压器 RoHS:是 装置风格:SMD/SMT 封装 / 箱体:TO-263-5 输出电压:5 V 输出电流:3 A 输出端数量:1 Output 最大输入电压:45 V 拓扑结构:Buck 最小输入电压:7 V 开关频率:52 kHz 最小工作…

AndroidStudio中虚拟机(AVD)无法启动,出现unable to locate adb错误

1.检查Android SDK Platform-Tools是否安装(个人是通过这个方法解决的) 首先通过File-Project Structure-Project SDK检查SDK有没有被选中 步骤&#xff1a;打开file -> settings &#xff0c;搜索SDK 之后点击"-",在点击Apply进行安装 2.可能是驱动的问题 电脑…

Mudem,打造私密安全、高效稳定的私人空间

Mudem 是 Codigger 平台中的一个关键组件&#xff0c;它提供基础通讯服务&#xff0c;确保不同类型的机器之间可以进行安全和高效的连接。它其设计理念在于将本地机器、公有云以及私有云上的设备无缝地整合为一个可远程在线访问的工作站&#xff08;Workstation&#xff09;。这…

第10章:知识整合提示

这种技术使用模型的预先存在的知识&#xff0c;来整合新、旧信息&#xff0c;助力我们全面认知特定的主题。 与ChatGPT配合时&#xff0c;只需提供新信息与任务目标&#xff0c;加上清晰的提示词&#xff0c;它就能为你生成满意文本。 例 1:知识整合 任务&#xff1a;将新信息…

刷题之Leetcode242题(超级详细)

242.有效的字母异位词 力扣题目链接(opens new window)https://leetcode.cn/problems/valid-anagram/ 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s "anagram", t "nagaram" 输出: true 示例 2…

SpanBert学习

SpanBERT: Improving Pre-training by Representing and Predicting Spans 核心点 提出了更好的 Span Mask 方案&#xff0c;也再次展示了随机遮盖连续一段字要比随机遮盖掉分散字好&#xff1b;通过加入 Span Boundary Objective (SBO) 训练目标&#xff0c;增强了 BERT 的性…

OpenCV直方图计算

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV实现直方图均衡 下一篇 :OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 在本教程中&#xff0c;您将学习如何&#xff1a; 使用 OpenCV 函数 cv::split 将图像划分…

Servlet和Tomcat运作过程

记录一下前后端请求交互过程&#xff08;不涉及Spring框架&#xff09;&#xff1a; 编写一个UserServlet 在web.xml文件中编写映射路径 编写前端

NotePad++联动ABAQUS

Abaqus 中脚本运行 1. 命令区kernel Command Line Interface &#xff08;KCLI&#xff09; execfile(C:\\temp\second develop\chapter2\pyTest1.py)2. CAE-Run Script File->Run Script 3. Abaqus command Abaqus cae noGUIscript.py(前后处理都可)Abaqus Python scr…

tcp服务器端与多个客户端连接

如果希望Tcp服务器端可以与多个客户端连接&#xff0c;可以这样写&#xff1a; tcpServernew QTcpServer(this);connect(tcpServer,SIGNAL(newConnection()),this,SLOT(onNewConnection())); void MainWindow::onNewConnection() {QTcpSocket *tcpSocket;//TCP通讯的Sockettcp…

Redis系列:内存淘汰策略

1 前言 通过前面的一些文章我们知道&#xff0c;Redis的各项能力是基于内存实现的&#xff0c;相对其他的持久化存储&#xff08;如MySQL、File等&#xff0c;数据持久化在磁盘上&#xff09;&#xff0c;性能会高很多&#xff0c;这也是高速缓存的一个优势。 但是问题来了&am…

牛客网:S老师的公式 ← 取模运算

【题目来源】https://ac.nowcoder.com/acm/contest/76652/A【题目描述】 S 老师丢给你了一个简单的数学问题&#xff1a; 求 。 请你求出答案。【输入格式】 一行一个整数 n (1≤n≤10^6)。【输出格式】 一行一个整数表示答案。【说明】 例如&#xff0c;若n3&#xff0c;则本题…

【Pytorch】(十三)模型部署: TorchScript

文章目录 &#xff08;十三&#xff09;模型部署: TorchScriptPytorch动态图的优缺点TorchScriptPytorch模型转换为TorchScripttorch.jit.tracetorch.jit.scripttrace和script的区别总结trace 和script 混合使用保存和加载模型 &#xff08;十三&#xff09;模型部署: TorchScr…

【Vue3+Tres 三维开发】02-Debug

预览 介绍 Debug 这里主要是讲在三维中的调试,同以前threejs中使用的lil-gui类似,TRESJS也提供了一套可视化参数调试的插件。使用方式和之前的组件相似。 使用 通过导入useTweakPane 即可 import { useTweakPane, OrbitControls } from "@tresjs/cientos"const {…

【六十】【算法分析与设计】用一道题目解决dfs深度优先遍历,dfs中节点信息,dfs递归函数模板进入前维护出去前回溯,唯一解的剪枝飞升返回值true

路径之谜 题目描述 小明冒充X星球的骑士,进入了一个奇怪的城堡。 城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是nn个方格。如下图所示。 按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能斜着音走,也不能跳跃。每走到一个新方格,就要向正北 方和正西…