1. Trang chủ
  2. » Cao đẳng - Đại học

Nhập môn assembly (cấu TRÚC máy TÍNH SLIDE) (chữ biến dạng do slide dùng font VNI times, tải về xem bình thường)

39 85 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nhập môn assembly
Trường học Trường Đại Học XYZ
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài giảng
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 39
Dung lượng 855 KB

Nội dung

Chương 5 : Nhập môn Assembly Hiểu ngôn ngữ máy và ngôn ngữ 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ột chương trình vi

Trang 1

Chương 5

Nhập môn Assembly

Trang 2

Chương 5 : Nhập môn Assembly

Hiểu ngôn ngữ máy và ngôn

ngữ Assembly.

Trình hợp dịch Assembler.

Lý do nghiên cứu Assembly.

Hiểu các thành phần cơ bản của Assembly

Nắm được cấu trúc của 1 CT

Assembly

Biết viết 1 chương trình Assembly.

Biết cách dịch, liên kết và thực

Mục tiêu

Trang 3

Giới thiệu ngôn ngữ Assembly

Giúp khám phá bí mật phần

cứng cũng như phần mềm máy tính.

Nắm được cách phần cứng MT

làm việc với hệ điều hành và hiểu được bằng cách nào 1 trình ứng dụng giao tiếp với hệ điều hành.

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.

Trang 4

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 ngôn ngữ máy

 Chương trình dùng để dịch 1 file viết

bằng Assembly  ngôn ngữ máy , gọi là Assembler.

Có 2 chương trình dịch:

MASM và TASM

Trang 5

Lý do nghiên cứu Assembly

Đó là cách tốt nhất để học

phần cứng MT và hệ điều hành.

Vì các tiện ích của nó

Có thể nhúng các chương

trình con viết bằng ASM vào

trong cácchương trình viết

Trang 6

Lệnh máy

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ụ.

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 Add a number to the AL register

1 0 0 0 0 1 0 1 Add a number to a variable

1 0 1 0 0 0 1 1 Move the AX reg to another reg

Trang 7

Lệnh máy (cont)

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

Ex : B5 05 là 1 lệnh máy viết dạng số hex, dài 2 byte.

Byte đầu B5 gọi là Opcode

Byte sau 05 gọi là toán hạng Operand

Ýù nghĩa của lệnh B5 05 : chép giá trị 5 vào reg AL

Trang 8

Cách viết 1 chương trình

Dùng 1 phần mềm soạn thảo

VB bất kỳ để soan CT Assembly như : NotePad, NC, màn hình C, Pascal CT có phần mở rộng là ASM dùng MASM để dịch chương trình nguồn ASM  File Object.

dùng LINK để liên kết Object tạo tập tin thực hiện EXE

Gỏ tên tập tin thực hiện EXE từ dấu nhắc DOS để chạy

Trang 9

Dịch và nối kết chương trình

MASM.EXE

TenCT EXE

TenCT MAP TenCT LIST TenCT CRF

LINK.EXE LINK.EXE

Trang 10

Một chương trình minh hoạ

MAIN ENDP END MAIN

Trang 11

Các file được tạo

 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

Trang 14

Giải thích

 model small : dùng kiểu cấu trúc <=

64 K bộ nhớ cho mã , 64K cho dữ liệu.

 Stack 100h : dành 256 bytes cho stack

của chương trình

 Data : đánh dấu phân đoạn dữ liệu

ở đó các biến được lưu trữ.

 Code : đánh dấu phân đoạn mã

chứa các lệnh phải thi hành

 Proc : khai báo đầu 1 thủ tục, trong Ex này ta chỉ có 1 thủ tục Main.

Trang 15

Giải thích (cont)

Chép địa chỉ đoạn dữ liệu vào

thanh ghi AX.

Sau đó chép vào thanh ghi DS

Gọi hàm số 9 của Int 21h của Dos để xuất chuổi ký tự ra màn hình.

Trang 16

Cấu trúc của 1 CT ASM

các lệnh của chương trình chính

MOV AH,4CH ; Thoát khỏi chương trình

INT 21H

MAIN ENDP

các chương trình con khác nếu có

END MAIN

Trang 17

Các chế độ bộ nhớ

SMALL Mã lệnh trong 1 đoạn.Dữ liệu

trong 1 đoạn MEDIUM Mã lệnh nhiều hơn 1 đoạn.Dữ

liệu trong 1 đoạn COMPAC

T Mã lệnh trong 1 đoạn Dữ liệu nhiều hơn 1 đoạn

LARGE Mã lệnh nhiều hơn 1 đoạn

Dữ liệu nhiều hơn 1 đoạn,không có mảng nào > 64K

HUGE Mã lệnh nhiều hơn 1 đoạn

Dữ liệu nhiều hơn 1 đoạn, mảng

Trang 18

Dạng lệnh

Nhãn, tên biến

Tên thủ tục

Nhãn, tên biến

Tên thủ tục

Mã lệnh dạng

gợi nhớ

Mã lệnh dạng

gợi nhớ Register, ô nhớ Register, ô nhớ Trị, hằng Trị, hằng

