SlideShare a Scribd company logo
28-Jan-13
1
Z80 Examples
Các TD cho Z80
Chú ý:
Các TD sau được chạy thử trên mô phỏng Z80 (Z80
IDE V1.0 của Peter J.Fondse). Trong mô phỏng này,
tác giả đã định nghĩa sẵn các ngoại vi như sau (ta
có thể chỉnh lại ở cửa sổ Z80 Visual Simulator 
Peripherals  Configure Peripherals)
STT Ngoại vi Loại Cổng Địa chỉ Chú thích
1 Các công tắc (Switches) Nhập 02H
2 8 đèn LED (LED’s) Xuất 03H 0=LED tắt; 1=LED sáng
3 Thanh trượt (Slider) Nhập 04H
4 Hiển thị vạch (Bar display) Xuất 05H
5 Hiển thị 7 đoạn (7 segment display) Xuất 0AH 4 digit với dấu chấm thâ ̣p phân
2
28-Jan-13
2
Chương trình Z80 IDE V1.0
3
TD 1: Các thí dụ cộng/trừ số nhị phân và cộng BCD (1/6)
; TD: binary numbers ex1
; Minh hoa cac phep toan nhi phan
NUM1 EQU 25
NUM2 EQU -17
BIN16_1 EQU 2578 ; = 0A12H
BIN16_2 EQU 1289 ; = 0509H
TEST EQU 1289-2578 ; = FAF7H
org 100h
program
IN A,(02H) ;doc tu switches
OUT (03H),A ;xuat ra LED
CPL ;lay bu 1 cua A
OUT (03H),A ;xuat ra LED bu 1 cua A
CPL ;2 lan bu 1 ve tri cu
OUT (03H),A ; xuat ra LED
XOR 0FFH ; 1 cach lay bu 1 khac
OUT (03H),A ; xuat ra LED bu 1 cua A
XOR 0FFH ; 2 lan bu 1 ve tri cu
NEG ; bu 2 cua A
OUT (03H),A ; xuat ra LED bu 2 cua A
NEG ; 2 lan bu 2 ve tri cu
; Thu lenh ADD voi toan hang 8 bit
LD A,NUM1
LD B,NUM2
ADD A,B ; A <- A + B = 25 + (-17) = 8
OUT (03H),A ; xuat ra LED
; Thu lenh SUB voi toan hang 8 bit
LD A,NUM1
LD B,NUM2
SUB B ; A <- A - B = 25 - (-17) = 42
OUT (03H),A ; xuat ra LED 4
28-Jan-13
3
TD 1: Các thí dụ cộng/trừ số nhị phân và cộng BCD (2/6)
; Thu lenh ADD voi toan hang 16 bit dung cap thanh ghi HL, DE
LD DE,BIN16_1
LD HL,BIN16_2
ADD HL,DE ; HL <- HL + DE = 1289 + 2578 = 3867 = 0F1BH
; Thu lenh SBC voi toan hang 16 bit dung cap thanh ghi HL, DE
SCF
CCF ; Xoa co Carry (CF=0) hoặc có thể dùng 1 lệnh AND A
LD DE,BIN16_1
LD HL,BIN16_2
SBC HL,DE ; HL <- HL - DE = 1289 - 2578 = -1289 = FAF7H
5
TD 1: Các thí dụ cộng/trừ số nhị phân và cộng BCD (3/6)
; Thu lenh ADD voi toan hang 16 bit dung thanh ghi 8 bit
LD IX,BIN16_3 ; Lay byte thap truoc
LD A,(IX)
LD IY,BIN16_4
LD B,(IY)
ADD A,B
LD DE,RESULT_1
LD (DE),A
INC IX ; Pointer chi den byte cao
INC IY
INC DE
LD A,(IX)
LD B,(IY)
ADC A,B
LD (DE),A 6
28-Jan-13
4
TD 1: Các thí dụ cộng/trừ số nhị phân và cộng BCD (4/6)
; Lenh SBC cung lam tuong tu
LD IX,BIN16_3 ; Lay byte thap truoc
LD A,(IX)
LD IY,BIN16_4
LD B,(IY)
SUB B
LD DE,RESULT_2
LD (DE),A
INC IX ; Pointer chi den byte cao
INC IY
INC DE
LD A,(IX)
LD B,(IY)
SBC A,B
LD (DE),A 7
TD 1: Các thí dụ cộng/trừ số nhị phân và cộng BCD (5/6)
; Cong 2 so BCD 4 digits
LD IX,BIN16_5;Lay byte thap truoc
LD A,(IX)
LD IY,BIN16_6
LD B,(IY)
ADD A,B
DAA
LD DE,RESULT_3
LD (DE),A
INC IX ; Pointer chi den byte cao
INC IY
INC DE
LD A,(IX)
LD B,(IY)
ADC A,B
DAA
LD (DE),A
HALT
8
28-Jan-13
5
TD 1: Các thí dụ cộng/trừ số nhị phân và cộng BCD (6/6)
BIN16_3 DEFW 1289
BIN16_4 DEFW 2578
BIN16_5 DEFW 1289H; Bieu dien BCD cua 1289
BIN16_6 DEFW 2578H; Bieu dien BCD cua 2578
RESULT_1 DEFS 2
RESULT_2 DEFS 2
RESULT_3 DEFS 2
end program
9
TD 2: Tính tổng của 1 mảng dữ liệu trong bộ nhớ (1/2)
org 100H
; Chuong trinh tinh tong 1 array voi so bytes (trong B) va voi dia
; chi bat dau trong HL. Ket qua duoc cat trong DE
program
LD A,(N)
LD B,A ; Lay so bytes dat vao B
LD HL, DATA
LD A, 0
LD DE,0 ; Sum <- 0
LOOP: ADD A,(HL)
LD E,A ; Cap nhat byte thap cua Sum
JR NC, NEXT
INC D ; Cap nhat byte cao cua Sum
NEXT: INC HL
DJNZ LOOP 10
28-Jan-13
6
TD 2: Tính tổng của 1 mảng dữ liệu trong bộ nhớ (2/2)
HALT
DATA: DEFB 10
defb 20
defb 30
defb 40
defb 50
defb 60
defb 70
defb 80
N: defb $-DATA ; $ la dia chi hien tai
; do $ - DATA = 8
end program
11
TD 3: Thử lệnh IN/OUT
; TD: LED ex1
; cac LED o cong xuat (03H) se tat/sang theo trang thai cua khoa o
; cong nhap (02H)
org 100h
program
loop: in A,(02H)
out (03H),A
jr loop
end program
12
28-Jan-13
7
TD 4: LED sáng lần lượt từ phải sang trái và lặp lại
; TD: LED ex2 - LED sang chay xoay
; sang trai
PATTERN EQU 01H
org 100h
program
LD C,PATTERN
loop: LD A,C
OUT (03H),A
RLC C; Dung RRC C se chay sang phai!
CALL DELAY
JR loop
; Chuong trinh con DELAY lam tre
DELAY: LD B,0 ; lap 256 lan
L1: LD D,0 ; lap 256 lan
L2: DEC D
JR NZ,L2
DJNZ L1
RET
end program
13
TD 5: Điều khiển LED sáng chạy sang trái/phải theo trị số 0/1
ở công tắc 0 (1/2)
; TD: LED ex3 - LED sang chay xoay sang trai/phai theo cong tac 0 la 0/1
PATTERN EQU 01H
org 100h
program
LD C,PATTERN
LOOP: IN A,(02H)
BIT 0,A
JR NZ,RIGHT
RLC C ; Dung RRC C se chay sang phai!
JR NEXT
RIGHT: RRC C
NEXT: CALL DELAY
LD A,C
OUT (03H),A
JR LOOP
14
28-Jan-13
8
TD 5: Điều khiển LED sáng chạy sang trái/phải theo trị số 0/1
ở công tắc 0 (2/2)
; Chuong trinh con DELAY lam tre
DELAY: LD B,0 ; vong lap voi B la 256 lan!
L1: LD D,0 ; vong lap voi D la 256 lan!
L2: DEC D
JR NZ,L2
DJNZ L1
RET
end program
15
TD 6: Hiển thị các số từ 0 đến 9 và lặp lại (1/4)
Các LED 7 đoạn trong hiển thị 4 ký số lần lượt có các địa chỉ là
0AH, 0BH, 0CH, và 0DH cho các ký số tương ứng từ vị trí cao
xuống thấp. Trong TD này ta xuất LED 7 đoạn ở vị trí tận cùng bên
phải, nên dùng địa chỉ 0DH.
; TD: LED ex4 - Hien thi cac so tu 0 den 9 va lap lai
org 100h
program
LD L,0
LOOP: LD A,L
CALL DEC2LED
OUT (0DH),A ; Xuat ra LED 7 doan tai digit don vi!
CALL DELAY
INC L
LD A,9
CP L 16
28-Jan-13
9
TD 6: Hiển thị các số từ 0 đến 9 và lặp lại (2/4)
JR NC,LOOP
LD L,0
JR LOOP
; Chuong trinh con DELAY lam tre
DELAY: LD B,0 ; vong lap voi B la 256 lan
L1: LD C,100; vong lap voi C la 100 lan
L2: DEC C
JR NZ,L2
DJNZ L1
RET
17
TD 6: Hiển thị các số từ 0 đến 9 và lặp lại (3/4)
; Chuong trinh doi so nhi phan 4 bit sang ma 7 doan
DEC2LED:PUSH DE
PUSH IX
AND 0FH
LD E,A
LD D,0
LD IX,XLAT_TAB
ADD IX,DE
LD A,(IX+0)
POP IX
POP DE
RET
18
28-Jan-13
10
TD 6: Hiển thị các số từ 0 đến 9 và lặp lại (4/4)
XLAT_TAB:
; LED 7 doan trong mo phong nay co thu tu cac doan nhu sau
; hgfedcba - 0=LED tat, 1=LED sang
DEFB 00111111B; 0
DEFB 00000110B; 1
DEFB 01011011B; 2
DEFB 01001111B; 3
DEFB 01100110B; 4
DEFB 01101101B; 5
DEFB 01111101B; 6
DEFB 00000111B; 7
DEFB 01111111B; 8
DEFB 01101111B; 9
end program 19
TD 6: Hiển thị các số từ 0 đến 9 và lặp lại (4/4)
XLAT_TAB:
; LED 7 doan trong mo phong nay co thu tu cac doan nhu sau
; hgfedcba - 0=LED tat, 1=LED sang
DEFB 00111111B; 0
DEFB 00000110B; 1
DEFB 01011011B; 2
DEFB 01001111B; 3
DEFB 01100110B; 4
DEFB 01101101B; 5
DEFB 01111101B; 6
DEFB 00000111B; 7
DEFB 01111111B; 8
DEFB 01101111B; 9
end program 20
28-Jan-13
11
TD 7: Tìm bit kiểm tra chẵn lẽ cho 1 số 8 bit
trong thanh ghi A (1/4)
Trong Z80 có hỗ trợ việc cập kiểm tra chẵn lẻ với cờ P/V ở bit thứ
2 trong thanh ghi F sau các lệnh logic như AND, OR,…. Tuy nhiên
trong phần mềm mô phỏng của tác giả Peter J.Fondse không có
thực hiện chức năng này, do đó ta sẽ tự viết chương trình cập
nhật P/V theo nội dung của thanh ghi A: nếu số bit 1 ở A là số chẵn
thì P/V=1 (điều kiện PE đúng), ngược lại thì P/V=0 (điều kiện PO
đúng).
org 100H
program
; Hieu ung cap nhat co Parity sau lenh LOGIC
LD A,1
AND 0FFH ;P/V=0=Odd Parity(do so bit 1 cua ket qua AND la le)
LD A,3
AND 0FFH ;P/V=1=Even Parity(do so bit 1 cua ket qua AND la chan)
21
TD 7: Tìm bit kiểm tra chẵn lẽ cho 1 số 8 bit
trong thanh ghi A (2/4)
; Tuy nhien co P/V khong cap nhat vi Simulator nay bi loi trong
; phan cap nhat Parity. Neu dung phan mo phong Z80 Simulator
; IDE cua Oshon thi khong can.
; Do do ta se 1 chuong trinh con se cap nhat Parity theo so bit 1
; trong A
LD A,1
CALL PARITY_E ; P/V=0
LD A,3
CALL PARITY_E ; P/V=1
HALT
22
28-Jan-13
12
TD 7: Tìm bit kiểm tra chẵn lẽ cho 1 số 8 bit
trong thanh ghi A (3/4)
PARITY_E:
PUSH BC
PUSH DE
PUSH AF
POP BC ; B = A , C= F
LD B,8
LD D,A
LD E,0
RES 2,C ; P/V = 0 (co P/V o vi tri bit 2 trong thanh ghi F)
LOOP: SRL D
JR NC,SKIP
INC E
SKIP:DJNZ LOOP ; Vong lap tren dem so bit 1 trong A va cat vao E
23
TD 7: Tìm bit kiểm tra chẵn lẽ cho 1 số 8 bit
trong thanh ghi A (4/4)
BIT 0,E
JR NZ,ODD
SET 2,C ; P/V = 1
ODD: LD B,A
PUSH BC
POP AF ; A = khong doi, F duoc cap nhat theo so bit 1 cua A
POP DE
POP BC
RET
end program
24
28-Jan-13
13
TD 8: Áp dụng lệnh dịch bit (1/3)
Thực hiện phép nhân không dấu X cho với 1 số có dạng 2n + 1
(như 3, 5, 9, 17…): X * (2n + 1) = X*2n + X = dịch X sang trái n bit +
X. Giả sử kết quả của phép nhân sẽ đặt trong 1 số 16 bit.
; Chương trình con MUL_2NA1 nhân 1 số ở thanh ghi A với 1 số có
; dạng 2n + 1 ở C và kết quả 16 bit được để trong cặp thanh ghi DE
org 100H
program
LD A,27
LD C,17
CALL MUL_2NA1
HALT
25
TD 8: Áp dụng lệnh dịch bit (2/3)
MUL_2NA1:
PUSH AF
PUSH BC
LD D,0
LD E,A
DEC C
RET Z
CALL SHIFT_N
ADD A,E
LD E,A
LD A,0
ADC A,D
POP BC
POP AF
RET
26
28-Jan-13
14
TD 8: Áp dụng lệnh dịch bit (3/3)
; Tinh DE = A x 2^n bang cach dich DE sang trai n bit (dat trong C)
SHIFT_N:
SRL C
RET C
SLA E ; Dich cap thanh ghi DE sang trai 1 bit
RL D
JR SHIFT_N
end program
27
Các lệnh xoay và dịch
28
28-Jan-13
15
TD 9: Tính bù 2 của 1 số 16 bit trong bộ nhớ (1/2)
org 100H
program
; Lay bu 2 cua 1 so 16 bit NUM1 trong bo nho o dia chi 200H
; va cat lai vao bien 16 bit NUM2 trong bo nho o dia chi 202H
LD HL,(NUM1) ; Neu (NUM1) = 56D3H
LD A,L
CPL ; tinh bu 1 cua byte thap
LD L,A
LD A,H
CPL ; tinh bu 1 cua byte cao
LD H,A
INC HL
LD (NUM2),HL ; thi bu 2 cua no o (NUM2) = A92DH
29
TD 9: Tính bù 2 của 1 số 16 bit trong bộ nhớ (2/2)
; Cach 2 lay bu 2 bang lay 0 - NUM1
LD HL,(NUM1)
EX DE,HL
LD HL,0
AND A ; CF =0
SBC HL,DE
LD (NUM3),HL
HALT
org 200H
NUM1 defw 56D3H
NUM2 defs 2 ; bù 2 của 56D3H là A92DH
NUM3 defs 2
end program
30
28-Jan-13
16
TD 10 : Mã ASCII và Số BCD (1/6)
Cho 2 số NUM1 và NUM2 ở dạng ASCII gồm 10 ký số. Hãy thực hiện:
- Đổi ASCII thành BCD cất tại NUM1_BCD và NUM2_BCD
- Tìm tổng của NUM1_BCD và NUM2_BCD và cất vào BCD_SUM
- Đổi số BCD tại BCD_SUM thành ASCII và cất vào ASCII_SUM
org 100H
BCD_LEN EQU 5
program
; Đổi ASCII thành BCD cất tại NUM1_BCD và NUM2_BCD
LD HL,NUM1
LD IX,NUM1_BCD
CALL ASCII_HEX
LD HL,NUM2
LD IX,NUM2_BCD
CALL ASCII_HEX
31
TD 10 : Mã ASCII và Số BCD (2/6)
Cho 2 số NUM1 và NUM2 ở dạng ASCII gồm 10 ký số. Hãy thực hiện:
- Đổi thành BCD cất tại NUM1_BCD và NUM2_BCD
- Tìm tổng của NUM1_BCD và NUM2_BCD và cất vào BCD_SUM
- Đổi số BCD tại BCD_SUM thành ASCII và cất vào ASCII_SUM
; Tìm tổng của NUM1_BCD và NUM2_BCD và cất vào BCD_SUM
LD HL,NUM1_BCD+BCD_LEN - 1 ;chi den ky so BCD tan cung phai
LD IX,NUM2_BCD + BCD_LEN - 1
LD IY,BCD_SUM + BCD_LEN - 1
CALL SUM_BCD
; Đổi số BCD tại BCD_SUM thành ASCII và cất vào ASCII_SUM
LD HL,BCD_SUM
LD IX,ASCII_SUM
CALL BCD_ASCII
HALT 32
28-Jan-13
17
TD 10 : Mã ASCII và Số BCD (3/6)
ASCII_HEX: LD B,BCD_LEN
LOOP: LD A,(HL)
AND 0FH
RLA
RLA
RLA
RLA
LD C,A
INC HL
LD A,(HL)
AND 0FH
ADD A,C
LD (IX+0),A
INC HL
INC IX
DJNZ LOOP
RET 33
TD 10 : Mã ASCII và Số BCD (4/6)
SUM_BCD:
LD B,BCD_LEN
AND A ; CF=0
L1: LD A,(IX+0)
ADC A,(HL)
DAA
LD (IY+0),A
DEC IX
DEC IY
DEC HL
DJNZ L1
RET
34
28-Jan-13
18
TD 10 : Mã ASCII và Số BCD (5/6)
BCD_ASCII:
LD B,BCD_LEN
L2: LD A,(HL)
LD C,A
AND 0F0H
RRA
RRA
RRA
RRA ; lay nua byte cao
OR 30H ; Doi sang ASCII tuong duong
LD (IX+0),A
INC IX
LD A,C
AND 0FH ; lay nua byte thap
OR 30H ; Doi sang ASCII tuong duong
LD (IX+0),A
35
INC IX
INC HL
DJNZ L2
RET
TD 10 : Mã ASCII và Số BCD (6/6)
org 200H
NUM1 DEFM '1234567890'
NUM2 DEFM '1098765432'
ASCII_SUM DEFS 10 ; Ket qua la '2333333322'
DEFB 0
NUM1_BCD DEFS 5 ; Ket qua la 1234567890H (BCD cua thap
; phan 1234567890)
NUM2_BCD DEFS 5 ; Ket qua la 1098765432H (BCD cua thap
; phan 1098765432)
BCD_SUM DEFS 5 ; Ket qua la 2333333322H
end program
36
28-Jan-13
19
TD 11 : Tìm chiều dài của 1 chuỗi ký tự (1/3)
Chuỗi ký tự bắt đầu từ ô nhớ 0201H và đánh dấu hết chuỗi bằng
ký tự “carriage return) (CR) có giá trị là 0DH. Đặt chiều dài chuỗi
(không kể CR) vào ô nhớ 0200H.
TD: Từ ô nhớ 0201H có các byte: 52H, 41H, 54H, 48H, 45H, 52H, 0DH
Nghĩa là chuỗi ‘RATHER’,0D : ‘R’ , ‘A’ , ‘T’ , ‘H’ , ‘E’ , ‘R’, CR
Sau khi thực thi đoạn chương trình này tại ô nhớ 0200H có trị 06H.
37
TD 11 : Tìm chiều dài của 1 chuỗi ký tự (2/3)
Cách 1:
LD HL, 0201H ; Contrỏ HL chỉ đến đầu chuỗi
LD B,0 ; Chiều dài chuỗi = B = 0
LD A, 0DH : So sánh CR với ký tự trong chuỗi
CHKCR: CP (HL) ; Ký tự đang xét là CR?
JR Z,DONE ; Đúng. Kết thúc.
INC B ; Cộng 1 vào chiều dài chuỗi
INC HL
JR CHKCR ; Kiểm tra ký tự kế
DONE: LD A,B ; Cất chiều dài chuỗi
LD (0200H),A
HALT
38
28-Jan-13
20
TD 11 : Tìm chiều dài của 1 chuỗi ký tự (3/3)
Cách 2: Dùng CPIR
LD HL, 0201H ; Contrỏ HL chỉ đến đầu chuỗi
LD BC,0 ; Bộ đếm số byte BC = 0 dùng cho CPIR
LD A, 0DH : Lặp lại so sánh CR với ký tự trong chuỗi
CPIR ; BC giảm 1, HL tăng 1, nếu BC=0 hoặc (HL)=A dừng
LD A,0FFH ; Vì BC chứa số lần đếm âm nên lấy bù 2
SUB C
LD (0200H),A
HALT
39
40
28-Jan-13
21
Z80 5-second Timer for 10MHz
... ...
MAIN: CALL TIMER5S
... ...
TIMER5S: LD E,35H ;7T
LOOP3: LD B,0FFH ;7T
LOOP2: LD D,0FFH ;7T
LOOP1: DEC D ;4T
JP NZ,LOOP1 ;10T
DEC B ;4T
JP NZ,LOOP2 ;10T
DEC E ;4T
JP NZ,LOOP3 ;10T
RET ;10T
41
Z80 multivibrator
Point: Use Loop Output 00H and FFH at 1 second interval.
ORG 0000H
LD SP,0FFFFH
PPI1 EQU 37H
PORTB1 EQU 35H
LD A,90H
OUT (PPI1),A
LOOP: LD A,0
OUT (PORTB1),A
CALL TIMER1
LD A,0FFH
OUT (PORTB1),A
CALL TIMER1 JP LOOP
TIMER1: LD E,0AH
J50: LD B,0FFH
J51: LD D,0FFH
J52: DEC D
JP NZ,J52
DEC B
JP NZ,J51
DEC E
JP NZ,J50
RET
END
42

