Danh mục

Kiến trúc máy tính PHẦN II HỢP NGỮ - Chương 6 NHÓM LỆNH CHUYỂN DỮ LIỆU

Số trang: 23      Loại file: pdf      Dung lượng: 167.61 KB      Lượt xem: 17      Lượt tải: 0    
Thư viện của tui

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tài liệu tham khảo về bài giảng kiến trúc máy tính dành cho giáo viên, sinh viên chuyên ngành công nghệ thông tin tham khảo.
Nội dung trích xuất từ tài liệu:
Kiến trúc máy tính PHẦN II HỢP NGỮ - Chương 6 NHÓM LỆNH CHUYỂN DỮ LIỆU Chương 6NHÓM LỆNH CHUYỂN DỮ LiỆU Lệnh chuyển dữ liệu MOV XLAT• • XCHG LEA• • PUSH LAHF• • POP SAHF• • PUSHF • POPF • IN • OUT • Lệnh MOV MOV đích, nguồn ; đích ß nguồn MOV reg, reg• MOV reg, mem• MOV reg, const• MOV mem, reg• MOV mem, const• Đích và nguồn phải cùng kích thước Lệnh XCHG, PUSH, POPXCHG đích, nguồn ; đích ßà nguồnPUSH toánhạng ; đưa toán hạng lên đỉnh stackPOP toánhạng ; lấy giá trị trên đỉnh stack PUSH POP (16bit) (16bit) (16bit) Ví dụ 1• Cho biết nội dung các thanh ghi AX,BX,CX sau khi thực hiện đoạn chương trình sau: MOV AX, 05ABh MOV BX, 1 XCHG BH, BL MOV CX, BX XCHG AL, CL AX = ? BX= ? CX = ? Ví dụ 1 (t.t) AH ALMOV AX, 05ABh ; AX: 05 ABMOV BX, 1 ; BX: 00 01XCHG BH, BL ; BX: 01 00MOV CX, BX ; CX: 01 00XCHG AL, CL ; AX: 05 00 ; CX: 01 ABAX = 0500h BX= 0100h CX = 01ABh Ví dụ 2• Cho biết nội dung các thanh ghi AX,BX,CX sau khi thực hiện đoạn chương trình sau: MOV AX, 05A0h PUSH AX XCHG AH, AL PUSH AX POP BX POP CX AX = ? BX= ? CX = ? Ví dụ 2MOV AX, 05A0h ; AX: 05 A0PUSH AX ; 05A0 à stack ; AX: A0 05XCHG AH, AL ; A005 à stackPUSH AX ; BX: A0 05POP BX ; CX: 05 A0POP CX A005 05A0 Lệnh XLAT• Translate – • “Dịch” giá trị trong AL thành giá trị mới trong bảng tại vị trí xác định theo độ dời bằng AL – • Ứng dụng để chuyển đổi số liệu• Cú pháp: XLAT – • ‘Input’: • • BX chứa địachỉ bảng dữ liệu • • AL chứabyte cần đổi – • ‘Output’: • • AL chứagiátrị tìm thấytrongbảng tại địachỉ BX+AL Lệnh XLAT(t.t.)• Ví dụ đổi số thập phân < 16 ra kí tự HEXA• • Khai báo bảng kí tự Bangkytu DB ‘0123456789ABCDEF’• •Thực hiện: MOV AL, 10 ;Nhập số cần đổi vào AL ví dụ =10 ;thực hiện đổi : MOV BX, offset Bangkytu ;lấy địa chỉ bảng dữ liệu XLAT ;AL chứakítự ‘A’ Lệnh IN• Cú pháp: IN AL,immed8 IN AL,DX IN AX,immed8 IN AX,DX• Ý nghĩa : đọc một giá trị 8bit hoặc 16bit từ cổng – Dạng lệnh có immed8 dùng trong trường hợp địa chỉ cổng xuất nhập 8 bit. – Dạng lệnh có thanh ghi DX dùng cho trường hợp địa chỉ cổng 16 bit. Lệnh IN (t.t)• Ví dụ đọc từ cổng có số hiệu 8bit: IN AL,61h IN AX,40hđọc từ cổng có số hiệu 16bit: MOV DX,378h IN AL,DX Lệnh OUT• Dạng lệnh : OUT immed8,accum OUT DX,accum• Giải thích : [cổng IO] ← thanh ghi tích lũy Xuất dữ liệu từ thanh ghi bộ tích lũy AL hoặc AX ra cổng xuất nhập có địa chỉ 8 bit là số tức thời immed8 hay có địa chỉ 16 bit trong thanh ghi DX. Lệnh OUT (t.t)OUT 20h,ALMOV DX,2F8hOUT DX,AL Lệnh LEA Dạng lệnh : LEA reg16,mem• Giải thích : thđ ← địa chỉ• Nạp địa chỉ hiệu dụng vào thanh ghi 16 bit.• Ví dụ :• LEA BX,[1000h] ; BX ← 1000h LEA SI,[DI][BX][2000h] ; SI ← DI+BX+2000h Bài tập1. Nhập đoạn chương trình trong Debug hoán đổi nội dung hai vùng nhớ gồm 5 byte. Vùng nhớ thứ nhất ở địa chỉ DS:100h, vùng nhớ thứ hai ở địa chỉ DS:120h2. Viết chương trình hoàn chỉnh dạng COM hoặc EXE cho phép nhập một chuỗi gồm đúng 5 ký tự. In ra màn hình chuỗi này theo thứ tự đảo ngược.3. Viết chương trình hoàn chỉnh dạng COM hoặc EXE cho phép nhập một chuỗi từ bàn phím với số lượng ký tự tùy ý không vượt quá 15. In ra màn hình chuỗi này và cho biết số ký tự thực sự nhập ở dạng số Hex. ;dang COM• .model tiny• .code• org 100h• start:• mov dx, offset moinhap• mov ah,9• int 21h• ;nhap chuoi• mov dx, offset chuoi• mov ah,0ah• int 21h•• ;dao• mov si,offset chuoi + 2 ; bo qua 2 byte dau, tro den ki tu dau tien• xchg ah,[SI]• xchg ah,[SI+4]• xchg ah,[SI]•;• xchg ah,[SI+1]• xchg ah,[SI+3]• xchg ah,[SI+1]•; mov dx,offset ketqua• mov ah,9• int 21h• ;in chuoi• mov dx,offset chuoi+2• mov ah,9• int 21h•• int 20h•• chuoi db 6,?,7 DUP($)•• moinhap db Nhap vao chuoi gom 5 ki tu: $• ketqua db 13,10,Chuoi sau khi dao: $• end start mov a ...

Tài liệu được xem nhiều: