Các kiểu định địa chỉ họ MSC-51

Similar documents
Chương 3 Tập lệnh họ MSC-51

Chương 5. Network Layer 19/09/2016 1

Chương 5. Network Layer. Phần 1 - Địa chỉ IPv4. Tài liệu : Forouzan, Data Communication and Networking

Khoa KH & KTMT Bộ môn Kỹ Thuật Máy Tính

Internet Protocol. Bởi: Phạm Nguyễn Bảo Nguyên

Nội dung chính của chương. Các công nghệ đĩa cứng Cấu tạo vật lý của đĩa cứng Cấu tạo logic của đĩa cứng Cài đặt đĩa cứng như thế nào?

Chương 6. Transport Layer. Tài liệu : Forouzan, Data Communication and Networking

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

HƯỚNG DẪN CÁCH SỬ DỤNG WINDOWS MOVIE MAKER

HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM DIỆT VIRUS AVIRA

Kiến trúc 8051 và giới thiệu về ngôn ngữ lập trình Assembly

BÀI 1: VBA LÀ GÌ? TẠO MACRO, ỨNG DỤNG CÁC HÀM TỰ TẠO (UDF), CÀI ĐẶT ADD-INS VBA là gì?

LẬP TRÌNH 8051 SỐ HỌC VÀ LÔ GIC

Bài Thực hành Asp.Net - Buổi 1 - Trang: 1

HƯỚNG DẪN SỬ DỤNG PLESK PANEL

STACK và QUEUE. Lấy STACK

Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

TÀI LIỆU THỰC HÀNH MÔN CƠ SỞ DỮ LIỆU NÂNG CAO

HƯỚNG DẪN SỬ DỤNG HỆ THỐNG CẬP NHẬT CHỨNG THƯ SỐ HOTLINE:

Hướng dẫn cài đặt FPT

Tạo Project với MPLAB

Cài đặt và cấu hình StarWind iscsi trên Windows. iscsi SAN là gì?

Tài liệu hướng dẫn: Stored Procedure

NHÚNG. Vi ñiều khiển BM Kỹ Thuật ðiện Tử - ðh Bách Khoa TP.HCM 2

Bài 10. Cấu trúc liên nối. khác nhau được gọi là cấu trúc liên nối. nhu cầu trao đổi giữa các module.

SIEMENS INDUSTRIAL NETWORKS

CẤU TRÚC DỮ LIỆU NÂNG CAO

Cụ thể những công việc mà AndroidManifest.xml thực hiện: - Đặt tên cho Java package của ứng dụng.

Nhấn nút New để tạo 1 biến mới Trang 17

BÀI TẬP THỰC HÀNH LẬP TRÌNH WINDOWS C#

GIẢI THUẬT ĐỊNH TUYẾN (ROUTING ALGORITHM)

Mô hình dữ liệu quan hệ (Relational data model)

Entity Framework (EF)

Bộ môn MMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

B5: Time to coding. Tới thư mục src/example.java và thay đổi nội dung file như sau: Mã: package at.exam;

MỤC LỤC. Giáo trình Thiết kế web Trang 1

Phần 2. SỬ DỤNG POWERPOINT ĐỂ CHUẨN BỊ NỘI DUNG TRÌNH BÀY

SIMULATE AND CONTROL ROBOT

I. Hướng Dẫn Đăng Nhập:

HƯỚNG DẪN SỬ DỤNG ĐẦU GHI H.264 DVR VISION VS (4CH - 8CH - 16CH)

ĐỌC, GHI XML VỚI C# TRONG ADO.NET --- SỬ DỤNG VISUAL STUDIO

Bài tập lớn số 1. Giả lập bộ định thời

Tình huống 1: PPPoE với Username và Password

Môn Học: Cơ Sở Dữ Liệu 2. Chương 3 LẤY DỮ LIỆU TỪ NHIỀU NGUỒN

BELGIUM ONLINE APPOINTMENT

Tìm hiểu Group Policy Object và các ví dụ

GV: Phạm Đình Sắc or

3.4 Tập lệnh

Bài 13: C++11. EE3490: Kỹ thuật lập trình HK1 2017/2018 TS. Đào Trung Kiên ĐH Bách khoa Hà Nội

