我想我错过了一些东西,因为这应该很容易,但我就是不知道如何显示负数。我只是想让我的程序在溢出时输出-1,但它一直显示65535。我真的不明白负数在68 k中是如何工作的。我试着这样做:
MOVE.W #-1,D1 MOVE #3,D0 TRAP #15
就像这样
MOVE.W #1,D1 NEG D1 MOVE #3,D0 TRAP #15
因此,我不确定问题是否仅在于显示负数或存储负数,或者两者都有。任何帮助是赞赏!
6mzjoqzu1#
一般来说,除非你使用的编程语言内置了输出有符号数的方法,否则显示有符号值的正确方法是测试它们是否为负,如果是,则将它们反转并输出-。然后使用任何方法将使用无符号数字。在某些情况下,可能有必要在处理完其他所有内容之后再处理-(例如如果正在利用某些LCD控制器的能力来以从右到左的顺序处理数据,则可以以最低位数字优先的顺序输出数字,一旦具有零残差就停止,然后如果需要则输出“-”,并且最后输出足够的空白以填充字段),但是这样的事情可以通过使“输出数字”例程接受指示什么字符的参数来适应,如果有的话,应该在数字之前;然后调用者可以适当地传递“+”、“-”或“”。
-
polhcujo2#
正确的方法是:
MOVE.L #-1,D1 MOVE #3,D0     Display signed number in D1.L in decimal in smallest field. TRAP #15
并且:
MOVE.W #1,D1 NEG.L D1 MOVE #3,D0     Display signed number in D1.L in decimal in smallest field. TRAP #15
2条答案
按热度按时间6mzjoqzu1#
一般来说,除非你使用的编程语言内置了输出有符号数的方法,否则显示有符号值的正确方法是测试它们是否为负,如果是,则将它们反转并输出
-
。然后使用任何方法将使用无符号数字。在某些情况下,可能有必要在处理完其他所有内容之后再处理-
(例如如果正在利用某些LCD控制器的能力来以从右到左的顺序处理数据,则可以以最低位数字优先的顺序输出数字,一旦具有零残差就停止,然后如果需要则输出“-”,并且最后输出足够的空白以填充字段),但是这样的事情可以通过使“输出数字”例程接受指示什么字符的参数来适应,如果有的话,应该在数字之前;然后调用者可以适当地传递“+”、“-”或“”。polhcujo2#
正确的方法是:
并且: