1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tài liệu Kỹ thuật lập trình nhúng - Phần 2: Lập trình hợp ngữ trên Vi xử lý 80x86 docx

61 785 3

Đ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 đề Lập trình hợp ngữ trên Vi xử lý 80x86
Tác giả Phạm Quốc Thịnh
Trường học Department of Electronics & Telecommunications
Chuyên ngành Advanced Topics in Software Engineering
Thể loại Tài liệu
Năm xuất bản 2006
Định dạng
Số trang 61
Dung lượng 1,48 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 Các hằng constants: trong chương trình các hằng số được đặt tên nhơ chỉ dẫn EQU Cú pháp: Tên EQU constants... Cú pháp lệnh hợp ngữ12  Name: Operation Operands ;Comment [ Nhãn] Tên g

Trang 1

Advanced Topics in Software Engineering

Trang 5

Tổng quan

5

• Các phát biểu lệnh hợp ngữ (assembly statement)

– Assembly Language Instruction

Trang 6

• Kí tự xuống dòng: kết thúc một lệnh

• Không phân biệt hoa thường

Trang 7

 Từ vựng:

– Tên: A-Z a-z 0-9 ? @ _ $

• Duy nhất  Qui tắc đặt tên??

Trang 8

 Biến byte, biến từ: chỉ dẫn của asm định

nghĩa biến byte có dạng sau:

Trang 9

 Mảng (Arrays): trong ASM mảng là một loạt các byte nhớ hoặc từ nhớ liên tiếp nhau

Trang 10

 Chuỗi các ký tự (character strings)

 Bên trong một chuỗi asm phân biệt chữ hoa chữ thường

 Cũng có thể định nghĩa

10

Tổng quan (6)

Trang 11

 Các hằng (constants): trong chương trình các hằng số được đặt tên nhơ chỉ dẫn EQU

 Cú pháp: Tên EQU constants

Trang 12

Cú pháp lệnh hợp ngữ

12

Name: Operation Operand(s) ;Comment

[ Nhãn] Tên gợi nhớ Toán hạng(s) ; Ghi chú

o Trường tên(nhãn): dùng cho nhãn lệnh, tên thủ tục và tên

biến Asm sẽ chuyển tên thành địa chỉ bộ nhớ Tên có thể dài

từ 1-31 ký tự.

Trang 13

Cú pháp lệnh hợp ngữ (2)

13

Name: Operation Operand(s) ;Comment

[ Nhãn] Toán tử Toán hạng(s) ; Ghi chú

o Trường toán tử: Chứa ký hiệu của mã phép toán Ví dụ: ADD, INC, DEC, INT…

o Trường toán hạng: chỉ ra số liệu tham gia trong lệnh đó

Trong các lệnh 2 toán hạng: toán hạng đầu là toán hạng đích, toán hạng thứ hai là toán hạng nguồn(không thay đổi khi thực hiện lệnh)

Trang 14

Cú pháp lệnh hợp ngữ (3)

14

Name: Operation Operand(s) ;Comment

[ Nhãn] Toán tử Toán hạng(s) ; Ghi chú

o Trường chú thích (ghi chú): lập trình viên thường chú thích để thuyết minh về câu lệnh Người ta dùng dấu ; để bắt đầu chú thích

Trang 15

Các lệnh cơ bản

15

Trang 16

Các lệnh cơ bản (2)

Trang 17

Các lệnh cơ bản (3)

Trang 18

 Lệnh NEG: lấy bù 2 của một của một thanh ghi hoặc vị trí nhớ

Trang 19

Cấu trúc của một chương trình hợp ngữ

 Mỗi chương trình ngôn ngữ máy bao gồm mã (code), số liệu (data) và ngăn xếp (stack)

Mỗi một phần chiếm một đoạn bộ nhớ

 Các kiểu bộ nhớ: được quy định bởi chỉ dẫn với cú pháp:

.MODEL memory_model

19

Trang 20

Cấu trúc của một chương trình hợp ngữ (2)

Trang 21

Cấu trúc của một chương trình hợp ngữ (3)

giữ cho stack

Trang 22

Cấu trúc của một chương trình hợp ngữ (4)

Trang 23

Cấu trúc của một chương trình hợp ngữ (5)

Trang 25

Các lệnh vào ra (2) - INT 21h

function number routine

9 String input

– Input : DX= địa chỉ chuỗi ký tự kết thúc bằng $

– Output: chuỗi kí tự xuất hiện trên màn hình

function number routine

2 Single character output

Trang 26

Các lệnh vào ra (3)

26

Trang 27

Chương trình đầu tiên

Trang 29

