首页 > 解决方案 > LC3 程序集编程错误:常数超出允许范围

问题描述

我有一个名为 a.asm 的简单演示汇编程序:

bash-3.2$ 猫 a.asm

; demo program:

; R1 contains INPUT A, for example, x0001 

; R2 contains INPUT B, for example, #-1 (xFFFF)

; R3 contains the result of subtraction of two numbers 

.ORIG       x3000                     ; Program storage location

            LD    R1,INPUT1           ; R1 contains input number
            LD    R2,INPUT2           ; R2 contains -1
            ADD   R3,R1,R2            ; R3 contains result of A-B 
            TRAP x25

INPUT1     .FILL  x0001               ; Input #1 

INPUT2     .FILL  xFFFF               ; 2's complement of 1 (i.e. #-1)

.END

bash-3.2$ lc3as a.asm

起步阶段 1

14:常数超出允许范围

第一次通过时发现 1 个错误。

重击 3.2$

如果我将 xFFFF 更改为 #-1,错误就会消失并且程序按预期工作:

bash-3.2$ lc3as a.asm

起步阶段 1

第一次通过时发现 0 个错误。

开始通行证 2

第二遍发现 0 个错误。

重击 3.2$

这行有什么问题:“INPUT2 .FILL xFFFF”?

标签: lc3

解决方案


推荐阅读