Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
223,46 KB
Nội dung
GIỚI THIỆU TẬP LỆNH CỦA VI XỬ LÝ 8085 I NHÓM LỆNH DI CHUYỂN BIT: Lệnh truyền liệu ghi: + Cú pháp: MOV d, s s (source): tượng trưng cho ghi phát d nhận d d d s s s + Mã đối tượng: (destination): tượng trưng cho + Các bit ddd sss tra BẢNG 2.1 cuối tập lệnh + Ý nghóa: chuyển nội dung ghi s vào ghi d, nội dung ghi s + Lệnh chiếm byte, số chu kỳ xung clock = + Thanh ghi trạng thái không thay đổi (Tương tự cho lệnh khác) Lệnh chuyển liệu ghi vào ô nhớ: Cú pháp: MOV M, s Lệnh chuyển liệu từ ô nhớ vào ghi: Cú pháp: MOV d, M Lệnh truyền tức thời liiệu bit vào ghi: Cú pháp: MVI d, D8 Lệnh truyền tức thời liệu bit vào ô nhớ: Cú pháp: MVI M, D8 II NHÓM LỆNH TĂNG GIẢM BIT: Lệnh tăng nội dung ghi: + Cú pháp: INR d + Mã đối tượng: III 0 d d d 0 + Ý nghóa: Lệnh tăng nội dung ghi lên đơn vị + Lệnh nầy chiếm byte , số chu kỳ xung clock = + Lệnh nầy ảnh hưởng đến ghi trạng thái trừ bit Cy không ảnh hưởng (Tượng tự cho lệnh khác) Lệnh giảm nội dung ghi: Cú pháp: DCR d Lệnh tăng nội dung ô nhớ: Cú pháp: INR M Lệnh giảm nội dung ô nhớ: Cú pháp: DCR M NHÓM LỆNH SỐ HỌC GIỮA THANH GHI A VÀ THANH GHI Lệnh cộng ghi: + Cú pháp: ADD s 0 0 s s s + Mã đối tượng: + Ý nghóa: nội dung ghi A cộng với nội dung ghi s, kết chứa ghi A , nội dung ghi s + Lệnh chiếm byte, số chu kỳ xung clock = + Lệnh ảnh hưởng đến ghi trạng thái Lệnh cộng ghi có số nhớ ban đầu: + Cú pháp: ADC s + Mã đối tượng: 0 s s s + Ý nghóa: nội dung ghi A cộng với nội dung ghi s cộng với bit Cy, kết chứa ghi A, nội dung ghi s + Lệnh nầy chiếm byte, số chu kỳ xung clock = + Lệnh nầy ảnh hưởng đến ghi trạng thái (Tương tự cho lệnh khác) Lệnh trừ ghi: Cú pháp: SUB s Lệnh trừ ghi có số nhớ ban đầu: Cú pháp: SBB s Lệnh and với ghi: Cú pháp: ANA s Lệnh Ex-or với ghi: Cú pháp: XRA s Lệnh or với ghi: Cú pháp: ORA s Lệnh so sánh với ghi: Cú pháp: CMP s IV NHÓM LỆNH SỐ HỌC GIỮA Ô NHỚ VỚI THANH GHI A: Lệnh cộng với ô nhớ: + Cú pháp: ADD M + Mã đối tượng: 0 0 1 + Ý nghóa: nội dung ghi A cộng với nội dung ô nhớ có địa chứa cặp ghi HL, kết chứa ghi A, nội dung ô nhớ không thay đổi + Lệnh nầy chiếm byte, số chu kỳ xung clock = + Lệnh nầy ảnh hưởng đến ghi trạng thái Lệnh cộng ô nhớ có số nhớ ban đầu: + Cú phaùp: ADC M 0 1 + Mã đối tượng: + Ý nghóa: nội dung ghi A cộng với dung ô nhớ có địa chứa cặp ghi HL, kết chứa A, nội dung ô nhớ không thay đổi + Lệnh nầy chứa byte, số chu kỳ xung clock = + Lệnh nầy ảnh hưởng đến ghi trạng thái (Tương tự cho lệnh khác) Lệnh trừ với ô nhớ: Cú pháp: SUB M Lệnh trừ ô nhớ có số nhớ ban đầu: Cú pháp: SBB M Lệnh and với ô nhớ: Cú pháp: ANA M Lệnh Ex-or với ô nhớ: Cú pháp: XRA M Lệnh or với ô nhớ: Cú pháp: ORA M Lệnh so sánh với ô nhớ: Cú pháp: CMP M V NHÓM LỆNH SỐ HỌC GIỮA THANH GHI A VÀ DỮ LIỆU BIT: Lệnh cộng tức thời với liệu bit: + Cú pháp: ADI D8 + Mã đối tượng: 1 0 1 Dữ liệäu bit D8 + Ý nghóa: nội dung ghi A cộng với liệu bit D8, kết chứa ghi A + Lệnh nầy chứa byte, số chu kỳ xung clock = + Lệnh nầy ảnh hưởng đến ghi trạng thái Lệnh cộng tức thời với liệu bit có số nhớ ban đầu: + Cú pháp: ACI D8 + Mã đối tượng: 1 0 1 Dữ liệäu bit D8 + Ý nghóa: nội dung ghi A cộng với liệu bit D8, cộng với bit Cy, chứa ghi A + Lệnh nầy chứa byte, số chu kỳ xung clock = + Lệnh nầy ảnh hưởng đến ghi trạng thái ( Tương tự cho lệnh khác ) Lệnh trừ tức thời với liệu bit: Cú pháp: SUI D8 kết Lệnh trừ tức thời với liệu bit có số nhớ ban đầu: Cú pháp: SBI D8 Lệnh and tức thời với liệu bit: Cú pháp: ANI D8 Lệnh Ex-or tức thời với liệu bit: Cú pháp: XRI D8 Lệnh or tức thời với liệu bit: Cú pháp: ORI D8 Lệnh so sánh tức thời với liệu bit: Cú pháp: CPI D8 VI NHÓM LỆNH NẠP TỨC THỜI CẶP THANH GHI: Lệänh nạp cặp ghi BC: + Cú pháp: LXI B, D16 + Mã đối tượng: 0 0 bit thaáp bit cao + Ý nghóa: liệu 16 bit D16 nạp vào cặp ghi BC + Lệnh nầy chiếm byte, số chu kỳ xung clock = 10 + Không ảnh hưởng đến ghi trạng thái (Tương tự cho lệnh khác) Lệnh nạp cặp ghi DE: Cú pháp: LXI D, D16 Lệnh nạp cặp ghi HL: Cú pháp: LXI H, D16 Lệnh nạp cặp ghi SP: Cú pháp: LXI SP, D16 VII NHÓM LỆNH PUSH: Lệnh cất cặp ghi BC: + Cú pháp: PUSH B +Mã đối tượng: 1 0 1 +Ý nghóa: nội dung cặp ghi BC copy vào ngăn xếp Nội dung ghi B cất vào ngăn xếp địa (SP-1), ghi C cất vào ngăn xếp địa (SP2), nội dung ghi SP giảm + Lệnh chiếm byte, số chu kì xung clock =12 +Lệnh không ảnh hưởng đến ghi trạng thái (Tương tự cho lệnh khác) Lệnh cất cặp ghi DE: Cú pháp: PUSH D Lệnh cất cặp ghi HL: Cú pháp: PUSH H Lệnh cất cặp ghi AF: Cú pháp: PUSH PSW VIII NHÓM LỆNH POP: Lệnh chuyển nội dung ngăn xếp vào cặp ghi: + Cú pháp: POP B + Mã đối tượng: 1 0 0 + Ý nghóa: chuyển nội dung từ ngăn xếp vào cặp ghi BC Nội dung ngăn xếp có địa chứa SP chuyển cho ghi C, nội dung ngăn xếp có địa (SP+1) chuyển cho ghi B, sau lệnh POP nội dung SP tăng lên + Lệnh chiếm byte, số chu kì clock =12 + Lệnh không ảnh hưởng đến ghi teạng thái (Tương tự cho lệnh khác nhóm) Lệnh chuyển nội dung ngăn xếp vào cặp ghi DE: + Cú pháp: POP D Lệnh chuyển nội dung ngăn xếp vào cặp ghi HL: + Cú pháp: POP H Lệnh chuyển nội dung ngăn xếp vào cặp ghi AF: + Cú pháp: POP PSW IX NHÓM LỆNH CỘNG CẶP THANH GHI VỚI CẶP THANH GHI: Lệnh cộng cặp ghi BC: + Cú pháp: DAD B + Mã đối tượng: 0 0 0 + YÙ nghóa: nội dung cặp ghi BC cộng với cặp ghi HL, kết cất cặp ghi HL Thanh ghi L cộng với C, ghi H cộng với B + Lệnh chiếm byte, số chu kỳ clock =10 + Lệnh làm ảnh hưởng đến bit trạng thái Cy Tương tự cho lệnh nhóm sau: Lệnh cộng cặp ghi DE: + Cú pháp: DAD D Lệnh cộng cặp ghi HL: + Cú pháp: DAD H Lệnh cộng cặp ghi SP: + Cú pháp: DAD SP X NHÓM LỆNH TĂNG CẶP THANH GHI: 1.Lệnh tăng cặp ghi BC: + Cú pháp: INX B + Mã đối tượng: 0 0 0 +Ý nghóa: nội dung cặp thah ghi BC tăng thêm đơn vị + Lệnh chiếm byte, số chu kỳ clock =6 + Lệnh không làm ảnh hưởng đến ghi trạng thái (Tương tự cho lệnh khác) Lệnh tăng cặp ghi DE: + Cú pháp: INX D Lệnh tăng cặp ghi HL: + Cú pháp: INX H Lệnh tăng cặp ghi SP: + Cú pháp: INX SP XI LỆNH GIẢM CẶP THANH GHI: Lệnh giảm cặp ghi BC: + Cú pháp: DCX D + Mã đối tượng: 0 0 1 + Ý nghóa: nội dung cặp ghi BC giảm thêm đơn vị + Lệnh chiếm byte, số chu kỳ clock=6 + Lệnh không làm ảnh hưởng đến ghi trạng thái (Tương tự cho lênh khác) Lệnh giảm cặp ghi DE: + Cú pháp: DCX D Lệnh giảm cặp ghi HL: + Cú pháp: DCX H Lệnh giảm cặp ghi SP: + Cú pháp: DCX SP XII NHÓM LỆNH GIÁN TIẾP DÙNG CẶP THANH GHI: Lệnh lưu trữ gián tiếp dùng cặp ghi BC: + Cú pháp: STAX B + Mã đối tượng: 0 0 0 + YÙ nghóa: nội dung gi lưu trữ gián tiếp vào ô nhớ có địa chứa cặp ghi BC + Lệnh không ảnh hưỏng đến ghi trạng thái (Tương tự cho lênh khác nhóm) Lệnh lưu trữ gián tiếp dùng cặp ghi DE: + Cú pháp: STAX D Lệnh nạp gián tiếp dùng cặp ghi BC: + Cú pháp: LDAX B + Mã đối tượng: 0 0 1 + Ý nghóa: nội dung ô nhớ có địa chứa cặp ghi BC chuyển vào ghi A (Tương tự cho lệnh khác) Lệnh lưu trữ gián tiếp dùng cặp ghi DE: + Cú pháp: LDAX D XIII NHÓM LỆNH TRỰC TIẾP: Lệnh lưu trữ trực tiếp: + Cú pháp: STA ADDR + Mã đối tượng: 1 0 bit thaáp bit cao + Ý nghóa: nội dung ghi A lưu trữ vào ô nhớ có địa ADDR + Lệnh chiếm byte, số chu kỳ clock=13 + Lệnh không ảnh hưởng đến ghi trạng thái Lệnh nạp trực tiếp: + Cú pháp: LDA ADDR + Mã đối tượng: 0 1 bit thaáp bit cao + Ý nghóa: nội dung ô nhớ có địa ADDR chuyển vào ghi A + Lệnh chiếm byte, số chu kỳ xung clock =13 + Lệnh nầøy không ảnh hưởng đến ghi trạng thái Lệnh lưu trữ trực iếp cặp ghi: + Cú pháp: SHLD ADDR 0 + Mã đối tượng: 0 bit thaáp bit cao + Ý nghóa: nội dung cặp ghi HL đựoc lưu vào ô nhớ liên tiếp ADDR (ADDR+1) Nội dung ghi L lưu trữ vào ô nhớ có địa ADDR, nội dung ghi H lưu trữ vào ô nhớ có địa (ADDR+1) + Lệnh nầy chiếm byte, số chu kỳ xung clock = 16 + Lệnh nầy không ảnh hưởng đến ghi trạng thái Lệnh nạp trực tiếp cặp ghi: + Cú pháp: LHLD ADDR + Mã đối tượng: 0 1 bit thaáp bit cao + Ý nghóa: nội dung ô nhớ có địa liên tiếp ADDR (ADDR+1) lưu trữ vào cặp ghi HL Nội dung ô nhớ có địa ADDR nạp vào ghi L, nội dung ô nhớ có địa (ADDR+1) nạp vào ghi H + Lệnh chiếm byte, số chu kỳ xung clock =13 + Lệnh không ảnh hưởng đến ghi trạng thái XIV NHÓM LỆNH XOAY THANH GHI A: Lệnh dịch ghi A sang trái: + Cú pháp: RLC + Mã đối tượng: 0 0 1 + Ý nghóa: nội dung ghi A dịch từ phải sang trái, bit MSB chuyển sang bit Cy bit LSB + Lệnh chiếm 1byte, số chu kỳ lock =4 + Lệnh ảnh hưởng đến bit trạng thái Cy Lệnh dịch ghi A sang phải: + Cú pháp: RRC + Mã đối tượng: 0 0 1 1 + Ý nghóa: nội dung ghi A dịch từ trái sang phải, bit LSB chuyển sang bit Cy bit MSB + Lệnh chiếm 1byte, số chu kỳ lock =4 + Lệnh ảnh hưởng đến bit trạng thái Cy ( Tương tự cho lệnh khác) Lệnh dịch ghi A sang trái thông qua bit Cy: + Cú pháp: RAL Lệnh dịch ghi A sang phải thông qua bit Cy: + Cú pháp: RAR XV NHÓM LỆNH NHẢY: Lệnh nhảy không điều kiện: + Cú pháp: JMP ADDR 1 + Mã đối tượng: 0 0 bit thấp bit cao 1 + ý nghóa: vi xử lí nhảy đến địa ADDR để tiếp tục thực chương trình + Lệnh chiếm byte, số chu kỳ clock =10 + Lệnh không ảnh hưởng đến ghi trạng thái Lệnh nhảy bit Z=0: +Cú pháp: JNZ ADDR + Mã đối tượng: 0 0 bit thấp bit cao + Ý nghóa: vi xử lí nhảy đến địa ADDR để tiếp tục chương trình bit Z=0, sau thực lệnh ảnh hưởng đến bit z ghi trạng thái + Lệnh chiếm byte, số chu kỳ clock laø 7/10 3 + Lệnh không ảnh hưởng đến ghi trạng thái ( Tương tự cho lệnh khác) Lệnh nhảy bit Z=1: + Cú pháp: JZ ADDR Lệnh nhảy bit C=0: + Cú pháp: JNC ADDR Lệnh nhảy bit C=1: + Cú pháp: JC ADDR Lệnh nhảy bit P=0: + Cú pháp: JPO ADDR Lệnh nhảy bit P=1: + Cú pháp: JPE ADDR Lệnh nhảy bit S=0: + Cú pháp: JP ADDR Lệnh nhảy bit S=1: + Cú pháp: JM ADDR XVI NHÓM LỆNH GỌI: Lệnh gọi không điều kiện: + Cú pháp: CAAL ADDR + Mã đối tượng: 1 0 1 bit thaáp bit cao + Ý nghóa: vi xử lý thực chương trình địa ADDR sau trở chương trình gặp lệnh trở + Lệnh chiếm byte, số chu kỳ clock =18 + Lệnh không ảnh hưởng đến ghi trạng thái Lệnh gọi Z=0: + Cú pháp: CNZ ADDR + Mã đối tượng: 0 1 bit thấp bit cao + Ý nghóa: vi xử lý thực chương trình ADDR bit Z=0, sau thực lệnh ảnh hưởng đến bit Z ghi trạng thái Sau trở chương trình gặp lệnh trở + Lệnh chiếm byte, số chu kỳ clock =9/18 + Lệnh không ảnh hưởng đến ghi trạng thái ( Tương tự cho lệnh khác) Lệnh gọi bit Z=1: + Cú pháp: CZ Lệnh gọi bit C=0: + Cú pháp: CNC Lệnh gọi bit C=1: + Cú pháp: CC Lệnh gọi bit P=0: + Cú pháp: CPO Lệnh gọi bit P=1: + Cú pháp: CPE Lệnh gọi bit S=0: + Cú pháp: CP Lệnh gọi bit S=1: + Cú phaùp: CM ADDR ADDR ADDR ADDR ADDR ADDR ADDR XVII NHÓM LỆNH TRỞ VỀ TỪ CHƯƠNG TRÌNH CON: Lệnh RET không điều kiện: + Cú pháp: RET + Mã đối tượng: 1 0 0 1 + Ý nghóa: lệnh sẻ kết thúc chương trình con, vi xử lý trở lại chương trình tiếp tục phần chương trình lại + Lệnh chiếm byte, số chu kỳ xung clock=10 + Thanh ghi trạng thái không đổi Lệnh trở Z=0: + Cú pháp: RNZ + Mã đối tượng: 1 0 0 0 + Ý nghóa: lệnh kết thúc chương trình bit Z=0, vi xử lý trở lại chương trình tiếp tục phần chương trình lại, không thỏa điều kiên chương trình thực lệnh + Lệnh chiếm byte, số chu kỳ clock=6/12 + Thanh ghi trạng thái không thay đổi ( Tương tự cho lệnh khác) Lệnh trở Z=1: + Cú pháp: RZ Lệnh trở C=0: + Cú pháp: RNC Lệnh trở C=1: + Cú pháp: RC Lệnh trở P=0: + Cú pháp: RPO Lệnh trở P=1: + Cú pháp: RPE Lệnh trở S=0: + Cú pháp: RP Lệnh trở S=1: + Cú pháp: RM XVIII NHÓM LỆNH DI CHUYỂN CẶP THANH GHI Lệnh trao đổi nội dung cặp ghi: + Cú pháp : XCHG + Mã đối tượng: 1 1 1 + Ý nghóa: nội dung cặp ghi HL DE trao đổi cho Thanh ghi H trao đổi với D ghi L trao đổi với E + Lệnh chiếm byte, số chu kỳ xung clock = + Thanh ghi trạng thái không thay đổi ( Tương tự cho lệnh khác ) Lệnh trao đổi nội dung cặp ghi với ô nhớ: + Cú pháp : XTHG Lệnh di chuyển nội dung cặp ghi: + Cú pháp : SPHL Lệnh nạp cặp ghi PC : + Cú pháp : PCHL XIX NHÓM LỆNH XUẤT NHẬP Lệnh nhập liệu từ port: + Cú pháp: IN port-addr + Mã đối tượng: 1 1 port-addr 1 + Ý nghóa: nhập nội dung có địa portaddr vào ghi A Địa port-addr có độ dài byte + Lệnh chiếm byte, số chu kỳ xung clock = 10 + Thanh ghi trang thái không thay đổi (Tương tự cho lệnh khác) Lệnh xuất liệu port: + Cú pháp: OUT port-addr Lệnh cho phép ngắt: + Cú pháp: EI Lệnh không cho phép ngắt: + Cú pháp: DI Lệnh read interrupt mask: + Cú pháp: RIM Lệnh set interrupt mask: + Cú pháp: SIM XX NHÓM LỆNH ĐẶC BIỆT: Lệnh nghịch đảo nội dung ghi A: + Cú pháp: CMA Lệnh đặt bit carry: + Cú pháp: STC Lệnh nghịch đảo bit carry: + Cú pháp: CMC Lệnh điều chỉnh thập phân: + Cú pháp: DAA Lệnh nop: + Cú pháp: NOP Lệnh dừng: + Cú pháp: HLT Bảng tra ghi: Register ddd or sss B 000 C 001 D 010 E 011 H 100 L 101 M 110 A 111 Bảng 2.1 XXI VÍ DỤ MINH HỌA TẬP LỆNH: Chương trình nhấp nháy chuỗi "-HÀ-NỘI-" led: Org 7108h ;địa bắt đầu nhập mã chuổi Db, 40h, 76h, 77h, 40h, 37h, 3fh, 30h, 40, ;khai baùo mã chuỗi Org 6200h Vd1: lxi h, 7108h ;nạp địa quản lý liệu vào ghiHL Mvi c, 08h ;làm biến đếm cho chương trình hiển thị Vd2: mov a, m ;lấy liệu Sta 0a000h ;gởi led hiển thị Inr l ;tăng lên để lấy byte Dcr c ;giảm biến đếm Jnz vd2 ;nhảy vd2 chưa gởi đủ byte Mvi a, 01h ;nạp thời delay1 giây Call 0310h ;gọi chương trình delay Mvi c, 08h ;làm biến điếm cho chương trình xóa Mvi a, 00h ;nạp 00 vào A Vd3 sta 0a000h ;gởi led để xóa Dcr c ;giảm biến đếm Jnz vd3 ;quay lại vd3 chưa xóa đủ led Mvi 0, 01h ;nạp thời delay Call 0310h ;gọi chương trình delay Jmp vd1 ;quay lại làm lại chu kỳ kế ... ADDR XVI NHÓM LỆNH GỌI: Lệnh gọi không điều kiện: + Cú pháp: CAAL ADDR + Mã đối tượng: 1 0 1 bit thấp bit cao + Ý nghóa: vi xử lý thực chương trình địa ADDR sau trở chương trình gặp lệnh trở + Lệnh. .. thái (Tương tự cho lệnh khác) Lệnh nạp cặp ghi DE: Cú pháp: LXI D, D16 Lệnh nạp cặp ghi HL: Cú pháp: LXI H, D16 Lệnh nạp cặp ghi SP: Cú pháp: LXI SP, D16 VII NHÓM LỆNH PUSH: Lệnh cất cặp ghi BC:... gặp lệnh trở + Lệnh chiếm byte, số chu kỳ clock =9/18 + Lệnh không ảnh hưởng đến ghi trạng thái ( Tương tự cho lệnh khác) Lệnh gọi bit Z=1: + Cú pháp: CZ Lệnh gọi bit C=0: + Cú pháp: CNC Lệnh