!!刚学,不是很懂!关于冯·诺依曼计算机的问题

设计一台计算机的指令格式:4位操作码,地址码为三地址指令,字长固定16位。
用以上机器指令完成:从主存中读入一个数1,然后计算1×8(10进制),
将结果再输出到主存(提示:乘法操作可用移位操作完成)。假定程序在主存
储器中的起始地址为10H。图示并说明计算过程,如指令和数据及其在主存储
器的地址,指令寄存器、程序计数器的变化,并解释每一步的操作和结果。
看了好多视频,但对此题就是不知该从何下笔😭
求解答过程

网上文章 计算机组成原理微程序设计乘法指令 请参考
需要改写一下16位,原文32位。
https://www.docin.com/touch_new/preview_new.do?id=224736280

参考一下

计算机组成原理16-指令系统_swadian2008的博客-CSDN博客 计算机组成原理指令在计算机中的地位一、机器指令每一条机器语言的语句称为机器指令,而又将全部机器指令的集合称为机器的指令系统。指令的一般格式1、操作码操作码用来指明该指令索要完成的操作,如加法、减法、传送、移位、转移等。通常,其位数反映了机器的操作种类,也即机器允许的指令条数。操作码的长度可以是固定的,也可以是变化的。操作码长度固定的指令,将操作码集中放在指令字的一个字段内,这种格式便于硬件设计,指令译码时间段,广泛用于字长较长的、大中型计算机和超级小型计算机以 https://blog.csdn.net/swadian2008/article/details/112854898?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166899255316782412578561%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166899255316782412578561&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-112854898-null-null.nonecase&utm_term=4%E4%BD%8D%E6%93%8D%E4%BD%9C%E7%A0%81%EF%BC%8C%E5%9C%B0%E5%9D%80%E7%A0%81%E4%B8%BA%E4%B8%89%E5%9C%B0%E5%9D%80%E6%8C%87%E4%BB%A4%EF%BC%8C%E5%AD%97%E9%95%BF%E5%9B%BA%E5%AE%9A16%E4%BD%8D%E3%80%82%20%E7%94%A8%E4%BB%A5%E4%B8%8A%E6%9C%BA%E5%99%A8%E6%8C%87%E4%BB%A4%E5%AE%8C%E6%88%90%3A%E4%BB%8E%E4%B8%BB%E5%AD%98%E4%B8%AD%E8%AF%BB%E5%85%A5%E4%B8%80%E4%B8%AA%E6%95%B01%2C%E7%84%B6%E5%90%8E%E8%AE%A1%E7%AE%971%C3%978%2810%E8%BF%9B%E5%88%B6%29%2C%20%E5%B0%86%E7%BB%93%E6%9E%9C%E5%86%8D%E8%BE%93%E5%87%BA%E5%88%B0%E4%B8%BB%E5%AD%98%28%E6%8F%90%E7%A4%BA%3A%E4%B9%98%E6%B3%95%E6%93%8D%E4%BD%9C%E5%8F%AF%E7%94%A8%E7%A7%BB%E4%BD%8D%E6%93%8D%E4%BD%9C%E5%AE%8C%E6%88%90%29%E3%80%82%E5%81%87%E5%AE%9A%E7%A8%8B%E5%BA%8F%E5%9C%A8%E4%B8%BB%E5%AD%98%20%E5%82%A8%E5%99%A8%E4%B8%AD%E7%9A%84%E8%B5%B7%E5%A7%8B%E5%9C%B0%E5%9D%80%E4%B8%BA10H%E3%80%82&spm=1018.2226.3001.4450

我猜前面的回答,你还是看不懂;
你不是不懂这些概念,而是你不懂如何着手开始;
如果看得懂,不会再来问了。

你需要有人协助你,帮你解释,你才知道怎么做。

而这个,我们可以交流交流。

关于冯诺依曼计算机语言,冯-诺依曼式程序语言浅论 -- NothingHere
https://blog.csdn.net/weixin_28831399/article/details/118783725

冯-诺依曼计算机的基本特征是:程序=命令+数据

冯-诺依曼程序语言要解决的基本问题包括:

1.原始形式到内存表达的转换

2.流程控制,包括串行的顺序,循环,分支,递归和并行相应流程

3.数据结构,注重于内存形式如何在语言中表达.

4.组织程序,流程和数据结构如何体现在语言中,逻辑流程和概念由语言如何表达.

有几种基本内存表达形式被广为接受:

-- 整数 --


可以直接以计算机字来表示,根据需要不同可表达为:

byte(8个二进制位,范围在2的8次方) 定义为int8_t, uint8_t

word(16个二进制位,范围在2的16次方) 定义为int16_t, uint16_t

dword(32个二进制位,范围在2的32次方) 定义为int32_t, uint32_t

qword(64个二进制位,范围在2的64次方) 定义为int64_t, uint64_t

int(n位,范围在2的n次方, 一个计算机字,计算机可以最快速处理,与地址空间有关)

每一种内存表达还可以解释为有符号数和无符号数两种,但基本上都以补码的形式编码.

-- 指针 --


一般都直接使用了int(根据计算机字长)整数结构.定义为intptr_t和uintptr_t.

-- 字符 --

一般称字符的内部表达为编码.有很多种,最有影响的包括:

ANSI : ASCII BCD

UNICODE: utf-8 utf-16 utf-32等

汉字编码: GB2312, GBK, GB18000, BIG5

通常使用一个整数来表达.可能使用8到32个二进制位,一般都等长,但也有例外.

-- 字符串 --


字符串的定义很多.包括C语言, Pascal, Basic等语言都定义自己的字符串表达.

C语言

定义为一段连续的内存空间.以基本长度(包括byte和word两种)为单位, 在

字符串最后补以'\0'以表示结束

Pascal

内存定义与C语言一样,只是它将第一个单位解释为整数,表示字符串长度.

因此没有最后的'\0';

Basic

内存定义和解释与Pascal语言几乎完全一样,只是它的长度总是一个int,不随

字符单位变化面变化.

以上都只能包括编码为等长的字符.

C++中std::string的定义

定义包括对象结构部分(用表示)和成员部分.不考虑补齐等问题.

字符串分为两个部分.一是引用结构,二是数据结构

引用结构内存图如下:

int_t - 字符串长度

int_t - 数据结构长度

intptr_t - 指向数据结构

... - 其它结构

数据结构是一个C语言的字符串.

-- 日期和时间 --


日期和时间通常可以表示为整数的集合.

C-Runtime表示日期是使用tm结构:

Win32表示日期使用SYSTEMTIME结构:

日期还可以表示从某时起的时间,例如

Win32中FILETIME就是一个int64_t表示从unix元年到现在的毫秒数.

比较特殊的一个表达法是,

SFL中使用一个32位整数来表示日期

0000 00 00 分别表示年,月,日

00 00 00 00 分别表示时,分, 秒, 10毫秒

这样的一个好处是可以直接比较日期大小