intTypePromotion=1
ADSENSE

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

Chia sẻ: Nguyễn Xuân Quang | Ngày: | Loại File: PDF | Số trang:23

177
lượt xem
27
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: 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

  1. Chương 6 NHÓM LỆNH CHUYỂN DỮ LiỆU
  2. Lệnh chuyển dữ liệu MOV XLAT • • XCHG LEA • • PUSH LAHF • • POP SAHF • • PUSHF • POPF • IN • OUT •
  3. 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
  4. Lệnh XCHG, PUSH, POP XCHG đích, nguồn ; đích ßà nguồn PUSH toánhạng ; đưa toán hạng lên đỉnh stack POP toánhạng ; lấy giá trị trên đỉnh stack PUSH POP (16bit) (16bit) (16bit)
  5. 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 = ?
  6. Ví dụ 1 (t.t) AH AL MOV AX, 05ABh ; AX: 05 AB MOV BX, 1 ; BX: 00 01 XCHG BH, BL ; BX: 01 00 MOV CX, BX ; CX: 01 00 XCHG AL, CL ; AX: 05 00 ; CX: 01 AB AX = 0500h BX= 0100h CX = 01ABh
  7. 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 = ?
  8. Ví dụ 2 MOV AX, 05A0h ; AX: 05 A0 PUSH AX ; 05A0 à stack ; AX: A0 05 XCHG AH, AL ; A005 à stack PUSH AX ; BX: A0 05 POP BX ; CX: 05 A0 POP CX A005 05A0
  9. 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
  10. 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’
  11. 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.
  12. 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
  13. 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.
  14. Lệnh OUT (t.t) OUT 20h,AL MOV DX,2F8h OUT DX,AL
  15. 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
  16. Bài tập 1. 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:120h 2. 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.
  17. ;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 •
  18. • ;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] •;
  19. 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
  20. mov al,byte ptr [100h] • mov bl,byte ptr [120h] • xchg al,byte ptr [120h] • xchg bl,byte ptr [100h] • mov ax,word ptr [100h] • mov bx,word ptr [120h] • xchg ax,word ptr [120h] • xchg bx,word ptr [100h] •
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2