Tạo repository mới. The working tree. The staging index. Lệnh git init tạo một repository loại git. tại thư mục hiện tại: $ git init

Giáo trình này được biên dịch theo sách hướng dẫn của Sun Light. Vì là hướng dẫn kỹ thuật, trong này những thuật ngữ kỹ thuật bằng tiếng Anh tôi chỉ

Online Appointment System will work better with below conditions/ Hệ thống đặt hẹn online sẽ hoạt động tốt hơn với điều kiện sau đây:

Ôn tập Thiết bị mạng và truyền thông DH07TT - Lưu hành nội bộ (không sao chép dưới mọi hình thức)

Cập nhật ResultSet trong JDBC

NHẬP MÔN LẬP TRÌNH KHOA HỌC DỮ LIỆU. Bài 10: Thư viện Pandas (2)

BÀI 6 LÀM VIỆC VỚI THÀNH PHẦN MỞ RỘNG CỦA CSS3

Bài tập căn bản Visual Basic.Net Vòng lặp. txtn. txtketqua. btntinh. txtn. txtketqua. btntinh. Trang 1

Dọn "rác" Windows 7 vào dịp cuối năm

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG HOSTING PLESK PANEL

HƢỚNG DẪN TRIỂN KHAI KASPERSKY - MOBILE DEVICE MANAGEMENT

PHÁT TRIỂN ỨNG DỤNG WEB

Kỹ thuật thu nhỏ đối tượng trong Design (Layout)

CHƯƠNG 2: CÁC ĐẶC ĐIỂM VỀ MÔI TRƯỜNG PHÁT TRIỂN (IDE)

HỢP ĐỒNG MUA BÁN HÀNG HÓA QUỐC TẾ GV: NGUYỄN THỊ BÍCH PHƯỢNG

LÂ P TRI NH WEB ASP.NET

Đa ngôn ngữ (Internationalization) trong Servlet

BÀI GIẢNG CHƯƠNG 3 GIAO TIẾP KẾT NỐI SỐ LIỆU

Mạng máy tính - Computer Network: Hệ. Giao thức - Protocol:

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

BÀI THỰC HÀNH SỐ 1. Quản trị tập tin: 1/ Tạo các thư mục sau: Bài tập thực hành linux Linuxlab. bt1 bt11 bt111. bt121. bt12. bh1 bh11 bh111.

KIẾN TRÚC MÁY TÍNH. Giảng viên: ThS. Phan Thanh Toàn. v

Bài 10: Cấu trúc dữ liệu

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

Chương 7. Application Layer. Tài liệu : Forouzan, Data Communication and Networking

Khoa Công Nghệ Thông Tin Trường Đại Học Cần Thơ. Những hỗ trợ tiên tiến khác của SQL. Đỗ Thanh Nghị

TỔNG QUAN VỀ.NET VÀ C#

Lecture 12. Trees (1/2) Nội dung bài học:

1 Bước 1: Test thử kit LaunchPad.

HTML DOM - Forms. MSc. nguyenhominhduc

HƯỚNG DẪN SỬ DỤNG NHANH MINDJET MIND MANAGER

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

Lab01: M V C Lưu ý: Để thực hành, các bạn phải cài Visual Studio 2013 trở lên mới hỗ trợ MVC5.

BẢO MẬT TRONG SQL SERVER

2.4. GIAO THỨC MQTT Các khái niệm cơ bản MQTT được phát triển bởi IBM và Eurotech, phiên bản mới nhất là MQTT 3.1 MQTT (Giao vận tầm xa) là

Qu n ả tr h ố g t p ậ tin

Bài 7: Các cấu trúc điều khiển

JAVASCRIPT. Giảng viên : Ths. PHẠM ĐÀO MINH VŨ

dụng một chính sách, điều này giúp dễ dàng quản lý và cung cấp tính năng Load Balancing (cân bằng tải) phục vụ tốt hơn các yêu cầu của tổ chức.

Bài 6: Xuất nhập (input/output) EE3490: Kỹ thuật lập trình HK1 2017/2018 TS. Đào Trung Kiên ĐH Bách khoa Hà Nội

LAB IP SLA Bài 1. Bùi Quốc Kỳ ***

Exceptions. Outline 7/31/2012. Exceptions. Exception handling is an important aspect of objectoriented. Chapter 10 focuses on:

