Ira Baxter..

5

(我已经为汇编程序编写了40多年;实际上在20世纪70年代早期设计并构建了一个生产多寄存器16位机器).真正有用的是CMP指令和指定该条件的JMP相对.

我建议你让算术指令产生状态位

零结果

从结果出发

结果的标志

溢出(签名)

我们称之为"条件位".你会发现它们都很有用.

你的比较指令基本上应该做一个减法,然后把答案扔掉,设置条件位.

您的JMP指令应使用16个操作码之一,3位条件选择器和PC的9位相对偏移量,例如,与PC的跳转相对条件.短相对分支在代码中非常有用.

3位条件选择器应使用两位来选择4个条件中的一个,并使用一位来选择"反转".这样你可以有"jmp zero","jmp not zero"等.

您可以将"跳过无溢出"视为"始终跳跃"; 这些代码非常方便.(我不明白你怎么想"jmp无条件"和"从子程序返回"可以是同一条指令).

从讨论中的评论来看,似乎你没有任何注册.从代码紧凑性(特别是16位指令)和性能(寄存器访问速度总是快于内存)来看,这是一个严重的错误.在操作码命名寄存器后,我会使用2或3或12位.

Aha:在编辑中,OP注意到他有A和B寄存器,可能是由操作码隐式选择的.我设计的机器受PDP-11的启发,但有16个基本操作码和8个寄存器(留下9位"操作数"),它在编码方面确实有所不同.大多数指令将这9位分为寻址模式和偏移:直接(使用第二个字作为地址),立即(第二个字),立即(7位,意味着机器可以轻松处理ASCII文本),间接第二个寄存器自动 - 增量,间接第二个寄存器自动递减,相对于第二个寄存器的短偏移,以及相对于寄存器的第二个字偏移.它没有堆栈,但您可以使用auto-inc/decrement指令轻松实现一个堆栈,这样就不会丢失.很高兴为您编码.(它还具有带陷阱的虚拟内存,以及寄存器集和VM映射之间的硬件上下文切换).

虽然所有这些听起来都需要复杂的逻辑来解码,但事实并非如此.我们设法用~~ 120个所谓的"中等规模"芯片(每个芯片4个门,多路复用器,4位加法器片等)实现这台机器.这些天我希望你能够在一个FPGA中实现整个过程.

术语混淆,我的坏.GOTO和GOSUB不是一回事,我要在黑板上写几百遍. (3认同)

@Psvedman:在硬件复杂性的完整另一端,可变长度指令集可以提供高代码密度,同时仍然允许大量的操作码和大量的立即数."转义序列"操作码充当下一个操作码的修饰符.无论如何,并不是说你想要实现这样的东西,而是[Agner Fog最近的博客文章提出了高性能计算的指令集.](http://www.agner.org/optimize/blog/read. php?i = 421#470)有一些没有设定的想法.他试图保留一些x86的好处,同时放弃坏处. (2认同)

跳转指令微型计算机,哪种类型的汇编程序跳转指令最有用?相关推荐

  1. Java 基础算法 短板问题 : 你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer, 你必须正好使用 k 块

    题目 你正在使用一堆木板建造跳水板. 有两种类型的木板,其中长度较短的木板长度为 shorter ,长度较长的木板长度为 longer . 你必须正好使用 k 块木板.编写一个方法,生成跳水板所有可能 ...

  2. java中跳转页面的两种方法_页面跳转的几种方式

    页面跳转的几种方式: --------------(网络收藏) http头实现页面跳转: out.println(""); content是指跳转的时间间隔,单位为秒 ------ ...

  3. 扩展LLVM:添加指令、内部函数、类型等

    扩展LLVM:添加指令.内部函数.类型等 Introduction and Warning Adding a new intrinsic function Adding a new instructi ...

  4. 矢量数编码有哪几种类型_6种最理想的编码工作(以及吸引每个人的类型)

    矢量数编码有哪几种类型 by David Venturi 大卫·文图里(David Venturi) 6种最理想的编码工作(以及吸引每个人的类型) (The 6 most desirable codi ...

  5. Asp.net支持三种类型的cache[转]

    from:http://www.cnblogs.com/thomasnet/archive/2006/11/26/573104.html Asp.net支持三种类型的cache 想写一个技术快速概述, ...

  6. Oracle 索引扫描的五种类型

    之前在讨论CBO和RBO的时候提到了索引扫描的几种类型. Oracle Optimizer CBO RBO http://blog.csdn.net/tianlesoftware/archive/20 ...

  7. 设计一个处理两种类型地址的地址簿程序_编译器设计-符号表-中间代码生成

    编译器设计-符号表-中间代码生成 Compiler Design - Symbol Table Compiler - Intermediate Code Generation 一.Compiler D ...

  8. Spring事务传播行为7种类型 --- 看一遍就能记住!

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.Spring 事务传播行为一共有7种类型,主要分为3类: 1)支持当前事物. 2)不支持当前事务 ...

  9. 超链接一般有两种表现形式_超链接有哪几种类型,各有什么作用

    展开全部 分类: 1.按照连接路径的不同,网页中超62616964757a686964616fe4b893e5b19e31333431353364链接一般分为以下3种类型:内部链接,锚点链接和外部链接 ...

最新文章

  1. 分布式系统选主怎么玩
  2. 关于按键消抖以及LED灯控制的一个实例
  3. Spring事务之Propagation
  4. boost::sort模块使用最坏情况进行常规 MSD 基数排序的排序示例
  5. JMeter扩展JMeter插件获取更多监听器
  6. non-overlapping-intervals
  7. java的Random类
  8. 群里又会python的吗_自从会了Python在群里斗图就没输过,Python批量下载表情包!...
  9. MySQL 常见面试知识点
  10. Spring Cloud之Zuul网关集群
  11. 感知机算法—推导收敛次数的上界
  12. Windows CE 与PPC有什么不同?
  13. 服务器装系统引导进去系统usb失灵,重装win7后usb全部失灵原因分析以及解决方法(完美解决)...
  14. 手机无线鼠标服务器.zip,无线鼠标遥控器_Remote Mouse 1.0双版 用手机遥控你的电脑...
  15. IMU之磁力计校准地磁场计算磁航向
  16. vue 定时刷新按钮控制
  17. javafx.util.Pair 不支持反序列化
  18. 全国地理信息资源服务系统行政边界矢量数据下载教程
  19. 900亿的分众传媒危险了?
  20. java围棋代码_围棋源代码Java_Applet小程序

热门文章

  1. 批处理写入以及动态与参数化SQL,数据库的性能如何?
  2. ZK的实际应用:MVVM –表单绑定
  3. JavaOne正在重建动力
  4. Google Guava库必需品
  5. macOS下载、安装、使用tomcat服务器及IntelliJ IDEA for Mac 如何集成、配置、运行tomcat
  6. chrome浏览器设置网页快速到顶部和到底部的方法
  7. su联合推拉插件_[实习小记一一SU建模]
  8. bldc 原理 方波控制_【百问百答】ST 电机控制实战问答合辑 | 连载之一
  9. 数仓建模 项目_模型设计_数仓建模 PDF 下载
  10. 计算机知识小技巧,计算机知识---基本操作小技巧.pptx