Mảng một chiều

Một phần của tài liệu Giáo trình về hợp ngữ (Trang 77)

c) Vòng REPEAT

7.1 Mảng một chiều

Mảng một chiều là một danh sách các phần tử cùng loại và có trật tự . Có trật tự có nghĩa là có phần tử thứ nhất , phần tử thứ hai , phần tử thứ ba ... Trong toán học , nếu A là một mảng thì các phần tử của mảng được định nghĩa làA[1},

A[2] , A[3} ... Hình vẽ là dưới đây là mảng A có 6 phần tử .

Trong chương 1 chúng ta đã dùng toán tử giả DB và DW để khai báo mảng byte và mảng từ . Ví dụ , một chuổi 5 ký tự có tên là MSG

MSG DB ‘abcde’

hoặc một mảng từ W gồm 6 số nguyên mà giá trị ban đâù của chúng là 10,20,30,40.50 và 60

W DW 10,20,30,40,50,60

Địa chỉ của biến mảng gọi là địa chỉ cơ sở của mảng ( base address of the array) . Trong mảng W thì địa chỉ cơ sở là 10 .Nếu địa chỉ offset của W là 0200h thì trong bộ nhớ mảng 6 phần tử nói trên sẽ như sau :

Offset address Symbolic address Decimal content

0200h W 10 0202h W+2h 20 0204h W+4h 30 0206h W+6h 40 0208h W+8h 50 020Ah W+Ah 60

Toán tử DUP ( Duplicate)

Có thể định nghĩa một mảng mà các phần tử của nó có cùng một giá trị ban đầu bằng phép DUP như sau :

repeat_count DUP ( value)

lặp lại một số ( VALUE) n lần ( n = repeat_count) Ví dụ :

GAMMA DW 1 00 DUP (0) ; tạo một mảng 100 từ mà giá trị ban đâù là 0 .

DELTA DB 212 DUP (?) ; tạo một mảng 212 byte giá trị chưa xác định

LINE DB 5,4,3 DUP (2, 3 DUP (0) ,1) tương đương với :

LINE DB 5,4,2,0,0,0,1,2,0,0,0,1,2,0,0,0,1

Vị trí các phần tử của một mảng

Địa chỉ của một phần tử của mảng có thể được xác định bằng cách cộng một hằng số với địa chỉ cơ sở . Giả sử A là một mảng và S chỉ ra số byte của một phần tử của mảng ( S=1 đối với mảng byte và S=2 đối với mảng từ ) . Vị trí của các phần tử của mảng A có thể tính như sau : Position Location 1 A 2 A+1xS 3 A+2xS . . . . . . N A+(N-1)xS

Ví dụ : Trao đổi phần tử thứ 10 và thứ 25 của mảng từ W . Phần tử thứ 10 là W[10] có địa chỉ là W+9x2=W+18 Phần tử thứ 25 là W[25] có địa chỉ là W+24x2=W+48 Vì vậy có thể trao đổi chúng như sau :

MOV AX,W+18 ; AX = W[10] XCHG W+48,AX ; AX= W[25] MOV W+18, AX ; complete exchange

Một phần của tài liệu Giáo trình về hợp ngữ (Trang 77)

Tải bản đầy đủ (DOC)

(95 trang)
w