CHAPTER 6: DANH SÁCH LIÊN KẾT (LINKED LISTS)

B3: Bên khung Package Explore bên trái đi tới thư mục res, bạn sẽ thấy có 3 thư mục con:

Cấu hình Router FTTH ---X---

LẬP TRÌNH WINDOWS FORM VỚI CÁC CONTROL NÂNG CAO (Các control trình bày dữ liệu dưới dạng danh sách)

Parallels Cloud Server 6.0

Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MINICHAT. Bài giảng 3. Trang1. Khoa Khoa Học Và Kỹ Thuật Máy Tính

Chương 5: NGĂN XẾP HÀNG ĐỢI (Stack - Queue)

BÀI 6a LẬP TRÌNH ĐA TUYẾN (MULTI THREAD)

BÀI LAB ĐỔI TÊN DOMAIN

Transcription:

Các kiểu định địa chỉ họ MSC-51 Có 8 kiểu định địa chỉ trong 8051: 1. Thanh ghi (register) dùng trong trường hợp dữ liệu chứa trong thanh ghi (register data). 2. Tức thời (immediate) dùng cho dữ liệu hằng số (constant data). 3. Trực tiếp (direct) dùng cho dữ liệu chứa trong RAM (RAM data). 4. Gián tiếp (register indirect) dùng cho dữ liệu chứa trong RAM (RAM data). 5. Chỉ số (indexed) dùng cho dữ liệu chứa trong ROM (ROM data). 6. Tương đối (relative) 7. Tuyệt đối (absolute) 8. Dài (long) Hiệu đính từ bài giảng của Thầy Hồ Trung Mỹ 2 1. Định địa chỉ thanh ghi (register) : Cả toán hạng nguồn và toán hạng đích đều có thể là một trong các thanh ghi của CPU. Các thanh ghi trong 8051 : A B R0 R1 R2 R3 DPTR PC DPH PC DPL! A (Accumulator)! B! PSW (Program Status Word)! SP (Stack Pointer)! PC (Program Counter)! DPTR (Data Pointer) R4 Some 8051 16-bit Register R5 R6 R7 Some 8-bit Registers of the 8051 3 4

1. Định địa chỉ thanh ghi (register) : Ví dụ : MOV R0,A MOV A,R7 ADD A,R4 ADD A,R7 MOV DPTR,#25F5H MOV R5,DPL MOV R1,DPH Chú ý : có thể chuyển dữ liệu giữa thanh ghi A và Rn (n = 0...7) nhưng không thể chuyển dữ liệu giữa các thanh ghi Rn. Ví dụ : MOV R4, R7 là sai. 2. Định địa chỉ tức thời (Immediate) : Toán hạng nguồn là một hằng số được xác định bởi giá trị của nó. Toán hạng tức thời được nhận biết nhờ vào ký tự # đặt trước chúng. mov A, #0 mov R4, #11h mov B, #11 mov DPTR,#7521h ;put 0 in the accumulator ;A = 00000000 ;put 11hex in the R4 register ;R4 = 00010001 ;put 11 decimal in b register ;B = 00001011 ;put 7521 hex in DPTR ;DPTR = 0111010100100001 5 6 2. Định địa chỉ tức thời (Immediate) : Một số chú ý: Luôn đặt dấu # trước dữ liệu tức thời. Chỉ có toán hạng nguồn mới được phép định địa chỉ tức thời. Thêm h vào sau số thập lục phân, b sau số nhị phân. Nếu không ghi chú gì thêm thì mặc định là số thập phân. Dùng dấu nháy đơn để đóng khung ký tự. Với những số thập lục phân bắt đầu bởi A-F, phải thêm số 0 phía trước. Ví dụ: MOV A,#ABh truy suất dữ liệu bằng cách dùng trực tiếp địa chỉ 8-bits của vùng nhớ. thường dùng cho vùng nhớ 30H-7FH của RAM. MOV A,#0ABH 7 8

