Tải bản đầy đủ (.pdf) (12 trang)

Tài liệu Cấu trúc máy tính P9 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (320.28 KB, 12 trang )

Tổ chức cấu trúc máy tính C6 Hợp ngữ / S97



Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh
CHƯƠNG 6
Hợp ngữ


Tổ chức cấu trúc máy tính C6 Hợp ngữ / S98



Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh
Nguồn 1
Chương trình
nguồn (.ASM)
MASM.EXE

Mã đối tượng (.OBJ)
Liệt kê (.LST)
Tham khảo chéo (.CRF)
LINK.EXE

Mã thực thi (.EXE)
Mã thực thi (.COM)
Bản đồ (.MAP)
/Tiny
Nguồn 2 Nguồn 3


Đối tượng 1 Đối tượng 2 Đối tượng 3
Chương trình
dịch hợp ngữ
Chương trình
liên kết
Chương trình
thực thi .COM
Chương trình
thực thi .EXE
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S99



Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh
Trị mặc nhiên :
. Chương trình nguồn
Source
.ASM
. Tâp tin đối tượng
Source
.OBJ
. Bản liệt kê chương trình NUL.LS
T
. Tập tin tham khảo chéo NUL.CRF
MASM [options] source,[object],[listing],[crossref][;]
LINK [options] objects,[exec],[map],[libraries][;]
Trị mặc nhiên :

. Tập tin đối tượng objects.OBJ

. Chương trình thực thi object1.COM
hoặc object1.EXE
. Bản đồ sử dụng bộ nhớ NUL.MAP
. Tập tin thư viện name.LIB

Tổ chức cấu trúc máy tính C6 Hợp ngữ / S100



Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh



Chương trình nguồn :

* Là tập tin văn bản (.ASM):
Filename
.ASM

* Dạng lệnh : [<
nhãn
>] <
mã lệnh
> <
thông số
>
;
<
chú thích

>
* Các ký tự dùng để đặt tên cho nhãn :
a
-
z

A
- Z
0
-
9

?

@

_

$

.
và bắt đầu bằng một
ký tự khác số
.
* Số hệ 2
:
×
××
××
××

××
××
××
××
××
××
××
××
××
××
××
××
×
B
(10110101B)
* Số hệ 8
:
×
××
××
××
××
××
×
Q
hoặc
×
××
××
××

××
××
×
O
(123Q, 705O)
* Số hệ 10
:
mặc định
hoặc
×
××
××
××
××
××
××
××
××
××
×
D
(32767, 4509D)
* Số hệ 16
:
×
××
××
××
××
××

××
××
×
H
và bắt đầu bằng
số
. (1A97H, 0E05BH)
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S101



Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh
Biến
Hằng
Nhãn
- Do người sử dụng đặt.
- Không phân biệt chữ lớn
chữ nhỏ.
- Chiều dài tùy ý nhưng chi
có 31 ký tự đầu có nghĩa.

Tên
NEAR
FAR

BYTE
WORD
DWORD
QWORD

TBYTE

ABS

Thay địa chỉ bộ nhớ
Để chứa dữ liệu.

<tên>:

<tên> LABEL <thuộc tính nhãn>

<tên> PROC [<thuộc tính>]

. . .
<tên> ENDP
EXTRN <tên>:<thuộc tính nhãn>[, . . .]
<tên> Dx <biểu thức> [, . . .]
<tên> <tên cấu trúc> <biểu thức>
<tên> <tên máu tin> <biểu thức>
<tên> LABEL <thuộc tính biến>
EXTRN <tên>:<thuộc tính biến>[, . . .]


<
tên> EQU <biểu thức>
<tên> = <biểu thức>
EXTRN <tên>:ABS [, . . .]


Thay địa chỉ bộ nhớ

Để đánh dấu vị trí.

Thay cho giá trị.

Tổ chức cấu trúc máy tính C6 Hợp ngữ / S102



Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh
Biểu thức
tên
hằng
(trị)
nhãn
(địa chỉ)
biến
(địa chỉ)
trị tức thời

số
ký tự

Toán hạng
Toán tử

Thay đổi thuộc tính
:
PTR, :, SHORT, THIS, HIGH, LOW
Trả trị

:
SEG, OFFSET, TYPE, LENGTH, SIZE
Mẫu tin
:
số dịch, MASK, WIDTH
Số học
:
+ -

∗∗

/ MOD SHR SHL
Quan hệ
:
EQ, NE, LT, LE, GT, GE
Luận lý
:
NOT, AND, OR, XOR
Các toán tử
có độ ưu tiên.
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S103



Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh
DOSSEG
.
model


small

.
stack
<Số byte>
.
data

<Các khai báo biến và hằng>
.
code

main

proc

<Thân chương trình chính>
<Kết thúc, trở về DOS>
main

endp

<Các khai báo chương trình con>

end

title
<Tên chương trình>
code
segment para public '

code
'


assume
cs:code,ds:code,ss:code
<Các chương trình con>
main

proc

<Thân chương trình chính>
<Kết thúc, trở về DOS>
main

endp
<Các chương trình con>
code
ends
data
segment para public '
data
'

<Các khai báo biến và hằng>
data
ends
stack
segment stack '
stack

'

<Khai báo vùng đệm>
stack
ends

end
main

Dạng chương trình
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S104



Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh
<tên>
SEGMENT
[<align>] [<combine>] [
'
<class>
'
]
<thân segment>
<tên>
ENDS

<combine>
<align>
<align> Địa chỉ bắt đầu

BYTE
XXXX

xxxx

(1 byte)

WORD
XXXX

xxx0

(2 byte)

DWORD
XXXX

xx00

(4 byte)

PARA
XXXX

0000

(16 byte)

PAGE
XXX0


0000

(256 byte)


X
4 bit
x
1 bit
0 1 2 3 4 5 6 7 8 9 A B C D E F
Bộ nhớ
BYTE
WORD
DWORD
PARA & PAGE
A
B

B
A

0
COMMON
0
0
PUBLIC
A
B
AB

0
0
0
Không có
0
0
0
0
A
B
A
B
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S105



Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh
ASSUME
<thanh ghi đoạn>
:
<tên>[, ]
<tên>
PROC
[
NEAR
/
FAR
]
<thân chương trình>

<tên>
ENDP
Kết thúc chương trình
mov AX,4C00h
int 21h
hoặc
int 20h
chính
ret
con

iret
con phục vụ ngắt quãng
1.Tên chương trình.

Tiêu đề
2.Chương trình làm gì ?

3.Các thông số vào - ra.
4.Các thanh ghi bị đổi nội dung.
assume CS:code,DS:code,SS:code

Giả định cho .COM
assume CS:code,DS:data,SS:stack
. . .
mov AX,data
mov DS,AX
Giả định cho .EXE
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S106




Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh
EXTRN <
tên
>:<
thuộc tính
>[, . . .]
1. Các mô đun phụ trong một chương
trình có nhiều mô đun.
2. Tạo thư viện.
3. Tạo dữ liệu.
END
[<biểu thức
>
]

Các trường hợp không có địa chỉ bắt đầu

<
tên biến
> Dx <
biểu thức
>[,<
biểu thức
>. . .]
<
tên hằng
> EQU <

biểu thức hằng
>
<
tên hằng
> = <
biểu thức hằng
>
<
tên
> LABEL <
thuộc tính
>
Xem lại mục "tên"
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S107



Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh
<tên>
GROUP
<tên đoạn>[,. . .]

PUBLIC
<tên>[,. . .]

EXTRN
<tên>:<thuộc tính>[,. . .]

dgroup GROUP data1,data2,data3

. . .
ASSUME DS:dgroup
. . .
MOV AX,dgroup
MOV DS,AX

ORG
[<biểu thức>]

INCLUDE
<tên t
ập
tin>

COMMENT
<
dấu ngăn
>
<chú thích không cần chấm phẩy>
<
dấu n
g
ăn
> <chú thích không cần chấm phẩy>

@
Tổ chức cấu trúc máy tính C6 Hợp ngữ / S108




Khoa Công nghệ thông tin Đại học Bách khoa tp.HCM
Biên soạn : Nguyễn Xuân Minh

<tên> MACRO [<thông số hình thức>, . . . ]
. . .
ENDM

<tên macro> <thôn
g
số th

c> , . . .

EXITM

LOCAL <tên> [, . . . ]

PURGE <tên macro> [, . . . ]
REPT <biểu thức>
. . .
ENDM
IRP <thông số>, <danh sách các trị trong ngoặc nhọn>
. . .
ENDM
IRPC <thông số>,<string>
. . .
ENDM
Các
toán tử
&<thông số>

% (Biểu thức)
;;<chú thích>
!<ký tự>
< văn bản>
Chỉ thị Macro

×