More Related Content

Similar to Z80 examples

CHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdf
CHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdfCHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdf
CHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdf
TriuPhm15
 
Cau truc phan cung pic16 f8xx
Cau truc phan cung pic16 f8xxCau truc phan cung pic16 f8xx
Cau truc phan cung pic16 f8xx
Bùi Ngọc Bảo
 
Đồ Án Đo Điện Áp Hiển Thị Trên LCD
Đồ Án Đo Điện Áp Hiển Thị Trên LCDĐồ Án Đo Điện Áp Hiển Thị Trên LCD
Đồ Án Đo Điện Áp Hiển Thị Trên LCD
Mr Giap
 
Giáo trình thí nghiệm vi điều khiển ứng dụng
Giáo trình thí nghiệm vi điều khiển ứng dụngGiáo trình thí nghiệm vi điều khiển ứng dụng
Giáo trình thí nghiệm vi điều khiển ứng dụng
Man_Ebook
 
chuong-3-tap-lenh-avr-atmega-324p-p1.pdf
chuong-3-tap-lenh-avr-atmega-324p-p1.pdfchuong-3-tap-lenh-avr-atmega-324p-p1.pdf
chuong-3-tap-lenh-avr-atmega-324p-p1.pdf
quocdo23evnhcmc
 
12 LCD ADC - Cảm biến
12 LCD ADC - Cảm biến12 LCD ADC - Cảm biến
12 LCD ADC - Cảm biến
Mr Giap
 
Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien
Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien
Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien tiểu minh
 