Ví dụ : mov a, 70h ; copy contents of RAM at 70h to a mov R0,40h ; copy contents of RAM at 70h to a mov 56h,a ; put contents of a at 56h to a mov 0D0h,a ; put contents of a into PSW 9 10 dùng cho các thanh ghi R0-R7 với địa chỉ trực tiếp. Ví dụ : MOV A,4 MOV A,7 MOV 7,6 Chú ý : MOV R2,#5 MOV R2,5 MOV A,R4 MOV A,R7 MOV R7,R6 ;Put 5 in R2 ;Put content of RAM at 5 in R2 Instruction MOV 80h, A or MOV P0, A MOV A, 80h or MOV A, P0 Operation Copy contents of register A to location 80h (Port 0 latch) Copy contents of location 80h (Port 0 pins) to register A MOV ABC A, EQU ABC80h Copy ; equate contents from direct address with label MOV A, ABC ABC ; Port 0 to to register A A MOV R0, 12h MOV 0A8h, 77h or MOV IE, 77h Copy contents from RAM location 12h to register R0 Copy contents from RAM location 77h to IE register of SFRs MOV direct,direct 11 12

MOV A, 2 ; copy location 02 (R2) to A MOV B, 2 ; copy location 02 (R2) to B MOV 7, 2 ; copy location 02 to 07 (R2 to R7) ; since MOV R7, R2 is invalid MOV DIRECT, DIRECT Chú ý : khi làm việc với ngăn xếp (stack), phải sử dụng cách định địa chỉ trực tiếp. Ví dụ : PUSH POP direct direct PUSH A (Invalid) PUSH 0E0h (Valid) PUSH R3 (Invalid) PUSH 03 (Valid) POP R4 (Invalid) POP 04 (Valid) 13 14 Ví dụ : Hãy viết đoạn chương trình chuyển dữ liệu từ các thanh ghi R5, R6 và A vào stack, sau đó lấy dữ liệu ra các thanh ghi R2, R3 và B sao cho nội dung thanh ghi B = A, R2 = R6, R3 = R5. PUSH 05 ; push R5 onto stack PUSH 06 ; push R6 onto stack PUSH 0E0h ; push register A onto stack POP 0F0h ; pop top of stack into register B ; now register B = register A POP 02 ; pop top of stack into R2 ; now R2 = R6 POP 03 ; pop top of stack into R3 ; now R3 = R5 Một số ghi chú : Giá trị địa chỉ được giới hạn trong 1 byte (00 - FFH) (tương ứng với 128-byte RAM và SFR). Sử dụng lệnh MOV để chuyển dữ liệu từ một ô nhớ hay thanh ghi vào chính nó sẽ gây nên những kết quả không chính xác. Ví dụ : MOV A, A (lỗi). Dùng lệnh MOV để chuyển dữ liệu ra một cổng (move data to port) sẽ làm thay đổi mạch chốt của cổng (port latch). Dùng lệnh MOV để nhận dữ liệu từ cổng (move data from port) tương ứng với việc nhận dữ liệu từ các chân của cổng (data from port pins). 15 16

4. Định địa chỉ gián tiếp (indirect) : Địa chỉ của toán hạng nguồn hay toán hạng đích được đặt trong các thanh ghi. Dùng các thanh ghi R0 hoặc R1 cho các địa chỉ 8-bit (khoảng địa chỉ từ 00h đến 7Fh). Ví dụ : MOV A, @R1 Dùng thanh ghi DPTR cho các địa chỉ 16-bit. mov dptr, #9000h movx a, @dptr ; dptr 9000h ; a ; M[9000h] a M[9000h] 4. Định địa chỉ gián tiếp (indirect) : Phải đặt ký hiệu @ phía trước tên của thanh ghi để chỉ rằng đang ở chế độ định địa chỉ gián tiếp. 17 18 4. Định địa chỉ gián tiếp (indirect) : 4. Định địa chỉ gián tiếp (indirect) : Addresses 200 201 Program memory ADD A, @R0 Data memory ACC 10 R0 ACC 22 R0 31 31 Instruction Operation MOV @R1, A Copy the data in A to the address pointed to by the contents of R1 MOV A, @R0 Copy the contents of the address pointed to by register R0 to the A register MOV @R1, #35h Copy the number 35h to the address pointed to by register R1 MOV @Ri,#data where i = 0 or 1 MOV @R0, 80h or Copy the contents of the port 0 pins to the MOV @R0, P0 address pointed to by register R0. 30 31 32 12 Before After MOVX A, @R0 MOVX A, @DPTR Copy the contents of the external data address pointed to by register R0 to the A register Copy the contents of the external data address pointed to by register DPTR to the A register 8051 Internal data memory 19 20

