symbol table for the following LC-3 assembly language program是什么东西
时间: 2024-02-13 12:02:17 浏览: 23
Symbol table是一个记录程序中标识符及其属性的表格,通常包括标识符的名称、类型、地址等信息。对于LC-3汇编程序,Symbol table会记录程序中定义的标签(Label)及其对应的地址,以便在程序执行时能够正确地跳转到标签所在的地址。例如,下面是一个LC-3汇编程序及其对应的Symbol table:
```
.ORIG x3000
START ADD R0, R1, R2 ; 将R1和R2的值相加,结果存入R0
AND R1, R0, #0 ; 将R0与0进行按位与操作,结果存入R1
BRnzp END ; 无条件跳转到END标签所在的位置
.FILL x1234 ; 将x1234写入内存地址x3003
END HALT ; 停机指令
.END
```
对应的Symbol table可能如下所示:
```
Label | Address
-----------------
START | x3000
END | x3006
```
相关问题
2. Construct the symbol table for the following LC-3 assembly language program. (10 points) 2) Assemble it into binary machine code line by line by hand. (30 points) 3) What does the program do? (10 points)
LC-3 assembly language program:
```
.ORIG x3000
AND R1, R1, #0
ADD R1, R1, #5
LOOP ST R1, NUM
ADD R1, R1, #-1
BRz EXIT
BRnzp LOOP
EXIT HALT
NUM .FILL x0000
.END
```
Symbol table:
| Symbol | Value |
|--------|-------|
| LOOP | x3003 |
| EXIT | x3008 |
| NUM | x3009 |
Binary machine code:
```
.ORIG x3000
0101000000000000 ; AND R1, R1, #0
0001000100000101 ; ADD R1, R1, #5
LOOP
0011000100001001 ; ST R1, NUM
0001000100000001 ; ADD R1, R1, #-1
0000000000000010 ; BRz EXIT
0000000000000011 ; BRnzp LOOP
EXIT
0000000000000101 ; HALT
NUM .FILL x0000
.END
```
Explanation of the program:
This program initializes R1 to 5, and then enters a loop that stores R1's value to the memory location labeled NUM, decrements R1, and checks if R1 is zero. If R1 is not zero, the program jumps back to the beginning of the loop. When R1 reaches zero, the program exits the loop and halts. Therefore, this program stores the numbers 5, 4, 3, 2, and 1 to memory location NUM.
1. Write a LC-3 subroutine for printing “Hello” for N times. Write a main program to input N from the keyboard, call the subroutine and then output “Hello” for N times. (20 points) 2. 1) Construct the symbol table for the following LC-3 assembly language program. (10 points) 2) Assemble it into binary machine code line by line by hand. (30 points) 4. What is an operating system? List at least three functions of an operating system. (20 points)
1. LC-3 subroutine for printing "Hello" for N times:
```
PrintHello:
ADD R2, R0, #0 ; R2 = 0
ADD R3, R0, #-6 ; R3 = -6 (ASCII code for 'H')
Loop:
BRz EndLoop ; if N = 0, exit loop
PUTc ; print character stored in R3
ADD R2, R2, #1 ; increment counter
ADD R4, R2, #-N ; R4 = N - counter
BRp Loop ; if R4 >= 0, continue loop
EndLoop:
RET ; return from subroutine
```
Main program to input N from the keyboard, call the subroutine, and output "Hello" for N times:
```
.ORIG x3000
; Prompt user to input N
LEA R0, Prompt
PUTs
; Read in N
GETc
OUT
IN
ADD R1, R0, #-10 ; convert ASCII code to decimal digit
ADD R2, R0, #0 ; store N in R2
; Call subroutine to print "Hello" for N times
JSR PrintHello
; Output newline character
PUTc
ADD R0, R0, #10
OUT
; Halt program
HALT
Prompt: .STRINGZ "Enter the value of N: "
.END
```
2. Symbol table:
| Symbol | Value |
|--------|-------|
| START | x3000 |
| COUNT | x3001 |
| RESULT | x3002 |
| LOOP | x3003 |
| | |
| ADD | x1000 |
| AND | x5000 |
| BRz | x0800 |
| JMP | xC000 |
| JSR | x4800 |
| LD | x2000 |
| LDI | xA000 |
| LDR | x6000 |
| LEA | xE000 |
| NOT | x903F |
| ST | x3000 |
| STI | xB000 |
| STR | x7000 |
2. Binary machine code:
| Instruction | Address | Binary Code |
|-------------|---------|-------------|
| .ORIG x3000 | | 0011000000000000 |
| START | x3000 | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| .END | | 0000000000000000 |
3. An operating system is a software program that manages computer hardware and software resources and provides common services for computer programs. Three functions of an operating system are:
- Resource management: An operating system manages hardware resources such as CPU, memory, and disk space, allocating them to different applications and ensuring that they are used efficiently.
- Process management: An operating system creates and manages processes, which are instances of running programs, and switches between them to give the illusion of multitasking.
- User interface: An operating system provides a user interface that allows users to interact with the computer, such as a graphical user interface or a command line interface.