Thiết kế biển quảng cáo, biển vẫy
Thiết kế biển quảng cáo, biển vẫyThiết kế biển quảng cáo, biển vẫy
Thiết kế biển quảng cáo, biển vẫytrungnb22
 
Nhóm-HM.docx
Nhóm-HM.docxNhóm-HM.docx
Nhóm-HM.docx
tranxuanmninh
 
Chuong2 cấu trúc phần cứng 8051
Chuong2 cấu trúc phần cứng 8051Chuong2 cấu trúc phần cứng 8051
Chuong2 cấu trúc phần cứng 8051
Đinh Công Thiện Taydo University
 
Đồ án asembly thiết kế bộ đếm sản phẩm 6 kênh dùng on chip 89c51.doc
Đồ án asembly thiết kế bộ đếm sản phẩm 6 kênh dùng on chip 89c51.docĐồ án asembly thiết kế bộ đếm sản phẩm 6 kênh dùng on chip 89c51.doc
Đồ án asembly thiết kế bộ đếm sản phẩm 6 kênh dùng on chip 89c51.doc
Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Tailieu.vncty.com do-an-vi-dieu-khien
Tailieu.vncty.com   do-an-vi-dieu-khienTailieu.vncty.com   do-an-vi-dieu-khien
Tailieu.vncty.com do-an-vi-dieu-khien
Trần Đức Anh
 