5. Định địa chỉ chỉ số : 5. Định địa chỉ chỉ số : sử dụng một thanh ghi nền (base address) (hoặc bộ đếm chương trình PC hay con trỏ dữ liệu DPTR) và một offset (thanh ghi tích lũy A) để tạo thành dạng địa chỉ hiệu dụng cho lệnh JMP hoặc MOVC. Ví dụ: mov dptr, #4000h mov a, #5 movc a, @a + dptr ;a M[4005] Ví dụ: MOVC A, @A+DPTR Program memory ACC 00 10 DPTR 41 56 31 ACC 56 PC ORG 1000h 1000 mov a, #5 1002 movc a, @a + PC ;a M[1008] 1003 Nop 2000 2001 MOVC A, @A + DPTR Before After 21 22 5. Định địa chỉ chỉ số : Ví dụ: Instruction MOVC A, @A + DPTR MOVC A, @A + PC JMP @A + DPTR Operation Copy the code byte, found at the ROM address formed by adding register A and the DPTR register, to A Copy the code byte, found at the ROM address formed by adding A and the PC, to A Jump to the address formed by adding A to the DPTR, this is an unconditional jump and will always be done. 6. Định địa chỉ tương đối: Chỉ được sử dụng cho các lệnh nhảy ngắn (SJMP, JNC, JZ, DJNZ,...). Địa chỉ tương đối (còn gọi là offset) là một giá trị 8-bit có dấu (-128 đến +127). Giá trị này được cộng với bộ đếm chương trình (PC) để tạo ra địa chỉ của lệnh tiếp theo cần được thực thi. Bộ đếm chương trình (PC) được tăng đến địa chỉ theo sau lệnh nhảy địa chỉ mới liên quan đến lệnh kế tiếp, không liên quan đến địa chỉ của lệnh nhảy. 23 24

6. Định địa chỉ tương đối (relative) : Tính offset cho kiểu định địa chỉ tương đối: 6. Định địa chỉ tương đối: Program Counter Branch Opcode Offset Next Opcode + Offset Offset tương đối = byte thấp của (địa chỉ nhảy đến - địa chỉ lệnh kế) 25 Program counter + offset = Effective address = address of next instruction 26 Next Instruction 6. Định địa chỉ tương đối: Ví dụ: Instruction SJMP NXT DJNZ R1, DWN Operation Jump to relative address with the label 'NXT'; this is an unconditional jump and is always taken. Decrement register R1 by 1 and jump to the relative address specified by the label 'DWN' if the result of R1 is not zero. 7. Định địa chỉ tuyệt đối (absolute) : Chỉ được sử dụng cho các lệnh ACALL và AJMP. Các lệnh này cho phép rẽ nhánh chương trình trong trang 2K hiện hành của bộ nhớ chương trình bằng cách cung cấp 11 bits thấp của địa chỉ đích. 5 bits cao của địa chỉ đích là 5 bits cao hiện hành trong bộ đếm chương trình lệnh theo sau lệnh rẽ nhánh và đích của lệnh rẽ nhánh phải ở trong cùng 1 trang 2K. 0035 27 28

8. Định địa chỉ dài (long distance) : Chỉ dùng cho các lệnh LCALL và LJMP. Các lệnh này chứa địa chỉ đích 16 bits. Ưu điểm : giúp sử dụng hết toàn bộ không gian nhớ chương trình 64K. Khuyết điểm : lệnh dài đến 3-byte và phụ thuộc vào vị trí. ORG 00H ; reset location LJMP START ; 3 bytes instruction ORG 3FFEH START: ACALL FORWARD ; 2 bytes instruction ; now code address at 4000H LJMP TEST ORG 47FFH ; 010001111111111B FORWARD: RET A ORG 5800H ; 0101100000000000B BACKWARD: RET ORG 5FFDH TEST: ACALL BACKWARD ; 2 bytes instruction ; now code address at 5FFFH SJMP $ END 29 30 Bài tập Hãy cho biết cách định địa chỉ của các lệnh sau: a) MOV R4, A b) MOV A, #0A3H c) MOV 6, #0B6H d) LJMP 0548H e) MOVX A, @DPTR f) MOV A, @R1 g) MOV A, 12H h) ACALL DELAY i) SJMP LOOP Xét lệnh sau: MOV 50H, #0FFH. Hãy tìm mã lệnh và giải thích mỗi byte trong mã lệnh. Offset tương đối của lệnh SJMP AHEAD là bao nhiêu nếu lệnh này đang ở ô nhớ 0400H và 0401H, và nhãn AHEAD biểu diễn lệnh ở địa chỉ 041FH. Ví dụ : Hãy viết đoạn chương trình chép giá trị 55h vào bộ nhớ RAM tại các địa chỉ từ 40h đến 44h sử dụng: (a) Định địa chỉ trực tiếp. (b) Định địa chỉ gián tiếp không dùng vòng lặp. (c) Định địa chỉ gián tiếp có dùng vòng lặp. 31 32

