【发布时间】:2019-12-18 04:40:49
【问题描述】:
.ORIG x3000
LEA R0, SENTENCE_PTR ; start at memory address x4000 (sentence)
LDR R1, R0, #0 ; ASCII at x4000 ; (ASCII)
LEA R2, WORDS ; start at beginning of memory block
STR R1, R2 ; store ASCII in memory
ADD R2, R2, #1 ; increment memory pointer
HALT
SENTENCE_PTR .FILL x4000 ; beggining of sentence
WORDS .BLKW #198 ; pointers to words and counters
.END
我正在尝试将一串字符或单词放入单行内存中。如果我一次添加一个字符,如何将字符添加到同一行内存以创建字符串。我可以一次将整个字符串添加到一行内存中吗?我只能找到将字符添加到内存中的参考资料,而不是字符串。
【问题讨论】:
-
内存的“行”是什么意思?内存本质上是一维数组,而不是具有行和列的二维数组。如果您指的是单个 8 位存储单元,那么显然这仅够容纳一个字符。如果你想要一个指针数组(例如
char *argv[]),你可以将一个指向字符串的指针存储到内存中的一个单词中。如果您的意思是用一条指令将整个字符串复制到内存中的多个字节:不,这是汇编语言。 LC3 没有任何机器指令可以一次复制多个(或 2 个)字节。