Assemble it into binary machine code line by line by hand.
时间: 2024-02-13 10:03:03 浏览: 61
手把手编程
我里给出汇编代码:
```
.ORIG x3000
LD RO, ASCII
LD R1, NEG
AGAIN LDI R2, DSR
BRzp AGAIN
STI RO, DDR
ADD R0, R0, #1
ADD R2, R0, R1
BRnp AGAIN
HALT
ASCII .FILL x0041
NEG .FILL xFFB6 ;-x004A
DSR .FILL xFE04
DDR .FILL xFE06
.END
```
下面是逐行手动汇编的结果:
```
.ORIG x3000
3000: 0001 000 000011111 ; LD R0, ASCII
LD R0, ASCII ; 3000: 0001 000 0000 1111
3001: 0010 001 000011110 ; LD R1, NEG
LD R1, NEG ; 3001: 0010 001 0000 1110
AGAIN
3002: 1010 001 000001101 ; LDI R2, DSR
LDI R2, DSR ; 3002: 1010 001 0000 1101
3003: 0000 000 000001001 ; BRzp AGAIN
BRzp AGAIN ; 3003: 0000 000 0000 1001
3004: 1011 000 000001110 ; STI RO, DDR
STI RO, DDR ; 3004: 1011 000 0000 1110
3005: 0001 000 000000001 ; ADD R0, R0, #1
ADD R0, R0, #1 ; 3005: 0001 000 0000 0001
3006: 0001 010 000000011 ; ADD R2, R0, R1
ADD R2, R0, R1 ; 3006: 0001 010 0000 0011
3007: 0000 010 111111101 ; BRnp AGAIN
BRnp AGAIN ; 3007: 0000 010 1111 1101
3008: 1111 000 000000000 ; HALT
HALT ; 3008: 1111 000 0000 0000
ASCII
3009: 0000 000 010000001 ; .FILL x0041
.FILL x0041 ; 3009: 0000 000 0100 0001
NEG
300A: 1111 1111 111101110 ; .FILL xFFB6 ;-x004A
.FILL xFFB6 ;-x004A ; 300A: 1111 1111 1011 0110
DSR
300B: 1111 1110 00000100 ; .FILL xFE04
.FILL xFE04 ; 300B: 1111 1110 0000 0100
DDR
300C: 1111 1110 00000110 ; .FILL xFE06
.FILL xFE06 ; 300C: 1111 1110 0000 0110
.END
```
注意,这里给出的机器码是针对 LC-3 硬件平台的。如果在其他平台上运行,机器码可能会有所不同。
阅读全文