Chuong10
Chuong10Chuong10
Chuong10na
 
Lập trình pic hainguyen
Lập trình pic hainguyenLập trình pic hainguyen
Lập trình pic hainguyen
Hải Nguyễn
 
Chuong 5
Chuong 5Chuong 5
Lập trình C cho 8051
Lập trình C cho 8051Lập trình C cho 8051
Lập trình C cho 8051
chilacaiten
 
Vdk 8051
Vdk 8051 Vdk 8051
Vdk 8051
Hero Dark
 
slide 8051
slide 8051 slide 8051
slide 8051
Anh Lê Tuấn
 
Lap trinh-c-cho-vdk
Lap trinh-c-cho-vdkLap trinh-c-cho-vdk
Lap trinh-c-cho-vdk
Hiepsvd Bk
 

Similar to Z80 examples (20)

CHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdf
CHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdfCHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdf
CHUONG-3-LẬP-TRÌNH-CHO-HỌ-VI-ĐIỀU-KHIỂN-8051.pdf
 
Cau truc phan cung pic16 f8xx
Cau truc phan cung pic16 f8xxCau truc phan cung pic16 f8xx
Cau truc phan cung pic16 f8xx
 
Đồ Án Đo Điện Áp Hiển Thị Trên LCD
Đồ Án Đo Điện Áp Hiển Thị Trên LCDĐồ Án Đo Điện Áp Hiển Thị Trên LCD
Đồ Án Đo Điện Áp Hiển Thị Trên LCD
 
Giáo trình thí nghiệm vi điều khiển ứng dụng
Giáo trình thí nghiệm vi điều khiển ứng dụngGiáo trình thí nghiệm vi điều khiển ứng dụng
Giáo trình thí nghiệm vi điều khiển ứng dụng
 
Phần cứng
Phần cứngPhần cứng
Phần cứng
 
chuong-3-tap-lenh-avr-atmega-324p-p1.pdf
chuong-3-tap-lenh-avr-atmega-324p-p1.pdfchuong-3-tap-lenh-avr-atmega-324p-p1.pdf
chuong-3-tap-lenh-avr-atmega-324p-p1.pdf
 
