1. Trang chủ
  2. » Công Nghệ Thông Tin

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 pdf

23 526 3

Đ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

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 167,61 KB

Nội dung

Chương6 NHÓM LỆNH CHUYỂN DỮ LiỆU Lệnhchuyểndữliệu • MOV • XCHG • PUSH • POP • XLAT • LEA • LAHF • SAHF • PUSHF • POPF • IN • OUT LệnhMOV • MOV reg, reg • MOV reg, mem • MOV reg, const • MOV mem, reg • MOV mem, const MOV đích, nguồn ; đích ß nguồn Đíchvànguồnphảicùngkíchthước LệnhXCHG, PUSH, POP XCHG XCHG đ đ í í ch ch , , ngu ngu ồ ồ n n ; ; đ đ í í ch ch ßà ßà ngu ngu ồ ồ n n PUSH PUSH to to á á nh nh ạ ạ ng ng ; ; đư đư a a to to á á n n h h ạ ạ ng ng lên lên đ đ ỉ ỉ nh nh stack stack POP POP to to á á nh nh ạ ạ ng ng ; ; l l ấ ấ y y gi gi á á tr tr ị ị trên trên đ đ ỉ ỉ nh nh stack stack (16bit) (16bit) (16bit) PUSH PUSH POP POP Vídụ1 •Chobiếtnộidung cácthanhghiAX,BX,CX saukhithựchiện đoạnchươngtrìnhsau: MOVAX, 05ABh MOVBX,1 XCHGBH,BL MOVCX,BX XCHGAL, CL AX = ?BX= ?CX = ? Vídụ1 (t.t) MOVAX, 05ABh MOVBX,1 XCHGBH,BL MOVCX,BX XCHGAL, CL ; AX: 05 AB AH AL ; BX: 00 01 ; BX: 01 00 ; CX: 01 00 ; AX: 05 00 ; CX: 01 AB AX = 0500hBX= 0100hCX = 01ABh Vídụ2 •Chobiếtnộidung cácthanhghiAX,BX,CX saukhithựchiện đoạnchươngtrìnhsau: MOV AX, 05A0h PUSHAX XCHGAH, AL PUSHAX POPBX POPCX AX = ?BX= ?CX = ? Vídụ2 MOV AX, 05A0h PUSHAX XCHGAH, AL PUSHAX POPBX POPCX ; AX: 05 A0 ; 05A0 à stack 05A0 ; AX: A0 05 ; A005 à stack A005 ; BX: A0 05 ; CX: 05 A0 LệnhXLAT • Translate – •“Dịch”giátrị trong AL thành giátrị mớitrong bảngtạivịtríxác định theo độ dờibằng AL – • Ứng dụng để chuyển đổisố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ệnhXLAT(t.t.) • Vídụ đổisốthập phân <16 ra kítựHEXA • •Khai báo bảng kítự Bangkytu DB ‘0123456789ABCDEF’ • •Thựchiện: MOV AL, 10 ;Nhậpsốcần đổivàoAL vídụ=10 ;thựchiện đổi: MOV BX, offset Bangkytu ;lấy địachỉ 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 ,61 h 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. .. • 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,AL MOV DX,2F8h OUT DX,AL Lệnh LEA • • • • Dạng lệnh : LEA reg 16, 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 LEA BX,[1000h] ; BX ← 1000h SI,[DI][BX][2000h]... 1000h SI,[DI][BX][2000h] ; SI ← DI+BX+2000h 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... 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 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] • • • • • • • • • • • • • ;dang EXE model small data chuoi db 16, ?,17 DUP('$')... • • • • • • • • ;dang EXE model small data chuoi db 16, ?,17 DUP('$') moinhap db "Nhap vao chuoi toi da 15 ki tu: $" ketqua db 13,10,"Chuoi vua nhap: $" soluong db 13,10,"So luong ki tu(he 16) : $" bang db "01234 567 89ABCDEF" code main: mov ax,@data mov ds,ax • mov dx, offset moinhap • mov ah,9 • int 21h • ;nhap chuoi • mov dx, offset chuoi • mov ah,0ah • int 21h • ; • mov dx,offset ketqua • mov ah,9... chuoi+2 • mov ah,9 • int 21h • ; • mov dx,offset soluong • mov ah,9 • int 21h • ;tinh so ki tu • mov bx,offset bang • mov al,[chuoi+1] ; lay so ki tu vua nhap • xlat ; tra trong bang de doi sang ma ASCII • ; • mov ah,2 • mov dl,al • int 21h • ; • ;exit • mov ah,4ch • int 21h • end main . Chương6 NHÓM LỆNH CHUYỂN DỮ LiỆU Lệnhchuyểnd liệu • MOV • XCHG • PUSH • POP • XLAT • LEA • LAHF • SAHF • PUSHF • POPF • IN • OUT LệnhMOV • MOV reg, reg • MOV reg,. đọcmộtgiátrị 8bit hoặc16bit 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ệnhIN (t.t) • Vídụ. 8bit: IN AL ,61 h IN AX,40h đọc từ cổng cósốhiệu 16bit: MOV DX,378h IN AL,DX LệnhOUT • Dạnglệnh: OUT immed8,accum OUT DX,accum • Giảithích: [cổngIO] ← thanhghitíchlũy Xuất dữ liệu từ thanh

Ngày đăng: 12/08/2014, 10:20

TỪ KHÓA LIÊN QUAN

w