1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐỀ CƯƠNG ÔN TẬP MÔN VI XỬ LÝ.

3 444 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 44 KB

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

Nội dung

I) Phụ lục I bảng mã Hex Ascii Hex Ascii Hex Ascii 61 a 41 A 62 b 42 B 63 c 43 C 64 d 44 D 65 e 45 E 66 f 46 F 67 g 47 G 68 h 48 H 69 i 49 I 6A j 4A J 6B k 4B K 6C l 4C L 6D m 4D M 6E n 4E N 6F o 4F O 70 p 50 P 71 q 51 Q 72 r 52 R 73 s 53 S 74 t 54 T 75 u 55 U 76 v 56 V 77 w 57 W 78 x 58 X 79 y 59 Y 7A z 5A Z Hex Ascii Hex Ascii 30 0 35 5 31 1 36 6 32 2 37 7 33 3 38 8 34 4 39 9 II) Phụ lục II tóm tắt các lệnh, kiến thức về bộ vi xử lý (micro proccessor) 8 bit Intel Nhóm chuyển đổi dữ liệu. 1) IN PORT Nhập số liệu vào với: IN là mã kênh 1 byte và PORT là địa chỉ 8 bit của cổng vào.

Trang 1

Đề cơng ôn tập

môn vi xử lý.

I) Phụ lục I bảng mã

Hex - Ascii

Hex Ascii Hex Ascii

Hex Ascii Hex Ascii

II) Phụ lục II tóm tắt các

lệnh, kiến thức về bộ vi xử

lý (micro proccessor)

8 bit Intel

Nhóm chuyển đổi dữ liệu.

1) IN PORT Nhập số liệu

vào với: IN là mã kênh 1

byte và PORT là địa chỉ 8 bit

của cổng vào

(Acc) < - (Port)

Ví dụ: Port_0 = 01h

In Port_0

2) OUT PORT Đa thông

tin ra với: OUT là mã kênh 1

byte và PORT là địa chỉ 8 bit

của cổng ra

(Port) < - (Acc)

Ví dụ: Port_1 = 0Bh

Out Port_1

3) STA Addr16 Nội dung

thanh chứa đợc chuyển vào ngăn chứa 16bit

(Addr16) < - (Acc)

4) LDA Addr16 Ngăn nhớ

có địa chỉ là nội dung của 2 byte kế tiếp

5) SHLD Addr16 Cất giữ

nội dung của thanh HL vào hai ngăn nhớ địa chỉ bắt đầu

từ addr16

(Addr16) < - (L) (Addr16+1) < - (H)

6) LHLD Addr16 Hai byte

liên tục đợc trả trở lại thanh

HL từ Addr16

(L) < - (Addr16) (H) < - (Addr16+1) Chú ý: (5&6) Byte thấp đa vào ngăn nhớ thấp, byte cao

đa vào ngăn nhớ cao

7) MOV M,R Chuyển nội

dung ngăn nhớ R vào vào ngăn nhớ M

Chú ý: (7) Ngăn nhớ đích ở bên trái dấu , (M) ngăn nhớ nguồn ở bên phải dấu , (R)

+ R là các thanh ghi 8 bit bên trong bộ vi xử lý (A, B,

C, D, E, H, L) + M là ngăn nhớ có địa chỉ là nội dung (HL)

((HL)) < - (R)

8) LDAX rp

(Acc) < - ((rp)) 9) STAX rp

((rp)) < - (Acc) Chú ý: (8&9) rp: BC, DE

10) MVI r,data8

(r) < - data

Ví dụ: MVI M,data8

((HL)) < - data8

Nhóm thực hiện các phép

tính Logic 1) CMA Lấy bù của các

thanh chứa Acc (Acc) < - ( Acc)

2) CMC Lấy bù với các cở

keri (CY) (CY) < - (CY)

3) STC Đặt giá trị cho cờ

keri = 1

(CY) < - 1

4) ANI data8 Nhân logic

với data8 (Acc) < - (Acc).data8

5) ANA r Nhân logic với r

(Acc) < - (Acc).data8

III) Chơng trình LEV85 Mục lục:

Bài 1.85 (Thu số liệu) Bài 2.85 (Chuyển mảng) Bài 3.85 (Ghép hai số BCD) Bài 4.85 (Khoá điện tử) Bài 5.85 (Cộng 2 số 2 byte) Bài 6.85 (Trừ 2 số 2 byte) Bài 7.85 (Chơng trình đổi

mã BIN -> HEX)

Bài 1.85 (Thu số liệu)

thu_so_lieu: ; Tên ch/trình

; -; Khai khai báo

; -port_in = 00 h

error ds 1 data_exit ds 1

; -; Phần chơng trình chính

; -org 0080h ; Ch/tr bắt đầu từ

địa chỉ 0080h loop:

in port_in cpi 00h

jz no mvi a,0ffh sta data_exit cma

sta error jmp loop no:

mvi a,0ffh sta error cma sta data_exit

Chú thích: Chơng trình trên

khi chạy sẽ báo:

PC Overflow, go top Press any key to continue

+ Để chơng trình không báo

dòng lệnh trên thêm dòng sau vào cuối chơng trình chính: jmp loop

Bài 2.85 (Chuyển mảng)

chuyen_mang:

; -; Phần khai báo

; -s_size = 0fh ; Kích thớc

mảng source = 2000h ; destination = 2100h ; co_chuyen_m ds 1 ; Cờ báo

chuyển mảng xong

; -; Phần chơng trình chính

Trang 2

lxi b,source ; BC trỏ mảng

nguồn lxi d,destination ; DE trỏ

mảng đích mvi l,s_size ; l bộ đệm

mvi a,00h ;

