You are on page 1of 4

Giả sử thanh ghi R2 có giá trị là 3000H và ô nhớ có địa chỉ là 3005H có giá trị là 13H.

Như vậy lệnh LDR


R4,R2,#5 sẽ cho ta giá trị ô nhớ có địa chỉ là giá trị của R2 cộng với tham số sau dấu # là 5, tức là giá trị ô nhớ có
địa chỉ 3005H gán vào R4.

LD là lệnh chuyển giá trị chứa trong tên gán giá trị vào thanh ghi. Cú pháp là LD Ri, Tên gán giá trị
ADRE .FILL x3000H
LD R3, ADRE
Kết quả R3 có giá trị là 3000H
Do lệnh ADD gán có hạn số bit dữ liệu nên ta dùng lệnh này ^^

Còn LDI dùng cho các bài toán đọc giá trị ô nhớ. VD tính tổng các giá trị ô nhớ từ 3000H đến 300AH chẳng hạn.
Thuật toán ta phải dùng 1 thanh ghi đếm gán vào 3000H và cho nó chạy từ 3000H đến 3000AH để lấy dữ liệu.

Lệnh LD thường dùng trong các bài toán có sự chuyển đổi giữa ASCII vào ra, khi ta nhập vào bàn phím thì bàn
phím chuyển dữ liệu lên máy tính dạng ASCII, do đó để xữ lý ta phải đổi ASCII ra số và để hiển thị lên màn hình
thì ta chuyển đổi về dạng ASCII. VD nhập vào số 2 thì máy sẽ hiểu là 32H, chứ ko phải là 2H, do đó ta phải
chuyển để đem đc số 2H đi xử lý. Khi xuất ra màn hình số 2 thì phải xuất 32H thì lúc đó trên màn hình ms hiện số
2

Còn giả sử như ô nhớ địa chỉ 3569H chứa giá trị là 3000H và ô nhớ có địa chỉ 3000H là 9H. Vậy lệnh LDI
R3,ADRE cho R3 sẽ có giá trị là 9H

còn LEA là vầy. Giả sử ta có đoạn chương trình sau đây:


.ORIG x3000
LEA R0, A
LDI R2, C
LDR R3, R0, 2
AND R1, R1, #0
A .FILL x3050
.END
Lệnh LEA sẽ gán địa chỉ mà A đang đứng trong chương trình. Vậy chương trình sau bắt đầu từ địa chỉ x3000 (chú
ý khi tính địa chỉ thì x3000 là địa chỉ của LEA R0,A chứ ko phải của .ORIG x3000 vì nó chỉ là chỉ dẫn). Đếm đếm
đếm ta có A .FILL x3050 ở địa chỉ x3004
Vậy nên R0 có giá trị là x3004

Đi thi thì ôn các bài đơn giản:


1. Cộng hai thanh ghi R1, R2 chứa giá trị là số có hai chữ số. Xuất ra màn hình số có giá trị R1 + R2.
2. Thực hiện phép nhân 2 số có 1 chữ số, số thứ nhất trong R1, số thứ 2 trong R2 và lưu nó vào R3 và xuất ra màn
hình.
3. Thực hiện phép chia số có 2 chữ số lưu trong R1 và số có một chữ số lưu trong R2 và xuất ra màn hình giá trị
thương và số dư.
4. Thực hiện tính tổng các giá trị ô nhớ có địa chỉ liên tục từ 2000H đến 2010H và lưu vào thanh ghi R3.
5. Thực hiện chuyển dữ liệu là 1000H đến 2000H vào ô nhớ có địa chỉ liên tục từ 2000H đến 3000H.
6. Thực hiện phép xoay trái, xoay phải bit của thanh ghi R1 ? (Chú ý tính chất xoay trái là nhân hay chia 2, xoay
phải là nhân hay chia 2) ?
7. Thực hiện chuyển dữ liệu từ các ô nhớ có địa chỉ là 2000H đến 2010H đến 3000H và 3010H ?
8

You might also like