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

VI XỬ LÝ Vxl ch02 z80 tap lenh new

36 1 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

Định dạng
Số trang 36
Dung lượng 0,91 MB

Nội dung

Microsoft PowerPoint VXL Ch02 Z80 Tap lenh NEW [Compatibility Mode] 23 Mar 11 1 Z80 Tập lệnh ĐHBK Tp HCM Khoa Đ ĐT BMĐT GVPT Hồ Trung Mỹ Môn học Vi Xử Lý 1 Hợp ngữ và Mã máy • Ngôn ngữ gợi nhớ (Mnemon[.]

23-Mar-11 ĐHBK Tp HCM-Khoa Đ-ĐT BMĐT GVPT: Hồ Trung Mỹ Môn học: Vi Xử Lý Z80 Tập lệnh Hợp ngữ Mã máy • Ngơn ngữ gợi nhớ (Mnemonic language) = hợp ngữ (assembly language) • Ngơn ngữ máy (Machine language) = mã máy (machine code) • TD: org 1000h LD A, 20 Mnemonic Machine Code LD A, 20 3EH , 14H Address 1000H 1001H Op_code (mã lệnh) Operand (toán hạng) 1002H Content Memory 3EH 14H Op_code Operand 1003H 23-Mar-11 Cấu trúc lệnh Mọi lệnh gồm có mã lệnh cần, phần địa (các) toán hạng OP-Code Address(es) Operand(s) OP-Code Z80 thường Byte (ngoại trừ tác vụ dùng ghi số mã lệnh chiếm byte) Số địa chỉ: R1 op R2 (A) op R (A1) op (A2) (A1) op (A2) → R3 → R → R → (A3) Chú ý: (A): nd A, op: tác vụ, →: chuyển, A: địa chỉ, R: ghi nh nh byte nh byte nh  Lệnh nh byte  Lệnh nh byte  Lệ  Lệ Op_code Op_code Operand1 Op_code Operand1 Op_code1 Op_code2 Op_code2 Operand2 Operand2 Operand1 Operand2 Operand2 Các ký hiệu dùng tập lệnh • • • • • d = độ dời (số có dấu bit = -128  +127) n = số bit nn = số 16 bit r,r’ = ghi bit dd, qq, ss, rr = ghi 16 bit 23-Mar-11 Các nhóm lệnh • Chuyển liệu (data transfer Group) • Số học Logic (Arithmetic and Logical Group) • Xoay dịch (Rotate and Shift Group) • Rẽ nhánh (Branch Group) • Điều khiển ngăn xếp, I/O máy (Stack, I/O, and Machine Contol Group) • Trao đổi, chuyển khối tìm kiếm (Exchange, Block Transfer, and Search Group) • Xử lý bit (Bit Manipulation Group) Chú ý: • Z80 có 158 lệnh 10 cách định địa Nhóm chuyển liệu • Dạng tổng quát: LD op1, op2 – Sao chép nội dung toán hạng (op2) vào toán hạng (op1) – toán hạng phải chiều dài (8 hay 16 bit) – Có nhiều cách định địa cho toán hạng – toán hạng op1 khơng thể số • Chỉ có toán hạng: với stack – PUSH rp -> cất nội dung ghi 16 bit vào stack qua trỏ SP – POP rp -> lấy nội dung phần tử đỉnh stack (qua trỏ SP) cất vào ghi 16 bit 23-Mar-11 Nhóm chuyển liệu – Nạp số cho ghi • Nạp số bit cho ghi bit: LD r, n • Nạp số 16 bit cho ghi 16 bit: LD rr, n LD r, n LD rr, n A BC B { } DE C LD D ,n E H L LD { } HL SP , nn IX IY TD: Nạp số bit cho ghi • TD: LD A,-24; decimal LD A,15; decimal binary LD A,0F7H; hex LD A, ‘B’; ASCII LD A, 11001010b; LD A, 123Q ; Octal • TD: Hãy viết mã máy cho lệnh LD A,-24 • ĐS: Tra tập lệnh ta thấy lệnh có byte opcode sau: ( r = A = 111, n = -24 = bù 24 = ECh) Như mã máy là: byte = 00111110 = 3Eh byte = ECh 23-Mar-11 TD: Nạp số 16 bit cho ghi 16 bit (cặp ghi bit) • TD: • LD HL,-24 LD B, ‘A’ LD DE, 11001010b LD C, ‘8’ ; BC = ‘A8’ LD SP,3FFFH LD IX, 1234h TD: Hãy viết mã máy cho lệnh LD HL,-24 -24 biểu diễn sang số 16 bit bù FF E8h Như mã máy là: byte = 0010 0001 = 21h byte = E8h byte = FFh Nhóm chuyển liệu – Sao chép ghi • Sao chép nội dung ghi bit (r  r’) : LD r, r’ • Sao chép nội dung ghi 16 bit (SP  rr): LD SP, rr LD r, r’ LD LD SP, rr A A B B { },{ } C C D D E E H H L L TD: LD A, A LD E, L { } HL LD SP, IX IY TD: LD SP, HL LD SP, IX 10 23-Mar-11 Nhóm chuyển liệu – Đọc/ghi nhớ liệu bit • • Đọc nhớ: liệu bit cất vào ghi bit với trỏ ghi 16 bit rp HL, IX,và IY: LD r, (HL) LD r, (IX+d) LD r, (IY+d) Riêng với r = A có thêm: LD A,(BC) LD A,(DE) LD A,(nn) Ghi vào nhớ: nội dung ghi bit (r) liệu bit (n) với trỏ ghi 16 bit rp HL, IX,và IY: LD (HL), r LD (HL), n LD (IX+d), r LD (IX+d), n LD (IY+d), r LD (IY+d), n Riêng với r = A có thêm: LD (BC),A LD (DE),A LD (nn), A • • Chú ý: • r ghi A, B, C, D, E, H L • (rp) : định địa gián tiếp qua ghi HL, BC, DE • (IX+d) hay (IY+d) : định địa chỉ số với d số có dấu bit  tra bảng • (nn) : định địa trực tiếp 11 TD: Đọc/ghi nhớ liệu bit • TD: LD A,(9000H); mã máy 3AH,00H,90H Memory A 33H 33H 8000H 3AH 8001H 00H 8002H 90H 8003H 9000H p Sao ché OP_code Operand Operand 33H • TD: LD A,(HL); mã máy 7Eh HL 90H 00H 90H 00H A 56H 56H Memory 8000H 7EH 8001H 9000H 56H OP_code 12 23-Mar-11 TD: Đọc/ghi nhớ liệu bit – Tra bảng • TD: LD A,(IX + 3) có mã máy DDH,7EH,03H Memory A ABH IX 90H 90H 00H IX + 9000H 9000H + d 03H 03H = 9003H 9003H 8000H DDH 8001H 7EH 8002H 03H 9000H 56HH 9001H 78H 9002H 9AH 9003H ABH OP_code OP_code Operand • Với sơ đồ trên, cho biết nội dung ghi A sau thực thi lệnh sau: LD IX,9003H LD A,(IX-2) 13 Nhóm chuyển liệu – Đọc/ghi nhớ liệu 16 bit • • Đọc nhớ: liệu 16 bit cất vào ghi 16 bit với địa 16 bit: LD rp, (nn) nghĩa rp_L  (nn) rp_H  (nn+1) Định địa hiểu ngầm qua SP: POP rp Nghĩa rp_L  (SP), SP  SP + rp_H  (SP), SP  SP + • • Ghi vào nhớ: liệu 16 bit (ở ghi 16 bit rp) với địa 16 bit: LD (nn),rp nghĩa (nn)  rp_L (nn+1)  rp_H Định địa hiểu ngầm qua SP: PUSH rp Nghĩa SP  SP – 1, (SP)  rp_H SP  SP – 1, (SP)  rp_L Chú ý: 15 87 • rp_L byte thấp rp rp_H byte cao rp rp • rp ghi 16 bit: BC, DE, HL, SP, IX, IY • (nn) : định địa [trực tiếp] mở rộng (vì liệu 16 bit) rp_H rp_L 14 23-Mar-11 TD: Đọc/ghi nhớ liệu 16 bit có mã máy EDH, 4BH, 00H, 90H • LD BC, (9000H) BC 34H 34H 56H 56H 9000H 9001H Memory 56H 34H có mã máy EDH, 43H, 00H, 90H • LD (9000H), BC BC 56H 78H 78H 9000H 9001H Memory 78H 56H • PUSH BC có mã máy C5H (giả sử trước thực thi: SP = FEFDH) Memory BC 56H 78H SP FEFBH FEFAH FEFBH 78H FEFCH 56H FEFDH 15 16 23-Mar-11 17 Nhóm số học logic Đa số lệnh thuộc nhóm ảnh hưởng đến cờ (mã điều kiện) ghi F (Flag) • S (Sign) : sau phép tốn S=MSB kết quả=1(âm)/0(dương) • Z (Zero) : kết Z=1, ngược lại Z=0 • H (Half carry) : số nhớ vị trí bit thứ phép tốn +/• P/V (Parity/Overflow) (kiểm tra chẵn lẻ/tràn trên) –P (với phép toán Logic): (nếu số bit A chẵn = Even parity), ngược lại P/V= 0(Odd) –V (với phép toán số học): = có tràn với phép tốn +/• N: 1(sub)/0(add) • C (Carry): số nhớ vị trí bit thứ phép tốn +/18 23-Mar-11 2.1 Nhóm số học bit Phép toán Dạng lệnh Ý nghĩa Cộng ADD A,source A  A + source Cộng có nhớ ADC A,source A  A + source + C Trừ SUB source A  A – source (A hiểu ngầm) Trừ có mượn SBC A,source A  A – source – C So sánh CP source Thực A – source để đặt cờ Tăng thêm INC source source  source + Giảm bớt DEC source source  source – Chú ý: • source số, ghi bit (A,B,C,D,E,H,L) , (HL), (IX+d), (IY+d) • Các lệnh INC DEC: source khơng số Cờ C không bị ảnh hưởng 19 • Cờ N = sau lệnh SUB, SBC, DEC TD: Cộng/trừ bit ; Định nghĩa số NUM1 EQU 25 ; NUM1 = 19H NUM2 EQU -17 ; NUM2 = EFH (bù 17) ; Thử lệnh ADD với toán hạng bit LD A,NUM1 LD B,NUM2 ADD A,B ; A  A + B = 25 + (-17) = ; Thử lệnh SUB với toán hạng bit LD A,NUM1 LD B,NUM2 SUB B ; A  A - B = 25 - (-17) = 42 20 10

Ngày đăng: 13/04/2023, 08:09

w