12 LCD ADC - Cảm biến
12 LCD ADC - Cảm biến12 LCD ADC - Cảm biến
12 LCD ADC - Cảm biến
 
Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien
Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien
Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien
 
Thiết kế biển quảng cáo, biển vẫy
Thiết kế biển quảng cáo, biển vẫyThiết kế biển quảng cáo, biển vẫy
Thiết kế biển quảng cáo, biển vẫy
 
Nhóm-HM.docx
Nhóm-HM.docxNhóm-HM.docx
Nhóm-HM.docx
 
Chuong2 cấu trúc phần cứng 8051
Chuong2 cấu trúc phần cứng 8051Chuong2 cấu trúc phần cứng 8051
Chuong2 cấu trúc phần cứng 8051
 
Đồ án asembly thiết kế bộ đếm sản phẩm 6 kênh dùng on chip 89c51.doc
Đồ án asembly thiết kế bộ đếm sản phẩm 6 kênh dùng on chip 89c51.docĐồ án asembly thiết kế bộ đếm sản phẩm 6 kênh dùng on chip 89c51.doc
Đồ án asembly thiết kế bộ đếm sản phẩm 6 kênh dùng on chip 89c51.doc
 
Tailieu.vncty.com do-an-vi-dieu-khien
Tailieu.vncty.com   do-an-vi-dieu-khienTailieu.vncty.com   do-an-vi-dieu-khien
Tailieu.vncty.com do-an-vi-dieu-khien
 
Chuong10
Chuong10Chuong10
Chuong10
 
Lập trình pic hainguyen
Lập trình pic hainguyenLập trình pic hainguyen
Lập trình pic hainguyen
 
Chuong 5
Chuong 5Chuong 5
Chuong 5
 
Lập trình C cho 8051
Lập trình C cho 8051Lập trình C cho 8051
Lập trình C cho 8051
 
Vdk 8051
Vdk 8051 Vdk 8051
Vdk 8051
 
slide 8051
slide 8051 slide 8051
slide 8051
 
Lap trinh-c-cho-vdk
Lap trinh-c-cho-vdkLap trinh-c-cho-vdk
Lap trinh-c-cho-vdk
 

Recently uploaded

THONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdfTHONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
QucHHunhnh
 
Smartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024juneSmartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024june
SmartBiz
 
YHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủ
YHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủYHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủ
YHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủ
duyanh05052004
 
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang ThiềuBiểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
lamluanvan.net Viết thuê luận văn
 
bài dự thi chính luận 2024 đảng chọn lọc.docx
bài dự thi chính luận 2024 đảng chọn lọc.docxbài dự thi chính luận 2024 đảng chọn lọc.docx
bài dự thi chính luận 2024 đảng chọn lọc.docx
HiYnThTh
 
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdfTừ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Man_Ebook
 
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
khanhthy3000
 
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
Nguyen Thanh Tu Collection
 
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thươngPLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
hieutrinhvan27052005
 
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
Nguyen Thanh Tu Collection
 
trắc nhiệm ký sinh.docxddddddddddddddddd
trắc nhiệm ký sinh.docxdddddddddddddddddtrắc nhiệm ký sinh.docxddddddddddddddddd
trắc nhiệm ký sinh.docxddddddddddddddddd
my21xn0084
 
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdfDANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
thanhluan21
 
Từ vay mượn trong tiếng Anh trên các phương tiện tin đại chúng
Từ vay mượn trong tiếng Anh trên các phương tiện tin đại chúngTừ vay mượn trong tiếng Anh trên các phương tiện tin đại chúng
Từ vay mượn trong tiếng Anh trên các phương tiện tin đại chúng
MinhSangPhmHunh
 
Halloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary schoolHalloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary school
AnhPhm265031
 
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
Nguyen Thanh Tu Collection
 
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docxBÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
HngL891608
 
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Bồi Dưỡng HSG Toán Lớp 3
 
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
NamNguynHi23
 
tiếng việt dành cho sinh viên ngoại ngữ h
tiếng việt dành cho sinh viên ngoại ngữ htiếng việt dành cho sinh viên ngoại ngữ h
tiếng việt dành cho sinh viên ngoại ngữ h
huynhanhthu082007
 

Recently uploaded (19)

THONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdfTHONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
 
Smartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024juneSmartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024june
 
YHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủ
YHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủYHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủ
YHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủ
 
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang ThiềuBiểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
 
bài dự thi chính luận 2024 đảng chọn lọc.docx
bài dự thi chính luận 2024 đảng chọn lọc.docxbài dự thi chính luận 2024 đảng chọn lọc.docx
bài dự thi chính luận 2024 đảng chọn lọc.docx
 
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdfTừ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
 
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
 
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
 
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thươngPLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
 
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
 
trắc nhiệm ký sinh.docxddddddddddddddddd
trắc nhiệm ký sinh.docxdddddddddddddddddtrắc nhiệm ký sinh.docxddddddddddddddddd
trắc nhiệm ký sinh.docxddddddddddddddddd
 
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdfDANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
 
Từ vay mượn trong tiếng Anh trên các phương tiện tin đại chúng
Từ vay mượn trong tiếng Anh trên các phương tiện tin đại chúngTừ vay mượn trong tiếng Anh trên các phương tiện tin đại chúng
Từ vay mượn trong tiếng Anh trên các phương tiện tin đại chúng
 
Halloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary schoolHalloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary school
 
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
 
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docxBÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
 
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
 
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
 
tiếng việt dành cho sinh viên ngoại ngữ h
tiếng việt dành cho sinh viên ngoại ngữ htiếng việt dành cho sinh viên ngoại ngữ h
tiếng việt dành cho sinh viên ngoại ngữ h
 

