Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
286,5 KB
Nội dung
Trường Đại Học Công Nghệ Giao Thông Vận Tải Khoa Công Nghệ Thông Tin BÁO CÁO MÔN VI XỬ LÍ GVHD:Cô Trần Thị PhươngThanh NHÓM SV THỰC HIỆN: NHÓM LỚP:60CĐT2 VĨNH YÊN,NGÀY 20 THÁNG 10NĂM 2011 MỤC ĐÍCH CỦA BÁO CÁO • Nêu lên tập lệnh vi xử lí 8088 • Nêu rõ phương thức hoạt động nhóm lệnh • Nêu lên tiện ích nhóm lệnh • Cho ví dụ minh họa Giới Thiệu Chung Tập lệnh vi xử lí 8088 nói chung chia thành 12 nhóm,với nhóm thao tác liệu nhóm đặc biệt(gồm thị điều khiển) Tập lênh vi xử lí 8088 bao gồm nhóm lệnh chính: Nhóm lệnh tính toán số học, nhóm lệnh rẽ nhánh, nhóm lệnh Logic Nhóm lệnh xử lý số học Lệnh cộng không nhớ: Viết lệnh: ADD Đích, Nguồn Mô tả: Đích ← Đích + Nguồn VD: ADD CX,SI ; CX ← CX + SI ADD DH,BL ; DH ← DH + BL ADD [1000h],BX ; [1001h,1000h] ← [1001h,1000h] + BX ADD [2000h],CL ; [2000h] ← [2000h] + CL ADD AL,[0000h] ; AL ← AL + [0000h] ADD BYTE PTR [SI+8],5 ; [SI+8] ← [SI+8] + 05h Cộng có nhớ: Viết lệnh: ADC Đích, Nguồn Mô tả: Đích ← Đích + Nguồn + CF VD: ADC BX,AX ; BX ← BX + AX + CF ADC BYTE PTR [1000h],7Ah ; [1000h] ← [1000h]+7Ah+CF Nhóm lệnh xử lý số học Lệnh trừ không mượn: Viết lệnh: SUB Đích Mô tả: Nguồn Đích ← Đích - Nguồn VD: SUB DL,AL ; DL ← DL - AL SUB CX,[DI] ; CX ← CX - [DI+1,DI] SUB BP,4 ; BP ← BP - 4 Lệnh trừ có mượn: Viết lệnh: SBB Đích, Nguồn Mô tả: Đích ← Đích - Nguồn – CF VD: SBB SI,BX ; SI ← SI - BX -CF SBB BYTE PTR [BX],2 ; [BX+1,BX] ← [BX+1,BX] - - CF Nhóm lệnh xử lý số học Lệnh tăng: Viết lệnh: INC Đích Mô tả: Đích ← Đích + Nếu Đích = FFH ( FFFFH) Đích+1 = 00H ( 0000H) mà không ảnh hưởng đến cờ CF Ví dụ : INC CH INC WORD PTR [1000h] Lệnh giảm: Viết lệnh: DEC Đích Mô tả: Đích ← Đích - Nếu Đích = 00H ( 0000H) Đích-1 = FFH ( FFFFH) mà không ảnh hưởng đến cờ CF NEG Đích: Lấy bù hai toán hạng, đảo dấu toán hạng Mô tả: Đích ← – (Đích) Nhóm lệnh xử lý số học Lệnh nhân không dấu: Viết lệnh:MUL Nguồn Mô tả:Toán hạng nguồn bit : AX ← AL * thn8 Toán hạng nguồn 16 bit : DX AX ← AX * thn16 Ví dụ: Nếu AL=5, CH=4, sau thực lệnh MUL CH ta có AX = AL*CH = 0014h Nếu AX=500h, [1001h,1000h]=401h, sau thực lệnh MUL WORD PTR [1000h] ta có DXAX = AX * [1001h,1000h] = 500h * 401h = 00140500h Nghĩa DX=0014h AX=0500h 9.Lệnh nhân có dấu Đối với lệnh nhân có dấu(IMUL) phép toán thực tương tự khác kết xem có dấu Nhóm lệnh xử lý số học 10 Chia không dấu: Viết lệnh: DIV Nguồn Mô tả: Toán hạng nguồn bit:AL ← (AX/thn8);AH ← Số dư của(AX/thn8) Toán hạng nguồn 16 bit:AX← (DXAX/thn16);DX ← Số dư của(DXAX/thn8) VD: Nếu AX=0024h,[2000h]=05 sau thực lệnh DIV BYTE PTR[2000h] Ta có AL=07 AH=01 Nếu DX=0001h,AX=0024h, BX=0200h sau thực lệnh DIV BX Ta có: AX=0008 DX=0024 11.Chia có dấu: Đối với lệnh chia có dấu(IDIV) phép toán thực tương tự khác kết xem có dấu Nhóm lệnh logic Lệnh AND Viết lệnh: AND Đích, Nguồn Mô tả: Đích ← Đích ∧ Nguồn VD:AND AL,BL;AL ← AL ∧ BL theo bit Lệnh OR Viết lệnh: OR Đích, Nguồn Mô tả: Đích ← Đích ∨ Nguồn VD:OR AL,BL;AL ← AL∨ BL theo bit Nhóm lệnh logic Lệnh XOR Viết lệnh: XOR Đích, Nguồn Mô tả: Đích ← Đích ⊕ Nguồn VD:XOR AL,BL;AL ← AL⊕ BL theo bit Lệnh NOT Viết lệnh: NOT Đích Mô tả: Đích ← Đích VD:NOT AH; AH ← (AH) Nhóm lệnh logic Lệnh TEST Viết lệnh: TEST Đích,Nguồn Mô tả: Đích ∧ Nguồn VD: TEST AH,AL; AH ∧ AL để tạo cờ Nhóm lệnh rẽ nhánh • Lệnh nhảy không điều kiện: JMP Nhãn (uncondition Jump to Specifled Destination) Nhảy(vô điều kiện đến đích Nhãn Lệnh bắt đầu địa ứng với nhãn ’Nhãn’ Lệnh JMP nhảy lên(về phía địa thấp) nhảy xuống (về phía địa cao) xảy tối đa ½ đoạn (64kbyte) Lệnh không tác đọng đến cờ Nhóm lệnh rẽ nhánh • Lệnh nhảy có điều kiện - Dạng lệnh : Jcond shortlabel - Giải thích : Nếu thỏa điều kiện nhảy tương đối IP ← địa lệnh kế + độ dời (mở rộng dấu 16 bit) ngược lại không làm (qua lệnh kế) - Tác động cờ : - Lệnh nhảy có điều kiện dùng trạng thái cờ để làm điều kiện Nhóm lệnh rẽ nhánh - Sau bảng mã lệnh nhảy có điều kiện với điều kiện nhảy Mã lệnh Giải thích Điều kiện JE/JZ Nhảy bằng/không ZF = JL/JNGE Nhảy nhỏ hơn/không lớn (SF xor OF) = JLE/JNG Nhảy nhỏ /không lớn ((SF xor OF) or ZF) = JB/JNAE/JC Nhảy /không bằng/nhớ CF =1 JBE/JNA Nhảy /không (CF or ZF) =1 JP/JPE Nhảy kiểm tra / kiểm tra chẳn PF = JO Nhảy tràn OF = Nhóm lệnh rẽ nhánh JS Nhảy dấu SF = JNE/JNZ Nhảy không bằng/khác không ZF = JNL/JGE Nhảy không nhỏ hơn/lớn (SF xor OF) = JNLE/JG Nhảy không nhỏ /lớn ((SF xor OF) or ZF) = JNB/JAE/JNC Nhảy không /trên bằng/không nhớ CF = JNBE/JA Nhảy không /trên (CF or ZF) = JNP/JPO Nhảy không kiểm tra / kiểm tra lẻ PF = JNO Nhảy không tràn OF = JNS Nhảy không dấu SF = - Ví dụ : MOV CX,3 ; thực vòng lặp làm lần MOV AX,0 Nhan: ADD AX,12 DEC CX JNZ Nhan ; nhảy đến lệnh vị trí “Nhan” CX ≠ MOV [3000h],AX Nhóm lệnh dịch quay bit +SAL đích, CL: Dịch trái số học +SHL đích, CL: Dịch trái logic Toán hạnh đích tìm đuocj theo chế độ địa Hai lệnh có tác động dịch trái số học Mỗi lần dịch MSB đưa qua cờ CF giá trị đưa vào LSB, Thao tác gọi dcihj logic CL phải chứa sẵn số lần dịch mong muốn Trong trường hợp muốn dịch lần, ta viết lệnh trực tiếp: SAL đích, ứng dụng: Mỗi lần dịch tương đương việc nhân toán hạng với số không dấu Vậy muốn nhân số không dấu với 2i ta dịch trái số bị nhân i lần Cờ OF dịch lần mà MSb thay đổi Không xác định sau nhiều lần dịch CF MSB sau lần dịch , lệnh nhảy dung để tạo cờ CF từ giá trị MSB làm điều kiện cho lệnh nhảy có điều kiện Cập nhật: SF, PF, ZF không xác định AF Nhóm lệnh dịch quay bit + SAR đích, CL: Dịch phải số học Toán hạng đích tìm theo chế độ địa chỉ.Lệnh có tác dụng dịch phải số học toán hạnh Sau nỗi lần dịch MSB giữ lại, LSB đưa vào cờ CF Cl chứa sẵn số lần dịch Trong trường hợp muốn dịch lần, ta viết trực tiếp: SAR đích, ứng dụng sau lần dịch, tương đương việc chia toán hạng với số có dấu.Vậy muốn chia số có dấu với 2i ta phải dịch chuyển số bị chia I lần Cờ OF dịch lần mà LSB thay đổi Không xác định sau nhiều lần dịch CF LSB sau lần dịch Vì lệnh dung để tạo cờ CF từ giá trị LSB làm điều kiện lệnh nhảy có điều kiện Cập nhật: SF, PF, ZF không xác định AF Nhóm lệnh dịch quay bit +SHR đích, CL: Dịch phải logic Toán hạng đích tìm theo chế độ địa Lệnh có tác đọng giống lệnh SAL, SHL theo chiều ngược lại + ROL đích, CL: Quay vòng sang trái Toán hạng đích tìm theo chế độ địa Lệnh có tác dụng quay vòng toán hạng sang trái MSB đưa qua cờ CFZ LSB ZCl chứa sẵn số lần quay Trong trường hợp muốn quay lần ta viết lệnh: ROL đích, Ta thấy, Nếu Cl = toán hạng đích bít kết không bị thay đổi toán hạng quay tròn vòng, CL = nibble toán hạng bị đổi chỗ cho Cờ OF quay lần mà MSB thay đổi.Không xác đínhau nhiều lần quay CF MSB sau lần quay, lệnh nheyr dung để tạo cờ CF từ giá trị MSB làm điều kiện cho lệnh nhảy có điều kiện Cập nhật: CF, OFkhông xác định AF Nhóm lệnh dịch quay bit + ROR đích, CL: Quay vòng sang phải Toán hạng đích tìm theo chế đọ địa Lệnh có tác dụng quay vòng toán hạng sang phải LSB quay qua cờ CF MSB CL phải chứa sẵn số lần quay + RCL đích, CL: Quay trái qua cờ CF Lệnh quay toán hạng sang trái thong qua cờ CF, CL phải chứa sẵn số lần quay Trong trường hợp muốn quay lần, ta viết lệnh trực tiếp: RCL đích, Ta thấy CL = toán hạng đích bit kết không bị thay đổi CF với toán hạng ghi(8 bit) quay vòng Cờ CF 1 neeus quay lần mà LSB thay đổi Không xác định sau nhiều lần quay CF MSb sau lần quay Cập nhật: CF, OF ( Chỉ có hai cờ ảnh hưởng) Nhóm lệnh dịch quay bit + RCR đích, CL: Quay phải cờ CF Lệnh quay toán hạng sang phải thong qua cờ CF, CL phải chứa sẵn số lần quay Trong trường hợp muốn quay lần ta viết trực tiếp lệnh: RCR đích, Ta thấy, CL =9 toán hạng đích bbit kết không bị thay đổi CF với toán hạng ghi (8 bit) quay vòng CF LSB sau lần quay Cập nhật: CF, OF (Chỉ hai cờ bị ảnh hưởng) LỜI CẢM ƠN Mặc dù cố gắng để hoàn thiện báo cáo, xongong thời gian có hạn kinh nghiệm, kiến thức hạn chế nên báo cáo nhiều thiếu sót Chúng em mong nhận ý kiến đóng góp thầy cô bè bạn để chương trình ngày hoàn thiện Chúng em xin chân thành cảm ơn!!! [...]... Trong trường hợp muốn quay 1 lần ta vi t trực tiếp lệnh: RCR đích, 1 Ta thấy, nếu CL =9 và toán hạng đích là 8 bbit thì kết quả không bị thay đổi vì CF cùng với toán hạng thanh ghi (8 bit) quay đúng một vòng CF LSB sau mỗi lần quay Cập nhật: CF, OF (Chỉ hai cờ này bị ảnh hưởng) LỜI CẢM ƠN Mặc dù rất cố gắng để hoàn thiện báo cáo, xongong vì thời gian có hạn và kinh nghiệm, kiến thức còn hạn chế nên báo. .. các chế độ địa chỉ.Lệnh có tác dụng dịch phải số học toán hạnh Sau nỗi lần dịch MSB được giữ lại, LSB được đưa vào cờ CF Cl chứa sẵn số lần dịch Trong trường hợp muốn dịch một lần, ta vi t trực tiếp: SAR đích, 1 ứng dụng sau mỗi lần dịch, tương đương vi c chia toán hạng với 2 của số có dấu.Vậy nếu muốn chia một số có dấu với 2i ta phải dịch chuyển số bị chia đi I lần Cờ OF 1 nếu khi dịch một lần mà... Mỗi lần dịch MSB được đưa qua cờ CF và giá trị 0 được đưa vào LSB, Thao tác như vậy được gọi là dcihj logic CL phải chứa sẵn số lần dịch mong muốn Trong trường hợp muốn dịch một lần, ta vi t lệnh trực tiếp: SAL đích, 1 ứng dụng: Mỗi lần dịch tương đương vi c nhân toán hạng với 2 của số không dấu Vậy nếu muốn nhân một số không dấu với 2i thì ta dịch trái số bị nhân đi i lần Cờ OF 1 nếu khi dịch một lần... được quay qua cờ CF và MSB CL phải chứa sẵn số lần quay + RCL đích, CL: Quay trái qua cờ CF Lệnh này có thể quay toán hạng sang trái thong qua cờ CF, CL phải chứa sẵn số lần quay Trong trường hợp muốn quay một lần, ta vi t lệnh trực tiếp: RCL đích, 1 Ta thấy CL = 9 và toán hạng đích bằng 8 bit thì kết quả không bị thay đổi vì CF cùng với toán hạng thanh ghi(8 bit) quay đúng một vòng Cờ CF 1 neeus khi... đích, CL: Quay vòng sang trái Toán hạng đích tìm được theo các chế độ địa chỉ Lệnh có tác dụng quay vòng toán hạng sang trái MSB được đưa qua cờ CFZ là LSB ZCl chứa sẵn số lần quay Trong trường hợp muốn quay một lần ta vi t lệnh: ROL đích, 1 Ta thấy, Nếu Cl = 8 và toán hạng đích là 8 bít thì kết quả không bị thay đổi vì toán hạng quay tròn đúng một vòng, còn nếu CL = 4 thì 2 nibble của toán hạng bị đổi...Nhóm lệnh logic 5 Lệnh TEST Vi t lệnh: TEST Đích,Nguồn Mô tả: Đích ∧ Nguồn VD: TEST AH,AL; AH ∧ AL để tạo cờ Nhóm lệnh rẽ nhánh • Lệnh nhảy không điều kiện: JMP Nhãn (uncondition Jump to Specifled Destination) Nhảy(vô điều kiện đến... vòng CF LSB sau mỗi lần quay Cập nhật: CF, OF (Chỉ hai cờ này bị ảnh hưởng) LỜI CẢM ƠN Mặc dù rất cố gắng để hoàn thiện báo cáo, xongong vì thời gian có hạn và kinh nghiệm, kiến thức còn hạn chế nên báo cáo này còn nhiều thiếu sót Chúng em rất mong nhận được ý kiến đóng góp của thầy cô và bè bạn để chương trình ngày càng hoàn thiện hơn Chúng em xin chân thành cảm ơn!!!