简单指令编码设计的一个作业

zhiweipu 2017-10-22 11:32:13


话说mov,add这种不就是汇编指令吗,那我还要设计什么,直接把例子里那个挪下来不就行了吗?
但是我看要求又好像不是那么简单。
我现在主要是搞不懂我应该在纸上写什么
有没有人给我个例子看看,或者能帮我解释一下题目要求
还没学过汇编,真的搞不懂我应该写什么啊
...全文
902 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
让你设计啊,你抄x86的也不符合要求。 指令才三种,实际上最长两字节编码就可以实现,如果最长三字节,可以实现立即数到内存操作,随便设计一下; 第一字节 第二字节(可选) 第三字节(可选) b7 b6 b5 b4 b3 b2 b1 b0 b7..b0 b7..b0 opcode MOD R/M 地址/立即数 立即数 opcode: 00 mov 01 add 10 sub 11 无效 mod: 00 寄存器寻址 (r<->r) 01 内存寻址 (m<->r) 10 寄存器立即寻址 (r<-i) 11 内存立即寻址 (m<-i) R/M: b3 b2 目标操作数 b1 b0 源操作数 对于寄存器寻址,编码为: 00 A 01 B 10 C 11 D 对于内存寻址或立即数寻址,目标操作数、源操作数之一或二者均可不使用。 举例: mov a, b 编码为 01 (hex) mov a,ff 编码为 00 ff (hex) add a,3 编码为 60 03 (hex) mov a, [20] 编码为 10 20 (hex) mov [20],3 编码为 30 20 03 (hex)
飛一俠 2017-10-24
  • 打赏
  • 举报
回复
这么简单的一个题目,在外行人看来是这么的难,这就是编汇
zhiweipu 2017-10-23
  • 打赏
  • 举报
回复
引用 1 楼 zara 的回复:
照搬,还要你作业什么呢?而且,x86 指令上百了吧,操作码域的位数就要符合这个数量的,是 1-2 字节呢;你的题目才要求 3 个指令,操作码域肯定是没必要这么大的。寻址模式域也是一样的。
怎么做,可以照 x86 指令的编码模式来,把指令分成操作码、寻址模式和附加地址等几个部分;操作码的编码可以自己定义,甚至还需要为将来指令扩展升级留个设置;寻址模式,可以参考 x86 的,可能不需要那么多。
你这么简单的指令系统,一个指令 1-2 个字节就可以了。

还没学过汇编,就做这个,好像有些不合理啊。

能不能具体举个例子呢
在win7下debug运行mov前面的编码是这样的,我是直接抄下来就行吗

zara 2017-10-23
  • 打赏
  • 举报
回复
照搬,还要你作业什么呢?而且,x86 指令上百了吧,操作码域的位数就要符合这个数量的,是 1-2 字节呢;你的题目才要求 3 个指令,操作码域肯定是没必要这么大的。寻址模式域也是一样的。
怎么做,可以照 x86 指令的编码模式来,把指令分成操作码、寻址模式和附加地址等几个部分;操作码的编码可以自己定义,甚至还需要为将来指令扩展升级留个设置;寻址模式,可以参考 x86 的,可能不需要那么多。
你这么简单的指令系统,一个指令 1-2 个字节就可以了。

还没学过汇编,就做这个,好像有些不合理啊。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