Z80 examples

  • 1. 28-Jan-13 1 Z80 Examples Các TD cho Z80 Chú ý: Các TD sau được chạy thử trên mô phỏng Z80 (Z80 IDE V1.0 của Peter J.Fondse). Trong mô phỏng này, tác giả đã định nghĩa sẵn các ngoại vi như sau (ta có thể chỉnh lại ở cửa sổ Z80 Visual Simulator  Peripherals  Configure Peripherals) STT Ngoại vi Loại Cổng Địa chỉ Chú thích 1 Các công tắc (Switches) Nhập 02H 2 8 đèn LED (LED’s) Xuất 03H 0=LED tắt; 1=LED sáng 3 Thanh trượt (Slider) Nhập 04H 4 Hiển thị vạch (Bar display) Xuất 05H 5 Hiển thị 7 đoạn (7 segment display) Xuất 0AH 4 digit với dấu chấm thâ ̣p phân 2
  • 2. 28-Jan-13 2 Chương trình Z80 IDE V1.0 3 TD 1: Các thí dụ cộng/trừ số nhị phân và cộng BCD (1/6) ; TD: binary numbers ex1 ; Minh hoa cac phep toan nhi phan NUM1 EQU 25 NUM2 EQU -17 BIN16_1 EQU 2578 ; = 0A12H BIN16_2 EQU 1289 ; = 0509H TEST EQU 1289-2578 ; = FAF7H org 100h program IN A,(02H) ;doc tu switches OUT (03H),A ;xuat ra LED CPL ;lay bu 1 cua A OUT (03H),A ;xuat ra LED bu 1 cua A CPL ;2 lan bu 1 ve tri cu OUT (03H),A ; xuat ra LED XOR 0FFH ; 1 cach lay bu 1 khac OUT (03H),A ; xuat ra LED bu 1 cua A XOR 0FFH ; 2 lan bu 1 ve tri cu NEG ; bu 2 cua A OUT (03H),A ; xuat ra LED bu 2 cua A NEG ; 2 lan bu 2 ve tri cu ; Thu lenh ADD voi toan hang 8 bit LD A,NUM1 LD B,NUM2 ADD A,B ; A <- A + B = 25 + (-17) = 8 OUT (03H),A ; xuat ra LED ; Thu lenh SUB voi toan hang 8 bit LD A,NUM1 LD B,NUM2 SUB B ; A <- A - B = 25 - (-17) = 42 OUT (03H),A ; xuat ra LED 4
  • 3. 28-Jan-13 3 TD 1: Các thí dụ cộng/trừ số nhị phân và cộng BCD (2/6) ; Thu lenh ADD voi toan hang 16 bit dung cap thanh ghi HL, DE LD DE,BIN16_1 LD HL,BIN16_2 ADD HL,DE ; HL <- HL + DE = 1289 + 2578 = 3867 = 0F1BH ; Thu lenh SBC voi toan hang 16 bit dung cap thanh ghi HL, DE SCF CCF ; Xoa co Carry (CF=0) hoặc có thể dùng 1 lệnh AND A LD DE,BIN16_1 LD HL,BIN16_2 SBC HL,DE ; HL <- HL - DE = 1289 - 2578 = -1289 = FAF7H 5 TD 1: Các thí dụ cộng/trừ số nhị phân và cộng BCD (3/6) ; Thu lenh ADD voi toan hang 16 bit dung thanh ghi 8 bit LD IX,BIN16_3 ; Lay byte thap truoc LD A,(IX) LD IY,BIN16_4 LD B,(IY) ADD A,B LD DE,RESULT_1 LD (DE),A INC IX ; Pointer chi den byte cao INC IY INC DE LD A,(IX) LD B,(IY) ADC A,B LD (DE),A 6
  • 4. 28-Jan-13 4 TD 1: Các thí dụ cộng/trừ số nhị phân và cộng BCD (4/6) ; Lenh SBC cung lam tuong tu LD IX,BIN16_3 ; Lay byte thap truoc LD A,(IX) LD IY,BIN16_4 LD B,(IY) SUB B LD DE,RESULT_2 LD (DE),A INC IX ; Pointer chi den byte cao INC IY INC DE LD A,(IX) LD B,(IY) SBC A,B LD (DE),A 7 TD 1: Các thí dụ cộng/trừ số nhị phân và cộng BCD (5/6) ; Cong 2 so BCD 4 digits LD IX,BIN16_5;Lay byte thap truoc LD A,(IX) LD IY,BIN16_6 LD B,(IY) ADD A,B DAA LD DE,RESULT_3 LD (DE),A INC IX ; Pointer chi den byte cao INC IY INC DE LD A,(IX) LD B,(IY) ADC A,B DAA LD (DE),A HALT 8
  • 5. 28-Jan-13 5 TD 1: Các thí dụ cộng/trừ số nhị phân và cộng BCD (6/6) BIN16_3 DEFW 1289 BIN16_4 DEFW 2578 BIN16_5 DEFW 1289H; Bieu dien BCD cua 1289 BIN16_6 DEFW 2578H; Bieu dien BCD cua 2578 RESULT_1 DEFS 2 RESULT_2 DEFS 2 RESULT_3 DEFS 2 end program 9 TD 2: Tính tổng của 1 mảng dữ liệu trong bộ nhớ (1/2) org 100H ; Chuong trinh tinh tong 1 array voi so bytes (trong B) va voi dia ; chi bat dau trong HL. Ket qua duoc cat trong DE program LD A,(N) LD B,A ; Lay so bytes dat vao B LD HL, DATA LD A, 0 LD DE,0 ; Sum <- 0 LOOP: ADD A,(HL) LD E,A ; Cap nhat byte thap cua Sum JR NC, NEXT INC D ; Cap nhat byte cao cua Sum NEXT: INC HL DJNZ LOOP 10
  • 6. 28-Jan-13 6 TD 2: Tính tổng của 1 mảng dữ liệu trong bộ nhớ (2/2) HALT DATA: DEFB 10 defb 20 defb 30 defb 40 defb 50 defb 60 defb 70 defb 80 N: defb $-DATA ; $ la dia chi hien tai ; do $ - DATA = 8 end program 11 TD 3: Thử lệnh IN/OUT ; TD: LED ex1 ; cac LED o cong xuat (03H) se tat/sang theo trang thai cua khoa o ; cong nhap (02H) org 100h program loop: in A,(02H) out (03H),A jr loop end program 12
  • 7. 28-Jan-13 7 TD 4: LED sáng lần lượt từ phải sang trái và lặp lại ; TD: LED ex2 - LED sang chay xoay ; sang trai PATTERN EQU 01H org 100h program LD C,PATTERN loop: LD A,C OUT (03H),A RLC C; Dung RRC C se chay sang phai! CALL DELAY JR loop ; Chuong trinh con DELAY lam tre DELAY: LD B,0 ; lap 256 lan L1: LD D,0 ; lap 256 lan L2: DEC D JR NZ,L2 DJNZ L1 RET end program 13 TD 5: Điều khiển LED sáng chạy sang trái/phải theo trị số 0/1 ở công tắc 0 (1/2) ; TD: LED ex3 - LED sang chay xoay sang trai/phai theo cong tac 0 la 0/1 PATTERN EQU 01H org 100h program LD C,PATTERN LOOP: IN A,(02H) BIT 0,A JR NZ,RIGHT RLC C ; Dung RRC C se chay sang phai! JR NEXT RIGHT: RRC C NEXT: CALL DELAY LD A,C OUT (03H),A JR LOOP 14
  • 8. 28-Jan-13 8 TD 5: Điều khiển LED sáng chạy sang trái/phải theo trị số 0/1 ở công tắc 0 (2/2) ; Chuong trinh con DELAY lam tre DELAY: LD B,0 ; vong lap voi B la 256 lan! L1: LD D,0 ; vong lap voi D la 256 lan! L2: DEC D JR NZ,L2 DJNZ L1 RET end program 15 TD 6: Hiển thị các số từ 0 đến 9 và lặp lại (1/4) Các LED 7 đoạn trong hiển thị 4 ký số lần lượt có các địa chỉ là 0AH, 0BH, 0CH, và 0DH cho các ký số tương ứng từ vị trí cao xuống thấp. Trong TD này ta xuất LED 7 đoạn ở vị trí tận cùng bên phải, nên dùng địa chỉ 0DH. ; TD: LED ex4 - Hien thi cac so tu 0 den 9 va lap lai org 100h program LD L,0 LOOP: LD A,L CALL DEC2LED OUT (0DH),A ; Xuat ra LED 7 doan tai digit don vi! CALL DELAY INC L LD A,9 CP L 16
  • 9. 28-Jan-13 9 TD 6: Hiển thị các số từ 0 đến 9 và lặp lại (2/4) JR NC,LOOP LD L,0 JR LOOP ; Chuong trinh con DELAY lam tre DELAY: LD B,0 ; vong lap voi B la 256 lan L1: LD C,100; vong lap voi C la 100 lan L2: DEC C JR NZ,L2 DJNZ L1 RET 17 TD 6: Hiển thị các số từ 0 đến 9 và lặp lại (3/4) ; Chuong trinh doi so nhi phan 4 bit sang ma 7 doan DEC2LED:PUSH DE PUSH IX AND 0FH LD E,A LD D,0 LD IX,XLAT_TAB ADD IX,DE LD A,(IX+0) POP IX POP DE RET 18
  • 10. 28-Jan-13 10 TD 6: Hiển thị các số từ 0 đến 9 và lặp lại (4/4) XLAT_TAB: ; LED 7 doan trong mo phong nay co thu tu cac doan nhu sau ; hgfedcba - 0=LED tat, 1=LED sang DEFB 00111111B; 0 DEFB 00000110B; 1 DEFB 01011011B; 2 DEFB 01001111B; 3 DEFB 01100110B; 4 DEFB 01101101B; 5 DEFB 01111101B; 6 DEFB 00000111B; 7 DEFB 01111111B; 8 DEFB 01101111B; 9 end program 19 TD 6: Hiển thị các số từ 0 đến 9 và lặp lại (4/4) XLAT_TAB: ; LED 7 doan trong mo phong nay co thu tu cac doan nhu sau ; hgfedcba - 0=LED tat, 1=LED sang DEFB 00111111B; 0 DEFB 00000110B; 1 DEFB 01011011B; 2 DEFB 01001111B; 3 DEFB 01100110B; 4 DEFB 01101101B; 5 DEFB 01111101B; 6 DEFB 00000111B; 7 DEFB 01111111B; 8 DEFB 01101111B; 9 end program 20
  • 11. 28-Jan-13 11 TD 7: Tìm bit kiểm tra chẵn lẽ cho 1 số 8 bit trong thanh ghi A (1/4) Trong Z80 có hỗ trợ việc cập kiểm tra chẵn lẻ với cờ P/V ở bit thứ 2 trong thanh ghi F sau các lệnh logic như AND, OR,…. Tuy nhiên trong phần mềm mô phỏng của tác giả Peter J.Fondse không có thực hiện chức năng này, do đó ta sẽ tự viết chương trình cập nhật P/V theo nội dung của thanh ghi A: nếu số bit 1 ở A là số chẵn thì P/V=1 (điều kiện PE đúng), ngược lại thì P/V=0 (điều kiện PO đúng). org 100H program ; Hieu ung cap nhat co Parity sau lenh LOGIC LD A,1 AND 0FFH ;P/V=0=Odd Parity(do so bit 1 cua ket qua AND la le) LD A,3 AND 0FFH ;P/V=1=Even Parity(do so bit 1 cua ket qua AND la chan) 21 TD 7: Tìm bit kiểm tra chẵn lẽ cho 1 số 8 bit trong thanh ghi A (2/4) ; Tuy nhien co P/V khong cap nhat vi Simulator nay bi loi trong ; phan cap nhat Parity. Neu dung phan mo phong Z80 Simulator ; IDE cua Oshon thi khong can. ; Do do ta se 1 chuong trinh con se cap nhat Parity theo so bit 1 ; trong A LD A,1 CALL PARITY_E ; P/V=0 LD A,3 CALL PARITY_E ; P/V=1 HALT 22
  • 12. 28-Jan-13 12 TD 7: Tìm bit kiểm tra chẵn lẽ cho 1 số 8 bit trong thanh ghi A (3/4) PARITY_E: PUSH BC PUSH DE PUSH AF POP BC ; B = A , C= F LD B,8 LD D,A LD E,0 RES 2,C ; P/V = 0 (co P/V o vi tri bit 2 trong thanh ghi F) LOOP: SRL D JR NC,SKIP INC E SKIP:DJNZ LOOP ; Vong lap tren dem so bit 1 trong A va cat vao E 23 TD 7: Tìm bit kiểm tra chẵn lẽ cho 1 số 8 bit trong thanh ghi A (4/4) BIT 0,E JR NZ,ODD SET 2,C ; P/V = 1 ODD: LD B,A PUSH BC POP AF ; A = khong doi, F duoc cap nhat theo so bit 1 cua A POP DE POP BC RET end program 24
  • 13. 28-Jan-13 13 TD 8: Áp dụng lệnh dịch bit (1/3) Thực hiện phép nhân không dấu X cho với 1 số có dạng 2n + 1 (như 3, 5, 9, 17…): X * (2n + 1) = X*2n + X = dịch X sang trái n bit + X. Giả sử kết quả của phép nhân sẽ đặt trong 1 số 16 bit. ; Chương trình con MUL_2NA1 nhân 1 số ở thanh ghi A với 1 số có ; dạng 2n + 1 ở C và kết quả 16 bit được để trong cặp thanh ghi DE org 100H program LD A,27 LD C,17 CALL MUL_2NA1 HALT 25 TD 8: Áp dụng lệnh dịch bit (2/3) MUL_2NA1: PUSH AF PUSH BC LD D,0 LD E,A DEC C RET Z CALL SHIFT_N ADD A,E LD E,A LD A,0 ADC A,D POP BC POP AF RET 26
  • 14. 28-Jan-13 14 TD 8: Áp dụng lệnh dịch bit (3/3) ; Tinh DE = A x 2^n bang cach dich DE sang trai n bit (dat trong C) SHIFT_N: SRL C RET C SLA E ; Dich cap thanh ghi DE sang trai 1 bit RL D JR SHIFT_N end program 27 Các lệnh xoay và dịch 28
  • 15. 28-Jan-13 15 TD 9: Tính bù 2 của 1 số 16 bit trong bộ nhớ (1/2) org 100H program ; Lay bu 2 cua 1 so 16 bit NUM1 trong bo nho o dia chi 200H ; va cat lai vao bien 16 bit NUM2 trong bo nho o dia chi 202H LD HL,(NUM1) ; Neu (NUM1) = 56D3H LD A,L CPL ; tinh bu 1 cua byte thap LD L,A LD A,H CPL ; tinh bu 1 cua byte cao LD H,A INC HL LD (NUM2),HL ; thi bu 2 cua no o (NUM2) = A92DH 29 TD 9: Tính bù 2 của 1 số 16 bit trong bộ nhớ (2/2) ; Cach 2 lay bu 2 bang lay 0 - NUM1 LD HL,(NUM1) EX DE,HL LD HL,0 AND A ; CF =0 SBC HL,DE LD (NUM3),HL HALT org 200H NUM1 defw 56D3H NUM2 defs 2 ; bù 2 của 56D3H là A92DH NUM3 defs 2 end program 30
  • 16. 28-Jan-13 16 TD 10 : Mã ASCII và Số BCD (1/6) Cho 2 số NUM1 và NUM2 ở dạng ASCII gồm 10 ký số. Hãy thực hiện: - Đổi ASCII thành BCD cất tại NUM1_BCD và NUM2_BCD - Tìm tổng của NUM1_BCD và NUM2_BCD và cất vào BCD_SUM - Đổi số BCD tại BCD_SUM thành ASCII và cất vào ASCII_SUM org 100H BCD_LEN EQU 5 program ; Đổi ASCII thành BCD cất tại NUM1_BCD và NUM2_BCD LD HL,NUM1 LD IX,NUM1_BCD CALL ASCII_HEX LD HL,NUM2 LD IX,NUM2_BCD CALL ASCII_HEX 31 TD 10 : Mã ASCII và Số BCD (2/6) Cho 2 số NUM1 và NUM2 ở dạng ASCII gồm 10 ký số. Hãy thực hiện: - Đổi thành BCD cất tại NUM1_BCD và NUM2_BCD - Tìm tổng của NUM1_BCD và NUM2_BCD và cất vào BCD_SUM - Đổi số BCD tại BCD_SUM thành ASCII và cất vào ASCII_SUM ; Tìm tổng của NUM1_BCD và NUM2_BCD và cất vào BCD_SUM LD HL,NUM1_BCD+BCD_LEN - 1 ;chi den ky so BCD tan cung phai LD IX,NUM2_BCD + BCD_LEN - 1 LD IY,BCD_SUM + BCD_LEN - 1 CALL SUM_BCD ; Đổi số BCD tại BCD_SUM thành ASCII và cất vào ASCII_SUM LD HL,BCD_SUM LD IX,ASCII_SUM CALL BCD_ASCII HALT 32
  • 17. 28-Jan-13 17 TD 10 : Mã ASCII và Số BCD (3/6) ASCII_HEX: LD B,BCD_LEN LOOP: LD A,(HL) AND 0FH RLA RLA RLA RLA LD C,A INC HL LD A,(HL) AND 0FH ADD A,C LD (IX+0),A INC HL INC IX DJNZ LOOP RET 33 TD 10 : Mã ASCII và Số BCD (4/6) SUM_BCD: LD B,BCD_LEN AND A ; CF=0 L1: LD A,(IX+0) ADC A,(HL) DAA LD (IY+0),A DEC IX DEC IY DEC HL DJNZ L1 RET 34
  • 18. 28-Jan-13 18 TD 10 : Mã ASCII và Số BCD (5/6) BCD_ASCII: LD B,BCD_LEN L2: LD A,(HL) LD C,A AND 0F0H RRA RRA RRA RRA ; lay nua byte cao OR 30H ; Doi sang ASCII tuong duong LD (IX+0),A INC IX LD A,C AND 0FH ; lay nua byte thap OR 30H ; Doi sang ASCII tuong duong LD (IX+0),A 35 INC IX INC HL DJNZ L2 RET TD 10 : Mã ASCII và Số BCD (6/6) org 200H NUM1 DEFM '1234567890' NUM2 DEFM '1098765432' ASCII_SUM DEFS 10 ; Ket qua la '2333333322' DEFB 0 NUM1_BCD DEFS 5 ; Ket qua la 1234567890H (BCD cua thap ; phan 1234567890) NUM2_BCD DEFS 5 ; Ket qua la 1098765432H (BCD cua thap ; phan 1098765432) BCD_SUM DEFS 5 ; Ket qua la 2333333322H end program 36
  • 19. 28-Jan-13 19 TD 11 : Tìm chiều dài của 1 chuỗi ký tự (1/3) Chuỗi ký tự bắt đầu từ ô nhớ 0201H và đánh dấu hết chuỗi bằng ký tự “carriage return) (CR) có giá trị là 0DH. Đặt chiều dài chuỗi (không kể CR) vào ô nhớ 0200H. TD: Từ ô nhớ 0201H có các byte: 52H, 41H, 54H, 48H, 45H, 52H, 0DH Nghĩa là chuỗi ‘RATHER’,0D : ‘R’ , ‘A’ , ‘T’ , ‘H’ , ‘E’ , ‘R’, CR Sau khi thực thi đoạn chương trình này tại ô nhớ 0200H có trị 06H. 37 TD 11 : Tìm chiều dài của 1 chuỗi ký tự (2/3) Cách 1: LD HL, 0201H ; Contrỏ HL chỉ đến đầu chuỗi LD B,0 ; Chiều dài chuỗi = B = 0 LD A, 0DH : So sánh CR với ký tự trong chuỗi CHKCR: CP (HL) ; Ký tự đang xét là CR? JR Z,DONE ; Đúng. Kết thúc. INC B ; Cộng 1 vào chiều dài chuỗi INC HL JR CHKCR ; Kiểm tra ký tự kế DONE: LD A,B ; Cất chiều dài chuỗi LD (0200H),A HALT 38
  • 20. 28-Jan-13 20 TD 11 : Tìm chiều dài của 1 chuỗi ký tự (3/3) Cách 2: Dùng CPIR LD HL, 0201H ; Contrỏ HL chỉ đến đầu chuỗi LD BC,0 ; Bộ đếm số byte BC = 0 dùng cho CPIR LD A, 0DH : Lặp lại so sánh CR với ký tự trong chuỗi CPIR ; BC giảm 1, HL tăng 1, nếu BC=0 hoặc (HL)=A dừng LD A,0FFH ; Vì BC chứa số lần đếm âm nên lấy bù 2 SUB C LD (0200H),A HALT 39 40
  • 21. 28-Jan-13 21 Z80 5-second Timer for 10MHz ... ... MAIN: CALL TIMER5S ... ... TIMER5S: LD E,35H ;7T LOOP3: LD B,0FFH ;7T LOOP2: LD D,0FFH ;7T LOOP1: DEC D ;4T JP NZ,LOOP1 ;10T DEC B ;4T JP NZ,LOOP2 ;10T DEC E ;4T JP NZ,LOOP3 ;10T RET ;10T 41 Z80 multivibrator Point: Use Loop Output 00H and FFH at 1 second interval. ORG 0000H LD SP,0FFFFH PPI1 EQU 37H PORTB1 EQU 35H LD A,90H OUT (PPI1),A LOOP: LD A,0 OUT (PORTB1),A CALL TIMER1 LD A,0FFH OUT (PORTB1),A CALL TIMER1 JP LOOP TIMER1: LD E,0AH J50: LD B,0FFH J51: LD D,0FFH J52: DEC D JP NZ,J52 DEC B JP NZ,J51 DEC E JP NZ,J50 RET END 42