sta co_chuyen_m ; Bật cờ

chuyển mảng

; -loop: ; lặp lại vòng này

s_size lần

ldax b ;

stax d ;

dcr l ;

jz xong

inx b ;

inx d ;

jmp loop

xong:

mvi a,0ffh ;

sta co_chuyen_m ; Bật cờ

chuyển mảng

Chú thích:

Bài 3.85 (Ghép hai số BCD)

ghep_2so_bcd:

; -; Phần khai báo

; -port_0 = 00h ;

port_1 = 01h ;

buffer = 2000h ; Kích thớc

buffer b_size = 0fh ;

co_accumulation ds 1 ;

mang ds 2 ;

; -; Phần chơng trình chính

org 0000h ;

start:

mvi c,b_size ;

lxi h,buffer ; HL trỏ tới

mảng buffer mvi a,00h ;

sta co_accumulation ; Gắn

cờ hiển thị giá trị = 00h

loop:

in port_0 ; Nhận chữ số

hàng đơn vị ani 0fh ; Lọc 4 bit cao

mov b,a ; Cất vào b

in port_1 ; Nhận chữ số

hàng chục ani 0fh ;

ral ; Dich trái 4 lần

ral

ral

ral

ora b ;

mov m,a ; Cất vào buffer

sta co_accumulation ; Bật cờ

hiển thị giá trị hiện hành

inx h ;

dcr c ;

jnz loop

Chú thích:

Bài 4.85 (Khoá điện tử)

khoa_dt:

; -; Phần khai báo

; -stack = 3000h ; Đỉnh ngăn

xếp port_status = 01h ; port_ascii = 00h ; bao_dong ds 1 ; Cờ báo động mo_cua ds 1 ; Cờ mở cửa cap_khoa ds 1 ;

; -; Phần chơng trình chính

lxi sp,stack ;

lxi h,key ; Bảng mã khóa mvi b,03h ;

mov a,b ; sta cap_khoa ; mvi a,00h ; sta bao_dong ; sta mo_cua ; nextIn:

call ban_phim ; Đọc trạng

thái bàn phím ani 7fh ; Loại bit Parity cua

ma ASCII cmp m ; So sánh với

mã khoá

jnz pick ; Báo động nếu

Acc<>M inx h ;

lda cap_khoa ; dcr a ;

sta cap_khoa ; dcr b ; Giảm số đệm

1 đơn vị jnz nextIn ; openIt:

mvi a,01h ; out 6eh ; Mở cửa mvi a,0ffh ; sta mo_cua ; Bật cờ mở cửa

hlt ; pick:

mvi a,01h ; out 6fh ; Báo động mvi a,0ffh ;

sta bao_dong ; Bật cờ

báo động hlt ;

ban_phim:

;in port_status ; Đọc trạng

thái của bàn phím ;ani 01h ;

;jz ban_phim

in port_ASCII ; Đọc mã

bàn phím ret

; -Key:

db 30h ; Bảng mã khoá

db 31h

db 32h

db 33h

db 34h

db 35h

db 36h

db 37h

db 38h

db 39h

Chú thích:

Bài 5.85 (Cộng 2 số 2 bytes)

cong_nbyte:

; -; Phần khai báo

org 0100h ;

n EQU 2 ;

nb db n ; Kích thớc buffer tong dw 0000h ; Buffer

chứa tổng so_hang1 dw 01ffh ; Buffer

chứa số hạng thứ nhất so_hang2 dw 0101h ; Buffer

chứa số hạng thứ hai ket_thuc db 00h ; Cờ báo

kết thúc phép cộng

; -; Phần chơng trình chính

org 0000h ;

start:

lxi d,tong ; DE trỏ tới

buffer chứa tổng lxi b, so_hang1 ; DE trỏ tới

buffer chứa số hạng 1 lxi h, so_hang2 ; DE trỏ tới

buffer chứa số hạng 2 xra a ; Xoá CY

loop:

ldax b ;Lấy 1 byte số hạng 1 adc M ; Cộng với 1 byte

số hạng 2 stax d ; Chuyển kết quả

vào buffer tổng lda nb ;

dcr a ; sta nb

jz xong ; Nếu cộng xong

thì bật cờ kết thúc inx b

inx d inx h jmp loop xong:

mvi a,0ffh sta ket_thuc ;

Chú thích:

Bài 6.85 (Trừ 2 số 2 bytes)

Tru_nbyte:

Trang 3

; -; Phần khai báo

org 0100h ;

n EQU 2 ;

nb db n ; Kích thớc buffer hieu dw 0000h ; Buffer

chứa hiệu so_bi_tru dw 05ffh ; Buffer

chứa số bị trừ so_tru dw 0101h ; Buffer

chứa số trừ ket_thuc db 00h ; Cờ báo

kết thúc phép trừ

; -; Phần chơng trình chính

org 0000h ;

start:

lxi d,hieu ; DE trỏ tới

buffer chứa hiệu lxi b, so_bi_tru ; DE trở tới

buffer chứa số bị trừ lxi h, so_tru ; DE trở tới

buffer chứa số trừ xra a ; Xoá CY

loop:

ldax b ; Lấy 1 byte số bị trừ sbb M ; Trừ đi 1 byte số trừ stax d ;Chuyển kết quả

vào buffer hiệu lda nb ;

dcr a ;

sta nb

jz xong ; Nếu cộng xong

thì bật cờ kết thúc inx b

inx d

inx h

jmp loop

xong:

mvi a,0ffh

sta ket_thuc ;

hlt ; Dừng

Chú thích:

Bài 7.85 (Chơng trình đổi

mã BIN -> HEX)

Ngày đăng: 16/05/2016, 13:58

TỪ KHÓA LIÊN QUAN

w