Trạng thái của vi xử lý và các thanh ghi cờ

 Các thanh ghi cờ(flags register)

 Tràn (overflow)

 Sự ảnh hưởng của các lệnh đến cờ

29

Trang 30

Auxiliary Flag Carry Flag Overflow Flag Sign Flag Parity Flag Zero Flag

Cờ phụ - Chỉ thị nếu số nhớ vượt 4 LSB

Cờ nhớ - Chỉ thị nếu số nhớ vượt 4 MSB

Cờ tràn - Chỉ thị nếu kết quả vượt thang

Cờ dấu - Chỉ thị nếu kết quả âm

Direction Flag Interrupt-Enable Flag Trap Flag

Cờ hướng - nếu DF=1 thực hiện theo chiều giảm

Cờ ngắt - báo MP biết yêu cầu ngắt

Cờ bẫy - đặt MP vào chế độ chạy từng lệnh.

Thanh ghi cờ

Trang 31

VD: xác định giá trị các cờ

  1 0 1 1 0 1 0 1+ 1 0 0 1 0 1 1 0

1 0 1 0 0 1 0 1 1

• OF=1 There was an overflow, i.e., adding two negative numbers resulted in a positive number

• SF=0 The result is positive.

• ZF=0 The result does not equal zero.

• AF=0 For now we won't worry about the auxiliary flag.

• PF=0 For now we won't worry about the parity flag.

• CF=1 There was a carry.

Trang 32

Ví dụ: add al,bl trong đó al=bl=80h

32

80h 80h 100h Kết quả AL=00h SF=0, vì MSB=0

Trang 35

Ví dụ về lệnh nhảy

Trang 36

Nhảy có dấu

36

JG/JNLE đích ;nhảy nếu lớn hơn (ZF=0 and

SF=OF)/nhảy nếu ko nhỏ hơn hay bằng

JGE/JNL đích ;nhảy nếu lớn hơn hay bằng

(SF=OF)/nhảy nếu không nhỏ hơn hoặc bằng

JL/JNGE đích ; nhảy nếu nhỏ hơn/nhảy nếu ko

lơn hơn hay bằng (SF#OF)

JLE/JNG đích ; nhảy nếu nhỏ hơn hay bằng

(ZF=1 or SF#OF) /nhảy nếu không lớn hơn

Trang 37

Nhảy có điều kiện không dấu

37

JA/JNBE đích ;nhảy nếu lớn hơn (CF=0,

SF=0) /nếu không nhỏ hơn hoặc bằng

JAE/JNB đích ;nhảy nếu lớn hơn hay bằng

(CF=0) /nhảy nếu ko nhỏ hơn

JB/JNA đích ;nhảy nếu nhỏ hơn(CF=1) / nhảy

nếu không lớn hơn hoặc bằng

JBE/JNA đích ;nhảy nếu nhỏ hơn hoặc

bằng(CF=1 or ZF=1)

Trang 38

Nhảy một cờ

38

Trang 39

Lệnh CMP

39

Cú pháp: CMP đích,nguồn

 Lệnh này so sánh toán hạng đích với toán hạng

nguồn bằng cách tính đích – nguồn, kết quả ko

được cất giữ

 Ví dụ:

Trang 42

Lệnh AND, OR, XOR

42

Lệnh NOT

Trang 43

Lệnh dịch trái

43

Trang 44

Lệnh dịch phải

44

Trang 45

Lệnh quay

45

Trang 47

Ngăn xếp và thủ tục

47

Trang 48

Ngăn xếp

 Là cấu trúc dữ liệu một chiều

 Số liệu được đưa vào và lấy ra theo nguyên tắc LIFO

 stack 100h

 SP chứa địa chỉ đỉnh ngăn xếp

48

Trang 49

Ngăn xếp (2)

Trang 50

50

Trang 53

Các lệnh nhân và chia

53

Trang 57

Mảng và các chế độ định địa chỉ

57

Trang 59

Mảng một chiều (2)

mảng có cùng giá trị ban đầu

59

Trang 60

Các chế độ địa chỉ

gọi là chế độ địa chỉ

60

Trang 61

Advanced Topics in Software Engineering

Spring 2006

Thanks For Listening

Questions?

61

Ngày đăng: 24/12/2013, 15:15

HÌNH ẢNH LIÊN QUAN

– Output: chuỗi kí tự xuất hiện trên màn hình - Tài liệu Kỹ thuật lập trình nhúng - Phần 2: Lập trình hợp ngữ trên Vi xử lý 80x86 docx
utput chuỗi kí tự xuất hiện trên màn hình (Trang 25)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w