nandgame中的asm编程Network(网络)

参考:https://zhuanlan.zhihu.com/p/613188641

题目说明:

网络从网络上的另一台计算机接收数据,并在屏幕上显示它。有效载荷将是宽度为 16 像素的图像。有关所使用的网络协议的详细信息,请参阅关卡帮助。网络线被内存映射到地址 6001(十六进制),具有两个重要位:数据(位 0),表示发送到线上的当前位数据,和同步(位 1),在新位到达时发生变化。注意:仅使用汇编语言解决这个问题可能会有挑战。您可能希望先实现堆栈操作宏,然后再返回到这个挑战,这样您就可以使用它们来简化代码。网络将信息作为一系列比特进行传输。在铜线中,一个电流超过某个水平可能表示 1,而没有电流(或低于某个阈值的电流)表示 0。光纤使用光信号,其中光表示 1,而无光表示 0。同步
这引发了一个问题,即如何知道一个比特何时结束,下一个比特何时开始。两个连续的 1 与单个持续时间较长的 1 是无法区分的。因此,网络协议需要一些定时机制来确定比特何时结束。一个常见的解决方案是一个被所有参与方共享的约定的网络时钟。这需要高精度,因为一方稍微偏离同步就会破坏所有数据。另一种选择是一个同步的网络,其中网络本身携带同步信号。这需要更多的带宽,但实现起来更简单。在本任务中,我们使用具有两根线的同步连接。一根线传输数据,另一根传输同步信号。每当同步信号发生变化(从 01 或从 10),就可以从数据线读取一个新比特。这需要两倍的带宽,但实现起来更简单。消息格式
下一个问题是如何确定数据传输何时开始和结束。如果信号为 0 的情况与无传输相同,那么就无法知道另一端是否正在传输 0,因此无法确定传输是否已经结束!因此,协议(在本任务中)是传输始终以 1 位开始,后跟 16 位数据,然后是控制位。如果控制位为 0,则表示传输已经结束。如果控制位为 1,则表示将跟随另外 16 位数据,再次后跟控制位。依此类推。带宽
网络比特率必须足够慢,以便处理器可以接收和处理每个比特。实际上,网络比特率通常比处理器慢得多在这个模拟中,网络比特率比处理器时钟速率慢 100 倍,即程序可以在每个网络比特上执行 100 条指令。

帮助信息中提示:先实现堆栈操作宏

以下代码来自于参考:https://zhuanlan.zhihu.com/p/613188641
待了解

DEFINE LS 0x0010
DEFINE CC 0x0011
DEFINE CD 0x0012INIT_STACK
PUSH_VALUE 0x4000# Waiting for a new bit
LOOP1:
A = 0x6001
D = *A - 1
A = L1C1
D; JGT
D = 0
A = CTL1
JMP
L1C1:
D = 1
CTL1:
A = LS
A = *A
D = D - A
A = LOOP2
D; JNE
A = LOOP1
JMP# Checking if a new content
LOOP2:
A = LS
D = *A
A = L2C1
D; JGT
A = LS
*A = 1
A = CTL2
JMP
L2C1:
A = LS
*A = 0
CTL2:
A = CD
D = *A
A = LOOP3
D; JGT
A = 0x6001
D = *A
A = 1
D = D & A
A = 0x7fff
D; JEQ
A = CD
*A = 1
A = LOOP1
JMP# Merging bits
LOOP3:
A = 16
D = D - A
A = L3C1
D; JLT
A = CD
*A = 0
A = LOOP4
D; JMP
L3C1:
A = CC
D = *A
D = D + *A
PUSH_D
A = 0x6001
D = *A
A = 1
D = D & A
POP_A
D = D + A
A = CC
*A = D
A = CD
*A = *A + 1
A = LOOP1
JMP# Sending content
LOOP4:
A = CC
D = *A
*A = 0
POP_A
*A = D
D = A
PUSH_D
PUSH_VALUE 0x0020
ADD
A = LOOP1
JMP

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

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

