lc3编写一个主程序,从键盘输入n,调用子程序,然后输出n次“hello”
时间: 2023-11-29 12:05:10 浏览: 51
以下是一个 LC-3 汇编程序,它从键盘输入一个数字 n,然后调用一个名为 PRINT_HELLO 的子程序,该子程序输出 n 次“hello”:
```
.ORIG x3000
; 从键盘读取一个数字 n
LEA R0, PROMPT ; 输出提示信息
PUTS
GETC ; 读取字符
OUT ; 回显字符
IN ; 读取数字
LD R1, N ; 将数字 n 存储到 R1 中
NOT R1 ; 取反,用于后面循环计数
ADD R1, R1, #1 ; 加 1,用于后面循环计数
; 调用 PRINT_HELLO 子程序 n 次
LOOP
ADD R1, R1, #-1
BRz END_LOOP
JSR PRINT_HELLO
BR LOOP
; 输出 "hello"
PRINT_HELLO
LEA R0, HELLO ; 输出 "hello"
PUTS
RET
; 存储常量
PROMPT .STRINGZ "Enter a number: "
HELLO .STRINGZ "hello"
N .FILL x0000
END_LOOP
HALT
.END
```
该程序首先从键盘读取一个数字 n,并将其存储在 R1 中。然后,它通过循环 n 次来调用 PRINT_HELLO 子程序,该子程序输出字符串“hello”。输出字符串的操作由 PRINT_HELLO 子程序完成。最后,程序在 END_LOOP 标签处停止运行并等待 HALT 指令的执行。