Ví dụ : Hãy viết đoạn chương trình chép giá trị 55h vào bộ nhớ RAM tại các địa chỉ từ 40h đến 44h sử dụng: (a) Định địa chỉ trực tiếp. MOV A, #55h ; load A with value 55h MOV 40h, A! ; copy A to RAM location 40h MOV 41h, A! ; copy A to RAM location 41h MOV 42h, A! ; copy A to RAM location 42h MOV 43h, A! ; copy A to RAM location 43h MOV 44h, A! ; copy A to RAM location 44h Ví dụ : Hãy viết đoạn chương trình chép giá trị 55h vào bộ nhớ RAM tại các địa chỉ từ 40h đến 44h sử dụng: (b) Định địa chỉ gián tiếp không dùng vòng lặp. MOV A, #55h ; load A with value 55h MOV R0, #40h ; load the pointer. R0 = 40h MOV @R0, A ; copy A to RAM location R0 points to INC R0 ; increment pointer. Now R0 = 41h MOV @R0, A ; copy A to RAM location R0 points to INC R0 ; increment pointer. Now R0 = 42h MOV @R0, A ; copy A to RAM location R0 points to INC R0 ; increment pointer. Now R0 = 43h MOV @R0, A ; copy A to RAM location R0 points to INC R0 ; increment pointer. Now R0 = 44h MOV @R0, A ; copy A to RAM location R0 points to 33 34 Ví dụ : Hãy viết đoạn chương trình chép giá trị 55h vào bộ nhớ RAM tại các địa chỉ từ 40h đến 44h sử dụng: (c) Định địa chỉ gián tiếp có dùng vòng lặp. AGAIN: MOV A, #55h ; A = 55h MOV R0, #40h ; load pointer. R0 = 40h, RAM add. MOV R2, #05 ; load counter, R2 = 5 MOV @R0, A ; copy 55A to RAM location R0 points to INC R0 ; increment R0 pointer DJNZ R2, AGAIN ; loop until counter = zero Ví dụ : Hãy viết đoạn chương trình xóa 15 ô nhớ RAM bắt đầu tại địa chỉ 60h. locations starting at RAM address 60h. CLR A ; A = 0 MOV R1, #60h ; load pointer. R1 = 60h MOV R7, #15 ; load counter, R7 = 15 (0F in HEX) AGAIN: MOV @R1, A ; clear RAM location R1 points to INC R1 ; increment R1 pointer DJNZ R7, AGAIN ; loop until counter = zero LP: MOV R2, #05h ; example ;-------------------------------- ; do 5 times inside the loop ;-------------------------------- DJNZ R2, LP ; R2 as counter DJNZ : decrement and jump if Not Zero DJNZ direct, relative DJNZ Rn, relative where n = 0,1,,,7 ; clear one ram location at address 60h CLR A MOV R1,#60h MOV @R1,A Setup a loop using DJNZ and register R7 as counter 35 36

Ví dụ : Hãy viết đoạn chương trình sao chép một khối dữ liệu 10 bytes từ vùng nhớ RAM có địa chỉ bắt đầu là 35h đến vùng nhớ RAM có địa chỉ bắt đầu là 60h. BACK: MOV R0, #35h ; source pointer MOV R1, #60h ; destination pointer MOV R3, #10 ; counter MOV A, @R0 ; get a byte from source MOV @R1, A ; copy it to destination INC R0 ; increment source pointer INC R1 ; increment destination pointer DJNZ R3, BACK ; keep doing it for all ten bytes 37