相关文章

探索算力(云计算、人工智能、边缘计算等):数字时代的引擎

引言 在数字时代,算力是一种至关重要的资源,它是推动科技创新、驱动经济发展的关键引擎之一。简而言之,算力即计算能力,是计算机系统在单位时间内完成的计算任务数量或计算复杂度的度量。随着科技的不断发展和应用范围的不断扩大…

【Java基础】运行第一个Java程序

开始时间: April 8, 2024 结束时间: April 8, 2024 阶段: Done 需要掌握: 1、了解 JDK 的作用,注意下 JDK 和 JRE 的区别 2、知道 xxx.java 的程序是如何实现跨平台(JVM) 3、了解命令行中 javac 的作用,忘了具体怎…

流式密集视频字幕

流式密集视频字幕 摘要1 IntroductionRelated Work3 Streaming Dense Video Captioning Streaming Dense Video Captioning 摘要 对于一个密集视频字幕生成模型,预测在视频中时间上定位的字幕,理想情况下应该能够处理长的输入视频,预测丰富、…

C语言 | Leetcoce C语言题解之第18题四数之和

题目: 题解: int comp(const void* a, const void* b) {return *(int*)a - *(int*)b; }int** fourSum(int* nums, int numsSize, int target, int* returnSize, int** returnColumnSizes) {int** quadruplets malloc(sizeof(int*) * 1001);*returnSize…

Wireshark,结合wireshark讲讲,一个请求从发出到收到响应都经过了什么

Wireshark 是一款强大的网络协议分析工具,用于捕获和分析网络数据包。当我们使用 Wireshark 跟踪一个请求从发出到收到响应的过程时,它能够揭示出这个过程中涉及的各个网络层次、协议交互以及数据包的详细内容。以下是一个典型HTTP请求(以GET…

企业版ChatGPT用户激增至60万;百度文心一言推出个性化声音定制功能

🦉 AI新闻 🚀 企业版ChatGPT用户激增至60万 摘要:OpenAI首席运营官Brad Lightcap在接受采访时透露,企业版ChatGPT的注册用户已超60万,相较2024年1月的15万用户,短短三个月内增长了300%。这一版本自2023年…

PHP获取路径或目录或当前文件名

<?php //获取当前文件的绝对路径 echo "__FILE__: > ".__FILE__; echo <br/>; //获取当前文件的名称 echo basename(__FILE__); echo <br/>; //获取当前脚本的目录 echo "__DIR__: > ".__DIR__; echo <br/>…

使用Redisson实现分布式锁解决幂等问题

业务场景 功能&#xff1a;实现创建订单功能&#xff0c;要求是保证接口幂等。 引入pom依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.13.2</version> </…

C++11新特性(2) ——动态内存和智能指针从入门到入坑

动态内存与智能指针 动态内存的使用十分容易出现问题&#xff08;内存泄漏/非法内存&#xff09;&#xff0c;而智能指针能更安全、容易的使用动态内存&#xff0c;因为他负责自动释放所指向的对象&#xff0c;并且在出现异常时&#xff0c;也会自动释放。 两种智能指针&#…

《springcloud alibaba》 四 seata安装以及使用

目录 准备调整db配置准备创建数据库 seata配置nacos配置confi.txt下载向nacos推送配置的脚本 启动seata新建项目order-seata项目 订单项目数据库脚本pom.xmlapplication.yml启动类实体类dao类service类controller类feign类mapper类 stock-seata 库存项目数据库脚本pom.xmlappli…

STM32学习和实践笔记(5):时钟树

STM32一共有4个时钟源。外部时钟高低速各一个&#xff0c;内部时钟高低速各一个。 外部高速时钟是&#xff1a;4-16MHZ的HSE OSC。HS表示高速high speed. E表示外部的external。开发板该处安装的8M晶振。 外部低速时钟是&#xff1a;32.768KHz的LSI OSC。LS表示高速low speed…

【IP层的校验和与UDP的校验和】+【FPGA实现】

IP头校验和 IP头校验和是一种错误检测机制&#xff0c;用于在互联网协议&#xff08;IP&#xff09;中保证IP头的数据完整性。 当一个IP数据包从源主机发送到目的主机时&#xff0c;它经过许多路由器和交换机&#xff0c;校验和可以帮助这些中间设备检查数据包在传输过程中是…

为说阿拉伯语的国家进行游戏本地化

阿拉伯语是由超过4亿人使用的语言&#xff0c;并且是二十多个国家的官方语言。进入这些国家的市场并非易事——虽然他们共享一种通用语言&#xff0c;但每个国家都有自己独特的文化&#xff0c;有自己的禁忌和对审查的处理方式。这就是为什么视频游戏公司长期以来都远离阿拉伯语…

Qt QML的插件(Qt Quick 2 Extension Plugin)方法

Qt Quick的插件方法 序言环境前置注意概念——Qt Quick插件的相关知识插件里的qml文件模块名的相关知识模块名本身注意事项模块名版本注意事项 以示例来说明创建插件qmltypes的生成qmltypes的可能性失效 插件的编码注意1、插件模块版本控制2、pro里的注意 调用插件插件信息输入…

华为手机 鸿蒙系统 或者安卓系统的百度网盘下载的文件保存在手机什么位置如何查看

华为手机 鸿蒙系统 或者安卓系统的百度网盘下载的文件保存在手机什么位置如何查看 连接电脑后一般在这里位置 计算机\Mate 20 Pro (UD)\内部存储\Download\BaiduNetdisk 也就是用usb&#xff08;数据线&#xff0c;不是充电线&#xff0c;要四心的 )连接手机后&#xff0c;打…

计算机网络——40各个层次的安全性

各个层次的安全性 安全电子邮件 Alice需要发送机密的报文m给Bob Alice 产生随机的对称秘钥&#xff0c; K s K_s Ks​使用 K s K_s Ks​对报文进行加密&#xff08;为了效率&#xff09;对 K s K_s Ks​使用Bob的公钥进行加密发送 K s ( m ) K_s(m) Ks​(m)和 K B ( K S ) K…

设计模式:生活中的责任链模式

责任链模式可以用一个日常生活中的接力赛来类比。在接力赛中&#xff0c;每个跑步者负责赛道的一段距离&#xff0c;然后将接力棒传递给下一个跑步者&#xff0c;直到最后一个跑步者完成比赛。每个跑步者都有机会跑自己的那一段&#xff0c;但如果他跑不了&#xff0c;他需要将…

uniapp如何配置后使用uni.chooseLocation等地图位置api

在uniapp中想要使用uni.getLocation、uni.chooseLocation ……api的时候我们需要在小程序就开启配置&#xff0c;不然无法使用。 第一步&#xff1a;首先找到manifest.json 第二步&#xff1a;点击源码视图 第三步&#xff1a;在 mp-weixin 加入下面代码 "permission&…

Paper Digest | GPT-RE:基于大语言模型针对关系抽取的上下文学习

持续分享 SPG 及 SPG LLM 双驱架构应用相关进展 1、动机 在很多自然语言处理任务中&#xff0c;上下文学习的性能已经媲美甚至超过了全资源微调的方法。但是&#xff0c;其在关系抽取任务上的性能却不尽如人意。以 GPT-3 为例&#xff0c;一些基于 GPT-3 的上下文学习抽取方…

DXP学习002-PCB编辑器的环境参数及电路板参数相关设置

目录 一&#xff0c;dxp的pcb编辑器环境 1&#xff0c;创建新的PCB设计文档 2&#xff0c;PCB编辑器界面 1&#xff09;布线工具栏 2&#xff09;公用工具栏 3&#xff09;层标签栏 ​编辑 3&#xff0c;PCB设计面板 1&#xff09;打开pcb设计面板 4&#xff0c;PCB观…