0011 0000 0000 0000; bắt đầu chương trình tại vị trí x3000
0101 001 001 1 00000; rõ ràng R1, được sử dụng cho các khoản tiền chạy
0101 100 100 1 00000; rõ ràng R4, để được sử dụng như một bộ đếm
0001 100 100 1 01.010; tải R4 với # 10, số lần để thêm
3
1110 010 011.111.100; tải các địa chỉ bắt đầu của dữ liệu
0110 011 010 000000; tải các số tiếp theo sẽ được thêm
0001 010 010 1 00001; tăng con trỏ
0001 001 001 0 00 011; thêm số tiếp theo với số tiền chạy
0001 100 100 1 11111; giảm các truy cập
0000 001 111.111.011; làm điều đó một lần nữa nếu bộ đếm chưa zero
1111 0000 00.100.101; ngăn chặn
Dù bằng cách nào là tốt với LC3Edit. Nó bỏ qua không gian nào. Cách thứ hai sẽ chỉ là
dễ dàng hơn cho bạn đọc. Chương trình của bạn cũng có thể nhìn như thế này, nếu bạn chọn để gõ vào
hex (bình luận sau khi một dấu chấm phẩy vẫn là một lựa chọn):
3000
5260
5920
192A
E4FC
6680
14A1
1243
193F
03FB
F025
Tiết kiệm chương trình của bạn
Click vào nút này hoặc chọn "Save" dưới trình đơn file. Bạn có thể muốn tạo ra một
thư mục mới để lưu vào, bởi vì bạn sẽ được tạo ra nhiều tập tin trong cùng một vị trí khi bạn
quay chương trình của bạn vào một tập tin đối tượng. Gọi addnums.bin chương trình của bạn nếu bạn đã gõ nó trong
1s và 0s. Gọi nó addnums.hex nếu bạn đã gõ nó trong hex.
Tạo file .obj cho chương trình của bạn
Trước khi giả lập có thể chạy chương trình của bạn, bạn cần phải chuyển đổi các chương trình vào một
ngôn ngữ mà LC-3 giả có thể hiểu được. Các mô phỏng không hiểu được
đại diện ASCII hex hoặc nhị phân mà bạn chỉ cần gõ vào LC3Edit. Nó chỉ
hiểu phân đích thực, vì vậy bạn cần phải chuyển đổi chương trình của bạn để nhị phân thực tế, và lưu nó
trong một tập tin gọi là addnums.obj. Nếu bạn đang sử dụng LC3Edit, một và chỉ một trong các nút này
sẽ làm cho điều này xảy ra:
Làm thế nào bạn sẽ biết cái nào? Nó phụ thuộc vào việc bạn cho vào chương trình của bạn trong 1s và
0s (B và một mũi tên), trong hex (X và một mũi tên), hoặc bằng ngôn ngữ assembly (asm và một
mũi tên).
Khi bạn bấm vào nút thích hợp, một tập tin mới sẽ được tạo ra trong cùng một thư mục
mà bạn đã lưu chương trình addnums ban đầu của bạn. Nó sẽ tự động có cùng
4
tên, ngoại trừ phần mở rộng tập tin của nó (các phần của tên của nó mà đến sau ".") Sẽ được
obj.
Nếu bạn đã gõ chương trình của bạn trong 1s và 0s, hoặc ở dạng thập lục, chỉ có một mới file sẽ xuất hiện:
addnums.obj.
Nếu bạn không biết ngôn ngữ lắp ráp LC-3 đâu, bây giờ bạn đã sẵn sàng để chuyển tới
Chương 2, và tìm hiểu về các mô phỏng. Một khi bạn làm học ngôn ngữ lắp ráp, một
chút sau này trong học kỳ, bạn có thể hoàn thành Chương 1 và tìm hiểu về các chi tiết của
bước vào chương trình của bạn trong một cách dễ đọc hơn.
Bước vào chương trình của bạn trong ngôn ngữ lắp ráp LC-3
Vì vậy, bạn ' lại partway qua các học kỳ, và bạn đã được giới thiệu để lắp ráp
ngôn ngữ. Bây giờ bước vào chương trình của bạn sẽ được khá một chút dễ dàng hơn. Đây là những gì các
chương trình để thêm mười con số có thể nhìn giống như, việc sử dụng các giả-ops, nhãn, và
ý kiến.
.ORIG X3000
VÀ R1, R1, x0; rõ ràng R1, được sử dụng cho các khoản tiền chạy
VÀ R4, R4, x0; rõ ràng R4, để được sử dụng như một bộ đếm
aDD R4, R4, xA; tải R4 với # 10, số lần để thêm
LEA R2, x0FC; tải các địa chỉ bắt đầu của dữ liệu
LOOP LDR R3, R2, x0; tải các số tiếp theo sẽ được thêm vào
aDD R2, R2, x1; tăng con trỏ
Thanh R1, R1, R3; thêm số tiếp theo với số tiền chạy
aDD R4, R4, x-1; giảm các truy cập
LOOP BRp; làm điều đó một lần nữa nếu truy cập chưa zero
HALT
END
bạn vẫn cần phải thay đổi chương trình của bạn vào một tập tin obj, mà bây giờ được gọi là "lắp ráp"
chương trình của bạn. . Để làm điều này, nhấn vào nút
Vì bạn sử dụng cách tiếp cận ngôn ngữ lắp ráp fancier, bạn đã được khen thưởng với không
chỉ một, nhưng một số ít các tập tin:
addnums.obj, như bạn mong đợi
addnums.bin, chương trình của bạn trong 1s ASCII và 0s
addnums.hex, chương trình của bạn trong ASCII hex định dạng
addnums.sym, bảng biểu tượng tạo ra trên nhân lắp ráp đầu tiên vượt qua
addnums.lst, danh sách tập tin cho chương trình của bạn
các .bin và các tập tin hex trông giống nhau như những người thể hiện trước đó trong chương (với bất kỳ
nhận xét bị xóa). Hai tập tin cuối cùng là giá trị xem xét.
Addnums.sym
Dưới đây là những tập tin này có vẻ như nếu bạn mở nó trong một trình soạn thảo văn bản:
5
// Symbol Tên trang Địa chỉ
// -------------- - ------------
// LOOP 3004
bạn chỉ có một nhãn trong chương trình của bạn: LOOP. Vì vậy, đó là mục duy nhất trong các biểu tượng
bảng. 3004 là vị trí địa chỉ, hoặc bộ nhớ của LOOP nhãn. Nói cách khác, khi
lắp ráp đã được nhìn từng dòng từng người một trong những đầu tiên vượt qua, nó đã đến dòng
LOOP LDR R3, R2, x0; tải các số tiếp theo sẽ được thêm vào
và nhìn thấy nhãn "LOOP", và nhận thấy rằng Counter Nơi tổ chức các x3004 giá trị
ngay sau đó, và đặt mục nhập duy nhất vào bảng ký hiệu.
vì vậy, trên đèo thứ hai, bất cứ khi nào lắp ráp thấy nhãn mà gọi, như trong các
tuyên bố
BRp LOOP
nó thay thế LOOP với các giá trị hex 3004 . Nếu bạn muốn có nhãn hơn trong chương trình của bạn,
họ sẽ có được liệt kê dưới Symbol Tên, và vị trí của họ sẽ được
liệt kê dưới Page Address.
addnums.lst
Nếu y
đang được dịch, vui lòng đợi..