Trang 19

INT 21H

gọi chương trình ngắt của DOS và BIOS.

Ngắt 21h

Muốn sử dụng hàm nào của INT 21h ta đặt

function_number vào thanh ghi AH, sau đó gọi INT 21h

Trang 20

INT 21h (cont)

Hàm 1 : Nhập 1 ký tự

Input : AH =1 Output : AL = mã ASCCI của phím ấn

= 0 nếu 1 phím điều khiểân được ấn

Hàm 2 : Hiển thị 1 ký tự ra màn hình

Input : AH =2

DL = Mã ASCII của ký tự hiển thị hay ký tự điều khiển

Trang 21

Thí dụ minh họa

MOV DL , 0AH INT 21H

MOV DL , BL INT 21H

MOV AX , 4C00H INT 21H

MAIN ENDP END MAIN

Trang 22

Thí dụ minh họa các hàm

Trang 23

Cú pháp : [tên biến] DB | DW | [trị khởi tạo]

Là một tên ký hiệu dành riêng cho 1

vị trí trong bộ nhớ nơi lưu trữ dữ liệu.

Offset của biến là khoảng cách từ

đầu phân đoạn đến biến đó.

Ex : khai báo 1 danh sách aList ở địa

chỉ 100 với nội dung sau :

data

aList db “ABCD”

Trang 25

Khai báo biến

Trang 26

Minh họa khai báo biến

Trang 27

Minh họa khai báo biến

DẠNG LƯU TRỮ DỮ LIỆU KIỂU WORD :

Trình hợp dịch đảo ngược các byte trong 1

giá trị kiểu WORD khi lưu trữ trong bộ nhớ :

Trang 28

Minh họa khai báo biến

Trang 30

Khởi tạo biến

Khi khởi tạo trị là 1 số hex thì giá trị

số luôn luôn bắt đầu bằng 1 ký số từ 0 đến 9 Nếu ký số bắt đầu là A F thì phải thêm số 0 ở đầu.

Db A6H ; sai

Db 0A6h ; đúng

Trang 31

Toán tử DUP (cont)

Amtrix dw 3 dup (4 dup (0) )

Tạo 1 ma trận 3x4

Atable db 4 dup (3 dup (0), 2 dup

(‘X’))

X 000XX

Trang 32

Toán tử DUP

Chỉ xuất hiện sau 1 chỉ thị

DB hay DW

Với DUP ta có thể lặp lại 1

hay nhiều trị cho vùng nhớ.

Rất có ích khi làm việc với

mảng hay chuổi

Trang 33

Toán tử ?

không cần khởi tạo trị ta dùng toán tử ?

Ex : MEM8 DB ? ; khai báo 1 byte trống trong bộ nhớ

MEM16 DW ? ; khai báo 2 byte

trống trong bộ nhớ

BMEM DB 50 DUP(?)

; khai báo 50 byte trống trong bộ

nhớ

Trang 34

Chương trình dạng COM

CODE SEGMENT

ASSUME CS:CODE , DS:CODE, SS:CODE

; toàn bộ chương trình chỉ nằm trong 1 segment Org 100h ;; chỉ thị nạp thanh ghi lệnh IP=100h khi

Trang 35

 chương trình Assembly gồm nhiều dòng lệnh.

 Mỗi lệnh phải viết trên 1 dòng

 Lệnh có thể gồm [tên] [toán tử] [toán hạng]

 Các ký tự phải đặt trong dấu ‘ ‘ hay “ “

 DB dùng để định nghĩa biến kiểu BYTE

 DW dùng để định nghĩa biến kiểu WORD.

 Có 2 cách xuất nhập dữ liệu : liên lạc

trực tiếp qua cổng hay dùng các phục vụ

Trang 36

Câu hỏi ôn tập

tập tin liệt kê, hãy nêu ý nghĩa của R 5B 0021 R ADD BX, VAL1

chỉ của biến dưới đây trong 1

tập tin liệt kê.

5B 0021 R ADD BX, VAL1

Trang 37

Câu hỏi ôn tập

 Chương trình sau có lỗi Hãy tìm câu lệnh

nào gây ra lỗi, giải thích và sửa lại cho

Trang 38

Câu hỏi ôn tập

 Chương trình sau có lỗi Hãy tìm câu lệnh

nào gây ra lỗi, giải thích và sửa lại cho

MOV AX, VALUE1

MOV AX, VALUE2

MOV AX, 4C00H

VALUE1 DB 0AH

VALUE2 DB 1000H

Trang 39

Bài tập lập trình

Bài 1 : Viết chương trình nhập 1 ký tự thường , in ra ký tự hoa tương ứng.

Bài 2 : Viết chương trình hoán vị 2 biến kiểu byte được gán sẵn trị.

Bài 3 : Viết chương trình tạo 1 array có các phần tử 31h,32h,33h,34h.

Nạp từng phần tử vào thanh ghi DL

và xuất nó ra màn hình Giải thích

tại sao kết xuất trên màn hình là

Ngày đăng: 28/03/2021, 22:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w