1. Trang chủ
  2. » Giáo án - Bài giảng

Bài Giảng Phần Cứng Máy Tính

26 15 0

Đ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

Phần cứng máy tính PHẦN CỨNG MÁY TÍNH Lập trình tập lệnh CPU I Các lệnh cơ bản 1/ MOV MOV dest, source ** Gán toán hạng source > dest  Quy định + Hai toán hạng phải cùng kiểu 8 hay 16 bit + Không thể[.]

PHẦN CỨNG MÁY TÍNH Lập trình tập lệnh CPU Các lệnh 1/ MOV MOV dest, source ** Gán toán hạng source -> dest  Quy định: + Hai toán hạng phải kiểu hay 16 bit + Khơng thể hai tốn hạng nhớ + Không thể gán trực tiếp vào ghi segment + Không thể gán ghi segment vào ghi segment I Một số VD MOV G/s nhớ gồm đoạn có địa segment 0000, 014A, 028B Lập trình tập lệnh CPU chép nhớ có địa offset 3;4;5 đoạn sang ô sớ 7;8;9 đoạn cách a) Dùng nhớ trực tiếp b) Dùng nhớ gián tiếp với kiểu [SI + disp] , [DI + disp]  Một số VD lệnh MOV Giải: a) Bộ nhớ trực tiếp Byte ptr Word ptr ghi segment : [offset ]  Nap địa segment đoạn vào DS MOV AX, 0000 MOV DS, AX  Nạp segment đoạn vào ES MOV AX, 028B MOV ES, AX  Chép ô nhớ 3,4,5 sang 7,8.9 MOV AX, word ptr DS: [0003] MOV word ptr ES:[0007],AX MOV AL, byte ptr DS: [0005] MOV byte ptr ES:[0009],AL  Một số VD MOV b) Bộ nhớ gián tiếp [SI + disp], [DI + disp] ; nạp segment đoạn vào DS MOV AX, 0000 MOV DS, AX ;nạp segment đoạn vào ES MOV AX, 028B MOV ES, AX ;SI = đ/c offset bắt đầu vùng nhớ nguồn MOV SI, 0003 ;DI = đ/c offset bắt đầu vùng nhớ đích MOV DI, 0007 ;chép nhớ 3,4 vào 7,8 MOV AX, word ptr DS: [SI] MOV word ptr ES:[DI], AX ;chép ô nhớ - > MOV AL, byte ptr DS:[SI + 2] MOV byte ptr ES:[DI+2], AL Bài tập  Chép ô nhớ 5,7,9 đoạn sang ô nhớ 3,5,7 theo thứ tự ->7 ->5 ->3  Hoán chuyển ô nhớ 4,5,6 7,8,9 đoạn 2/ Lệnh Add, Inc, Adc Lệnh Add Add dest, source (dest) + (source) ->dest  Khi phép cộng xuất số nhớ cờ nhớ CF đặt  Lệnh Inc Inc dest (dest) + - > (dest)  Lệnh Adc (dest) + (source) + CF -> (dest)  VD phép tốn khơng có nhớ,có nhớ Cộng ô nhớ 3,4,5 đoạn kết lưu vào ô nhớ a) Bộ nhớ trực tiếp b) Bộ nhớ gián tiếp [BX+disp] Giải: c) Bộ nhớ trực tiếp MOV AX, 014A MOV DS,AX  ;cộng ô nhớ b) Bộ nhớ gián tiếp MOV AX,014A MOV DS,AX ;BX= đc offset bắt đầu vùng nhớ MOV BX, 0003 ;Cộng MOV AL, byte ptr DS:[BI] Add AL, byte ptr DS:[BI+1] Add AL, byte ptr DS:[BI+2] ;Ghi MOV byte ptr DS: [BX+3], AL Nhận xét = > Nhận xét : Kết bị tràn Do ta nên cho kết ghi 16 bit (1byte + 1byte + 1byte - >1 byte) bị tràn (1byte + byte + byte - > byte ) khơng tràn VD phép tốn có kết 16bit b) Bộ nhớ gián tiếp MOV AX, 014A MOV DS, AX MOV BX, 0003 ;cộng MOV AL, byte ptr DS:[BX] MOV AH,0 Inc BX Add AL, byte ptr DS:[BX] Adc AH,0 Inc BX Add AL, byte ptr DS:[BX] Adc AH,0 Inc BX ;Ghi MOV word ptr DS:[BX], AX 2/ Lệnh Sub, Dec, Sbb Lệnh Sub Sub dest, source (dest) – (source) -> (dest)  Lệnh Dec (giảm 1) (dest) – - > dest  Lệnh Sbb Sbb dest, source (dest) – (source) ->dest  3/ Lệnh Push, Pop Lệnh Push (16 bit) Push source ** Lưu nội dung toán hạng source vào đỉnh stack Thanh ghi sp tự động giảm để đến đỉnh ** Cất nội dung ghi hay ô nhớ lên ngăn xếp ** Lưu liệu vào , liệu tăng lên, địa giảm địa từ đáy lên  3/ Lệnh Push, Pop  Lệnh Pop Pop dest (16 bit) ** Lấy pt đỉnh stack - > toán hạng dest ** Thanh ghi sp tự động tăng để đến đỉnh ** Lấy từ 16 bit bit cao I ngăn xếp xuống lưu vào ghi định kể từ ô nhớ định VD Push, Pop MOV AX, 1000 MOV BX, 2000 MOV CX, 3000 push AX push BX push CX ;lấy pop CX pop BX pub AX ;đọc không lấy MOV BP, SP MOV CX, word ptr SS:[BP] MOV BX, word ptr SS:[BP +2] MOV AX, word ptr SS:[BP+4] II Các lệnh tính toán số học logic Các lệnh nhân: * Lệnh Mul : nhân số khơng dấu Mul source  Có source bit AL * source - > AX  Có source 16 bit AX * source -> DX: AX (32 bit) Cặp ghi DX:AX biểu diễn số 32 bit Ta có: DX:AX = DX * 16 + AX II Các lệnh tính tốn số học logic  Lệnh IMul: nhân số có dấu IMul source (tương tự Mul) VD 1: Cho đoạn data có đc segment x/đ DS Nhân nhớ 2,3 kết lưu vào ô nhớ 4,5 II Các lệnh tính tốn số học logic Giải: G/sử số không dấu MOV AL, byte ptr DS:[0002] Mul byte ptr DS:[0003] MOV word ptr DS:[0004], AX  VD2: Nhân từ nhớ có địa 6,7 với 1000, kq lưu vào ô nhớ 8, 9, A, B MOV AX,1000 Mul word ptr DS:[0006] ; kq = DX:AX MOV word ptr DS:[0008],AX MOV word ptr DS:[000A],DX Các lệnh tính tốn số học logic Các lệnh chia  Lệnh DIV : chia số không dấu DIV source Chia làm phần : phần thương, phần dư Có trường hợp: TH1: Source bit AL = thương AX / (source) AH = dư

Ngày đăng: 18/08/2023, 18:57

Xem thêm: