09/19/12
09/19/12
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
1
1
Chương 5 : Nhập môn Assembly
Chương 5 : Nhập môn AssemblyHiểu ngôn ngữ máy và ngôn ngữ Assembly.
Hiểu ngôn ngữ máy và ngôn ngữ Assembly.Trình hợp dòch Assembler.
Trình hợp dòch Assembler.Lý do nghiên cứu Assembly.
Lý do nghiên cứu Assembly.Hiểu các thành phần cơ bản của Assembly
Hiểu các thành phần cơ bản của AssemblyNắm được cấu trúc của 1 CT Assembly.
Nắm được cấu trúc của 1 CT Assembly. Biết viết 1 chương trình Assembly.
Một MT hay một họ MT sử dụng 1 tập lệnh mã
máy riêng cũng như 1 ngôn ngữ Assembly riêng.
máy riêng cũng như 1 ngôn ngữ Assembly riêng.
09/19/12
09/19/12
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
3
3
Assembler
Assembler
Một chương trình viết bằng ngôn ngữ Assembly
Một chương trình viết bằng ngôn ngữ Assembly
muốn MT thực hiện được ta phải chuyển thành
muốn MT thực hiện được ta phải chuyển thành
ngôn
ngônngữ máy.
ngữ máy.
Chương trình dùng để dòch 1 file viết bằng Assembly
Chương trình dùng để dòch 1 file viết bằng Assembly
5
5
Lệnh máy
Lệnh máy
Là 1 chuổi nhò phân có ý nghóa đặc biệt – nó ra
Là 1 chuổi nhò phân có ý nghóa đặc biệt – nó ra
lệnh cho CPU thực hiện tác vụ.
lệnh cho CPU thực hiện tác vụ.
Tác vụ đó có thể là :
di chuyển 1 số từ vò trí nhớ này sang vò trí nhớ khác.
Cộng 2 số hay so sánh 2 số.
0 0 0 0 0 1 0 0 Ad d a n u m b e r t o t h e AL
r e g is t e r
1 0 0 0 0 1 0 1 Ad d a n u m b e r t o a v a r ia b le
1 0 1 0 0 0 1 1 Mo v e t h e AX r e g t o a n o t h e r
r e g
09/19/12
09/19/12
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
6
6
Lệnh máy (cont)
Lệnh máy (cont)
Tập lệnh máy được đònh nghóa trước, khi CPU được sản
Tập lệnh máy được đònh nghóa trước, khi CPU được sản
xuất và nó đặc trưng cho kiểu CPU .
DOS để chạy
09/19/12
09/19/12
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
8
8
Dòch vaø noái keát chöông trình
Dòch vaø noái keát chöông trình
Te n C T .AS M Te n C T .O BJ
MASM.EXE
Te n C T .EXE
Te n C T .MAP Te n C T .LIS T
Te n C T .C RF
LINK.EXE
09/19/12
09/19/12
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
9
9
Moät chöông trình minh hoaï
Moät chöông trình minh hoaï
DOSSEG
DOSSEG
.MODEL SMALL
.MODEL SMALL
.STACK 100h
.STACK 100h
.DATA
Các file được tạo
Sau khi dòch thành công file nguồn.ASM, ta có các file :
Sau khi dòch thành công file nguồn.ASM, ta có các file :
File listing : file VB , các dòng có đánh số thứ tự mã.
File listing : file VB , các dòng có đánh số thứ tự mã.
File Cross reference
File Cross reference
File Map
File Map
File Obj
File Obj
File EXE
File EXE
09/19/12
09/19/12
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
11
11
File Listing
File Listing
Microsoft (R) Macro Assembler Version 5.10 10/11/4
Microsoft (R) Macro Assembler Version 5.10 10/11/4
6 57 4F 52 44 24
6 57 4F 52 44 24
7 .CODE
7 .CODE
8 0000 MAIN PROC
8 0000 MAIN PROC
9 0000 B8 ---- R MOV AX,@DATA
9 0000 B8 ---- R MOV AX,@DATA
10 0003 8E D8 MOV DS, AX
10 0003 8E D8 MOV DS, AX
11 0005 B4 09 MOV AH,9
11 0005 B4 09 MOV AH,9
♀◘
♀◘
Microsoft (R) Macro Assembler Version 5.10 10/11/4
Microsoft (R) Macro Assembler Version 5.10 10/11/4
09/19/12
09/19/12
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
12
12
Map File
Map File
Start Stop Length Name Class
Start Stop Length Name Class
00000H 0001FH 00020H _TEXT CODE
00000H 0001FH 00020H _TEXT CODE
00020H 0002AH 0000BH _DATA DATA
00020H 0002AH 0000BH _DATA DATA
.Stack 100h : dành 256 bytes cho stack của chương
.Stack 100h : dành 256 bytes cho stack của chương
trình .
trình .
.Data : đánh dấu phân đoạn dữ liệu ở đó các biến được
.Data : đánh dấu phân đoạn dữ liệu ở đó các biến được
lưu trữ.
lưu trữ.
.Code : đánh dấu phân đoạn mã chứa các lệnh phải thi
.Code : đánh dấu phân đoạn mã chứa các lệnh phải thi
hành.
hành.
Proc : khai báo đầu 1 thủ tục, trong Ex này ta chỉ có 1
Proc : khai báo đầu 1 thủ tục, trong Ex này ta chỉ có 1
thủ tục Main.
thủ tục Main.
09/19/12
09/19/12
Chuong 5 Nhap mon ASM
Chuong 5 Nhap mon ASM
14
14
Giải thích (cont)
Giải thích (cont)
.MODEL
kiểu bộ nhớ
kiểu bộ nhớ
.STACK kích thước
.STACK kích thước
.DATA
.DATAkhai báo biến, hằng
khai báo biến, hằng
.CODE
.CODEMAIN PROC
MAIN PROCMOV AX, @DATA
MOV AX, @DATAMOV DS,AX
MOV DS,AXcác lệnh của chương trình chính
các lệnh của chương trình chính