首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在汇编中,从二进制到灰色的转换可以正常工作,但反之亦然

在汇编中,从二进制到灰色的转换可以正常工作,但反之亦然
EN

Stack Overflow用户
提问于 2020-11-12 19:54:24
回答 1查看 52关注 0票数 0

我正在尝试建立一个PicoBlaze的程序,这将从格雷码转换为二进制,反之亦然。以下是我到目前为止所做的工作:

代码语言:javascript
复制
address 0
start: ;Infinite loop...
;Converting from binary to gray...
constant binary_input,0
constant gray_output,0
input s0,binary_input
load s1,s0
sr0 s1
xor s1,s0
output s1,gray_output ;Seems to work.
;Converting from gray to binary...
constant gray_input,1
constant binary_output,1
input s0,gray_input
load s1,s0
sl0 s1
xor s1,s0
output s1,binary_output ;Does not work.
jump start

因此,从二进制到Gray的转换似乎是有效的。但是,从Gray到binary的转换不起作用。例如,对于输入:

代码语言:javascript
复制
2
3

我希望得到以下输出:

代码语言:javascript
复制
3
2

但是,我得到了以下输出:

代码语言:javascript
复制
3
5

这里发生什么事情?我正在用PicoBlaze Simulator测试我的程序。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-12 20:59:03

好了,这看起来很管用:

代码语言:javascript
复制
address 0
start: ;Infinite loop...
  ;Converting from binary to gray...
  constant binary_input,0
  constant gray_output,0
  input s0,binary_input
  load s1,s0
  sr0 s1
  xor s1,s0
  output s1,gray_output
  ;Converting from gray to binary...
  constant gray_input,1
  constant binary_output,1
  input s0,gray_input
  load s1,s0
  convert_to_binary_loop:
    sr0 s1
    xor s0,s1
    compare s1,0
  jump nz,convert_to_binary_loop
  output s0,binary_output
jump start
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64803450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档