在Easy68k汇编中表示和添加负数

时间:2014-05-03 03:00:12

标签: add negative-number easy68k

我试图在Easy68k中编写一个简单的程序,存储到负值,将它们相加,然后在控制台中输出。我无法弄清楚如何表示负数。我们被要求它们是十六进制格式并以十进制输出。一切似乎都是正确的,但价值观本身。我使用了2s补码,然后将两个数字转换为十六进制。

第一个十进制数= -102 第二个十进制数= -87

使用2s补码我将两个数字转换为十六进制(虽然我不确定这是否正确): -102 - > 1A -87 - > 29

到目前为止,这是我的代码:

addr EQU $7CE0
data1 EQU $1A
data2 EQU $29

    ORG    $1000
START:                  ; first instruction of program

* Put program code here

    MOVE #data2,D1
    MOVEA.W #addr,A0
    ADD #data1,D1
    MOVE D1,(A0)

    MOVE.B #3,D0
    TRAP #15

* Variables and Strings



* Put variables and constants here

    END    START        ; last line of source

我甚至试图将负数的二进制版本直接转换为十六进制:

-102 - > 11100110 - > E6

-87 - > 11010111 - > D7

哪个也没有用。我也试过存储二进制版本并添加它们,但得到了相同的结果。

以下是问题:

在程序集中编写程序以添加两个数字(-102和-87)。输入应为十六进制格式。将结果以十六进制存储在地址$ 7CE0处。以十进制打印结果。(提示:使用跟踪功能任务#3)。如果发生错误,您还应该打印出错误消息。

我知道我歪曲了两个负面数字,但我无法弄清楚如何正确行事。我到处都看了,没有发现如何在68k中存储/添加/输出负数。任何帮助表示赞赏,这是一项任务,所以我不期待直接的答案。谢谢!

0 个答案:

没有答案