0011 0000 0000 0000 ;start the program at location x30000101 001 001 1 dịch - 0011 0000 0000 0000 ;start the program at location x30000101 001 001 1 Việt làm thế nào để nói

0011 0000 0000 0000 ;start the prog

0011 0000 0000 0000 ;start the program at location x3000
0101 001 001 1 00000 ;clear R1, to be used for the running sum
0101 100 100 1 00000 ;clear R4, to be used as a counter
0001 100 100 1 01010 ;load R4 with #10, the number of times to add
3
1110 010 011111100 ;load the starting address of the data
0110 011 010 000000 ;load the next number to be added
0001 010 010 1 00001 ;increment the pointer
0001 001 001 0 00 011 ;add the next number to the running sum
0001 100 100 1 11111 ;decrement the counter
0000 001 111111011 ;do it again if the counter is not yet zero
1111 0000 00100101 ;halt
Either way is fine with LC3Edit. It ignores spaces anyway. The second way will just be
easier for you to read. Your program could also look like this, if you choose to type it in
hex (comments after a semicolon are still an option):
3000
5260
5920
192A
E4FC
6680
14A1
1243
193F
03FB
F025
Saving your program
Click on this button or choose “Save” under the File menu. You probably want to make a
new folder to save into, because you’ll be creating more files in the same place when you
turn your program into an object file. Call your program addnums.bin if you typed it in
1s and 0s. Call it addnums.hex if you typed it in hex.
Creating the .obj file for your program
Before the simulator can run your program, you need to convert the program to a
language that the LC-3 simulator can understand. The simulator doesn’t understand the
ASCII representations of hex or binary that you just typed into LC3Edit. It only
understands true binary, so you need to convert your program to actual binary, and save it
in a file called addnums.obj. If you’re using LC3Edit, one and only one of these buttons
will make this happen:
How will you know which one? It depends whether you entered your program in 1s and
0s (B and an arrow), in hex (X and an arrow), or in assembly language (asm and an
arrow).
When you press the appropriate button, a new file will be created in the same folder
where you saved your original addnums program. It will automatically have the same
4
name, except that its file extension (the part of its name which comes after the “.”) will be
.obj.
If you typed your program in 1s and 0s, or in hex, only one new file will appear:
addnums.obj.
If you don’t know the LC-3 assembly language yet, now you’re ready to skip ahead to
Chapter 2, and learn about the simulator. Once you do learn the assembly language, a
little bit later in the semester, you can finish Chapter 1 and learn about the details of
entering your program in a much more readable way.
Entering your program in the LC-3 assembly language
So you’re partway through the semester, and you’ve been introduced to assembly
language. Now entering your program is going to be quite a bit easier. This is what the
program to add ten numbers could look like, making use of pseudo-ops, labels, and
comments.
.ORIG x3000
AND R1,R1,x0 ;clear R1, to be used for the running sum
AND R4,R4,x0 ;clear R4, to be used as a counter
ADD R4,R4,xA ;load R4 with #10, the number of times to add
LEA R2,x0FC ;load the starting address of the data
LOOP LDR R3,R2,x0 ;load the next number to be added
ADD R2,R2,x1 ;increment the pointer
ADD R1,R1,R3 ;add the next number to the running sum
ADD R4,R4,x-1 ;decrement the counter
BRp LOOP ;do it again if the counter is not yet zero
HALT
.END
You still need to change your program to a .obj file, which is now called “assembling”
your program. To do this, click on the button .
Since you used the fancier assembly language approach, you’ve been rewarded with not
just one, but a handful of files:
addnums.obj, as you expected
addnums.bin, your program in ASCII 1s and 0s
addnums.hex, your program in ASCII hex format
addnums.sym, the symbol table created on the assembler’s first pass
addnums.lst, the list file for your program
The .bin and .hex files look the same as the ones shown earlier in the chapter (with any
comments removed). The last two files are worth looking at.
addnums.sym
Here’s what this file looks like if you open it in a text editor:
5
//Symbol Name Page Address
//---------------- ------------
// LOOP 3004
You only had one label in your program: LOOP. So that’s the only entry in the symbol
table. 3004 is the address, or memory location, of the label LOOP. In other words, when
the assembler was looking at each line one by one during the first pass, it got to the line
LOOP LDR R3,R2,x0 ;load the next number to be added
and saw the label “LOOP,” and noticed that the Location Counter held the value x3004
right then, and put that single entry into the symbol table.
So on the second pass, whenever the assembler saw that label referred to, as in the
statement
BRp LOOP
it replaced LOOP with the hex value 3004. If you’d had more labels in your program,
they would have been listed under Symbol Name, and their locations would have been
listed under Page Address.
addnums.lst
If y
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
0011 0000 0000 0000; bắt đầu chương trình tại địa điểm x30000101 001 001 1 00000; R1 rõ ràng, được sử dụng cho hoạt động tổng hợp0101 100 100 1 00000; rõ ràng R4, được sử dụng như một truy cập0001 100 100 1 01010; tải R4 với #10, số lần để thêm31110 010 011111100; tải địa chỉ bắt đầu của dữ liệu0110 011 010 000000; tải các số tiếp theo sẽ được thêm vào0001 010 010 1 00001; tăng con trỏ0001 001 001 0 00 011; thêm các số tiếp theo chạy tổng0001 100 100 1 11111; lượng truy cập0000 001 111111011; làm điều đó một lần nữa nếu truy cập nào được nêu ra không phải là zero1111 0000 00100101; dừngDù bằng cách nào là tốt với LC3Edit. Nó bỏ qua gian anyways. 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ể giống như thế này, nếu bạn chọn để nhập nó tronghex (ý kiến sau khi dấu chấm phẩy vẫn còn có một tùy chọn):30005260 người5920192AE4FC668014A11243193F03FBF025Lưu chương trình của bạnNhấp vào nút này hoặc chọn "Lưu" dưới trình đơn tập tin. Có thể bạn muốn thực hiện mộtCác thư mục mới để lưu vào, bởi vì bạn sẽ tạo ra nhiều tập tin trong cùng một nơi khi bạnlần lượt các 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ó trong1 và 0s. Gọi nó là addnums.hex nếu bạn gõ nó trong hex.Việc tạo ra các tập tin obj. cho chương trình của bạnTrước khi mô phỏng có thể chạy chương trình của bạn, bạn cần phải chuyển đổi chương trình cho mộtngôn ngữ mô phỏng LC-3 có thể hiểu. Trình mô phỏng không hiểu cácĐại diện ASCII hex hoặc nhị phân mà bạn chỉ cần nhập vào LC3Edit. Nó chỉhiểu đúng nhị phân, do đó bạn cần phải chuyển đổi chương trình của bạn vào thực tế nhị phân, 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àysẽ làm cho điều này xảy ra:Làm sao bạn biết mà một trong những? Nó phụ thuộc cho dù bạn nhập vào chương trình của bạn trong 1s vàsố 0 (B và một mũi tên), trong hex (X và một mũi tên), hoặc ngôn ngữ lắp ráp (asm và mộtmũ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 trong cùng một thư mụcnơi mà bạn đã lưu chương trình addnums ban đầu của bạn. Nó sẽ tự động có cùng4tên, ngoại trừ tập tin mở rộng (một phần của tên mà đến sau khi các ".") sẽ. obj.Nếu bạn gõ vào chương trình của bạn trong 1 và 0s, hoặc trong hex, chỉ có một tập tin mới sẽ xuất hiện:addnums.obj.Nếu bạn không biết ngôn ngữ lắp ráp LC-3, bây giờ bạn đã sẵn sàng để bỏ qua đểChương 2, và tìm hiểu về mô phỏng. Một khi bạn tìm hiểu ngôn ngữ assembly, mộtmột chút sau này trong học kỳ, bạn có thể kết thúc chương 1 và tìm hiểu về các chi tiết củabước vào chương trình của bạn trong một cách có thể đọc được nhiều hơn nữa.Bước vào chương trình của bạn bằng ngôn ngữ hội LC-3Vì vậy, bạn là partway thông qua học kỳ, và bạn đã được giới thiệu để hội đồngngôn ngữ. Bây giờ bước vào chương trình của bạn là gonna khá một chút dễ dàng hơn. Đây là những gì cácchương trình để thêm mười con số có thể nhìn như thế, việc sử dụng các pseudo-ops, nhãn, vàý kiến.. ORIG x3000VÀ R1, R1, x0; R1 rõ ràng, được sử dụng cho hoạt động tổng hợpVÀ R4, R4, x0; rõ ràng R4, được sử dụng như một truy cậpThêm R4, R4, xA; tải R4 với #10, số lần để thêmLEA R2, x0FC; tải địa chỉ bắt đầu của dữ liệuVòng LẶP LDR R3, R2, x0; tải các số tiếp theo sẽ được thêm vàoThêm R2, R2, x1; tăng con trỏThêm R1, R1, R3; thêm các số tiếp theo chạy tổngThêm R4, R4, x-1; giảm truy cậpBRp LOOP; làm điều đó một lần nữa nếu truy cập nào được nêu ra không phải là zeroTẠM DỪNG. KẾT THÚCBạ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., 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, bấm vào nút.Kể từ khi bạn sử dụng cách tiếp cận ngôn ngữ assembly fancier, bạn đã được thưởng bằng khôngchỉ là một, nhưng một số ít các tập tin:addnums.obj, như bạn mong đợiaddnums.bin, chương trình của bạn trong ASCII 1s và số 0addnums.hex, chương trình của bạn ở dạng hex ASCIIaddnums.Sym, bảng biểu tượng tạo ra trên qua đầu tiên của lắp rápaddnums.lst, tập tin danh sách cho chương trình của bạn.Bin và .hex các tập tin trông giống như những Hiển thị trước đó trong chương (với bất kỳcảm nhận gỡ bỏ). Cuối hai tập tin có giá trị xem xét.addnums.SymDưới đây là những gì các tập tin này trông giống như nếu bạn mở nó trong một trình soạn thảo văn bản:5Địa chỉ trang tên biểu tượng//---------------- ------------LOOP 3004Bạn chỉ có một trong những nhãn hiệu trong chương trình của bạn: vòng LẶP. Vì vậy, đó là chỉ mục trong biểu tượngbảng. 3004 là địa chỉ hoặc vị trí bộ nhớ của hãng LOOP. Nói cách khác, khilắp ráp nhìn từng dòng từng người một trong thời gian qua đầu tiên, nó đã đến dòngVòng LẶP LDR R3, R2, x0; tải các số tiếp theo sẽ được thêm vàothấy nhãn "LOOP" và nhận thấy rằng các truy cập địa điểm tổ chức các giá trị x3004ngay sau đó, và đặt một mục nhập vào các bảng biểu tượng.Vì vậy, trên đèo thứ hai, bất cứ khi nào lắp ráp thấy nhãn đó được gọi, như trong cáctuyên bốBRp LOOPnó thay thế vòng với giá trị hex 3004. Nếu bạn đã có nhãn thêm trong chương trình của bạn,họ sẽ có được liệt kê dưới ký hiệu tên và vị trí của họ sẽ cóliệt kê theo địa chỉ Page.addnums.lstNếu y
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
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..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2025 I Love Translation. All reserved.

E-mail: