【问题标题】:Parwan assembler code to add a list of numbersParwan 汇编代码添加数字列表
【发布时间】:2015-03-31 00:28:10
【问题描述】:

我正在尝试编写一小段汇编代码以通过 parwan 处理器测试台运行。汇编程序应使用循环将以下数字相加:8,6,4,19,24,7,2,12,1,3,9 并将结果存储在内存中的任意内存位置。

我对汇编没有太多经验,我相信这是 1993 年的语法。

         --load 25 in 4:00
         --load 10 in 4:01
         --load 01 in 4:02

0:15 cla --clear accumulator
0:16 asl --clears carry
0:17 add , i 4:00 --add bytes
0:19 sta 4:03 --store partial sum
0:1B lda 4:00 --load pointer
0:1D add 4:02 --increment pointer
0:1F sta 4:00 --store pointer back
0:21 lda 4:01 --load count
0:23 sub 4:02 --decrement count
0:25 bra_z :2D --end if zero count
0:27 sta 4:01 --store count back
0:29 lda 4:03 --get partial sum
0:2B jmp 0:17 --go for next byte
0:2D nop --adding completed 

我发现这是一个例子,但我不知道如何实现它。我如何编码要在某些内存位置加载的数字,就像我想说的那样 --load 8 in 4:00 并为我列表中的所有数字执行此操作?那么其余的代码会或多或少地满足任务,尽管可能会增加几行?

【问题讨论】:

  • 从 Internet 复制/粘贴代码很少能奏效。梳理逻辑,自己编写一些代码,而不是尝试修改您已经不理解的某人的代码。
  • 你是对的。但是可用的指令集不包括将值加载到内存中的功能,只是累加器?或者在我开始我的主要代码之前,我是否需要单独加载这些值然后存储它们?习惯用C
  • 这是 x86 程序集吗?查找mov 指令。
  • 不,它是编写一个非常简单的 16 位 parwan 处理器的 VHDL 描述。只有看似 17 条指令可用,加载累加器,添加子跳转分支清除等。非常基本,只是不知道某些东西的标准格式。
  • 你能指点我一份规格表、操作码规格或类似的东西吗?

标签: assembly numbers


【解决方案1】:
ORG     00:0000
CLA         --clear accumulator
ASL         --clears carry
ADD,I   00:0020 --adds value of memory location 0020 to ac
STA     00:0040 --store ac value in 0040
LDA     00:0020 --load pointer from memory loc 20
ADD,M   00:0001
STA     00:0020
LDA     00:0021
SUB,M   00:0001
BRA_Z   00:0018
STA     00:0021
LDA     00:0040
JMP     00:0002
LDA     00:0040
STA     00:0040
NOP     
JMP     00:001C


ORG     00:0020
VALUE   00:0030--pointer for memory address
VALUE   00:000A--number of iterations of loop


ORG     00:0030
VALUE   00:000D-data values in hex
VALUE   00:0008
VALUE   00:0006
VALUE   00:0005
VALUE   00:0013
VALUE   00:0015
VALUE   00:0007
VALUE   00:0001
VALUE   00:000C
VALUE   00:0003

这是实现这一目标的基础。

http://www.ohio.edu/people/starzykj/network/Class/ee514/parwan.pdf

此链接包含指令集。

附言。显然这些值是不同的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多