Giới thiệu tập lệnh của vi xử lý 8085

13 979 12
Giới thiệu tập lệnh của vi xử lý 8085

Đ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

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

Ngày đăng: 29/09/2013, 14:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan