Chương II: Kiến trúc phần mềm bộ xử lý

Chia sẻ: Truongminh Dat | Ngày: | Loại File: PDF | Số trang:21

0
214
lượt xem
94
download

Chương II: Kiến trúc phần mềm bộ xử lý

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Nội dung: I. Tổ chức chung của hệ thống MTĐT II. Kiến trúc máy tính III. Các kiểu định vị cơ bản IV. Tập lệnh V. Kiểu toán hạng và chiều dài của toán hạng VI. Tác vụ mà lệnh thực hiện VII. Khái niệm về kiến trúc RISC và CISC VIII. Quan hệ ngôn ngữ cấp cao và ngôn ngữ máy.

Chủ đề:
Lưu

Nội dung Text: Chương II: Kiến trúc phần mềm bộ xử lý

  1. Kiến trúc máy tính & Hợp ngữ Chương II: Kiến trúc phần mềm bộ xử lý II: Kiế trú phầ mề bộ Tổ chứ củ mộ hệ thố I. Tổ chức chung của một hệ thống MT Số tiết: 10 1/ Các thành phần cơ bản Nội dung: - Bộ xử lý trung tâm (CPU). I. Tổ chức chung của hệ thống MTĐT - Bộ nhớ trong. II. Kiến trúc máy tính - Các bộ phận nhập/ xuất. III. Các kiểu định vị cơ bản Các thành phần cơ bản được nối kết với nhau qua hệ IV. Tập lệnh thống bus (bus điều khiển, bus dữ liệu, bus địa chỉ). V. Kiểu toán hạng và chiều dài của toán hạng VI. Tác vụ mà lệnh thực hiện VII. Khái niệm về kiến trúc RISC và CISC VIII. Quan hệ ngôn ngữ cấp cao và ngôn ngữ máy. Cấu trúc của một hệ máy tính đơn giản Nguyễn Thị Mỹ Dung – Khoa CNTT 1 Nguyễn Thị Mỹ Dung – Khoa CNTT 2 Các thành phần cơ bản (tt) thà phầ bả Các thành phần cơ bản (tt) thà phầ bả a/ Bộ xử lý trung tâm b/ Bộ nhớ trong Gồm các bộ phận: - Chứa các thông tin mà CPU có thể trao đổi - Đơn vị điều khiển (CU):điều khiển hoạt động của máy trực tiếp. tính theo chương trình đã định sẵn. - Tốc độ truy cập nhanh, dung lượng nhỏ. - Đơn vị số học và logic (ALU): thực hiện các phép tính số - Sử dụng bộ nhớ bán dẫn: ROM, RAM học và logic trên các dữ liệu cụ thể. - Có 2 loại bộ nhớ trong: bộ nhớ chính, bộ nhớ - Tập thanh ghi (RF): lưu trữ cache (bộ nhớ đệm nhanh). các thông tin tạm thời phục vụ cho hoạt động của CPU. - Bộ nhớ trong tổ chức thành các ô nhớ được - Đơn vị ghép nối (BIU): kết đánh địa chỉ. Mỗi ô nhớ thông thường là 1 byte. Nội nối và trao đổi thông tin giữa bus dung ô nhớ có thể thay đổi, còn địa chỉ thì cố định. bên trong và bus bên ngoài. Nguyễn Thị Mỹ Dung – Khoa CNTT 3 Nguyễn Thị Mỹ Dung – Khoa CNTT 4 Chương 2: Kiến trúc phần mềm bộ xử lý 1
  2. Kiến trúc máy tính & Hợp ngữ Các thành phần cơ bản (tt) thà phầ bả Các thành phần cơ bản (tt) thà phầ bả c/ Các bộ phận nhập/ xuất d/ Giao diện bus (BIU) - Trao đổi thông tin Các thiết bị ngoại vi trao đổi với CPU và bộ nhớ giữa máy tính với người qua các mạch ghép nối vào/ra (các giao diện). Các sử dụng hoặc giữa các mạch này cho phép nối các bộ phận độc lập nhằm máy tính trong cùng hệ làm cho chúng có thể tương thích và truyền thông tin thống mạng. được với nhau, cũng như dễ sửa chữa, dễ thay thế. - Các thành phần Các thiết bị phần cứng của hệ thống máy tính chính: bàn phím, màn kết nối với nhau thông qua hệ thống bus: hình, chuột, máy quét, Hệ thống bus bao gồm: máy in, các ổ đĩa, modem,… Nguyễn Thị Mỹ Dung – Khoa CNTT 5 Nguyễn Thị Mỹ Dung – Khoa CNTT 6 Quá trình hoạt động (tt) Quá trì hoạ độ Sơ đồ chức năng đồ chứ - Bus bộ xử lý (gồm: bus điều khiển, bus địa BỘ NHỚ CHÍNH Sơ đồ khối chức năng của một hệ thống máy tính RAM ROM chỉ, bus dữ liệu): thường được dùng để truyền dữ liệu giữa bộ xử lý và bus hệ thống hoặc giữa bộ xử lý Bus hệ thống CPU với cache ngoại. Bus này có tốc độ nhanh nên không GHÉP NỐI RA bị nghẽn. GHÉP NỐI VÀO - Bus bộ nhớ: trao đổi thông tin giữa CPU với bộ nhớ chính. Thông tin truyền trên bus này chậm THIẾT BỊ VÀO THIẾT BỊ RA hơn nhiều so với thông tin trên bus bộ xử lý. Bàn phím Màn hình - Bus vào/ra (bus mở rộng): trao đổi thông tin Chuột Máy in Máy quét Máy vẽ giữa bộ nhớ với các thiết bị ngoại vi. Ổ đĩa ổ đĩa Các thiết bị ngoại vi Nguyễn Thị Mỹ Dung – Khoa CNTT 7 Nguyễn Thị Mỹ Dung – Khoa CNTT 8 Chương 2: Kiến trúc phần mềm bộ xử lý 2
  3. Kiến trúc máy tính & Hợp ngữ Sơ đồ hoạt động đồ hoạ độ Tổ chức chung (tt) chứ Sơ đồ khối của một máy tính với thiết bị ngoại vi 2. Quá trình hoạt động của máy tính Chương trình trong máy tính gồm một tập hợp các lệnh được sắp xếp theo một trật tự nhất định. Khi chạy chương trình CPU sẽ đọc lần lượt từng lệnh một. Quá trình hoạt động theo kiểu tuần tự như thế gọi là máy tính kiểu Von Neumann. Trong thực tế, CPU thực hiện theo một chu kỳ: lấy lệnh – giải mã – thực thi lệnh. Quá trình đọc lệnh gồm một chuỗi thao tác: Xử lý dữ liệu Nhập dữ liệu Xuất thông tin Nguyễn Thị Mỹ Dung – Khoa CNTT 9 Nguyễn Thị Mỹ Dung – Khoa CNTT 10 Quá trình hoạt động (tt) Quá trì hoạ độ Kiế trú má tí II. Kiến trúc máy tính 1. Lấy lệnh kế tiếp từ bộ nhớ vào thanh ghi lệnh IR. Kiến trúc máy tính bao gồm: 2. Chuyển nội dung bộ đếm chương trình (PC) tới địa - Kiến trúc phần mềm bao gồm: tập lệnh, dạng chỉ lệnh kế tiếp. các lệnh và các kiểu định vị. 3. Xác định loại lệnh vừa lấy. - Tổ chức của máy tính: liên quan đến cấu trúc 4. Nếu lệnh sử dụng dữ liệu trong bộ nhớ, xác định bên trong của bộ xử lý, cấu trúc bus, các cấp bộ nơi chứa dữ liệu. nhớ,… 5. Tìm nạp dữ liệu vào thanh ghi trong CPU (nếu có). - Lắp đặt phần cứng: lắp ráp một máy tính dùng 6. Thực thi lệnh. các linh kiện điện tử và các bộ phận phần cứng cần thiết (không trình bày phần này trong môn học). 7. Lưu các kết quả vào nơi thích hợp. 8. Trở lại bước 1 để bắt đầu lệnh kế tiếp Nguyễn Thị Mỹ Dung – Khoa CNTT 11 Nguyễn Thị Mỹ Dung – Khoa CNTT 12 Chương 2: Kiến trúc phần mềm bộ xử lý 3
  4. Kiến trúc máy tính & Hợp ngữ III. Các kiểu định vị cơ bản Cá kiể đị vị bả Các kiểu định vị cơ bản (tt) kiể đị vị bả 1/ Các kiểu định vị 2/ Các kiểu thi hành một lệnh - Là cách thức thâm nhập các toán hạng nghĩa - Một lệnh mã máy bao gồm một mã tác vụ và các toán hạng. là cách tính địa chỉ của toán hạng đối với toán hạng - Vị trí của toán hạng có 3 kiểu cơ bản: ngăn xếp, bộ nhớ. Các toán hạng khác xác định các toán hạng thanh ghi tích luỹ và thanh ghi đa dụng. Hay nói cách nằm trong các thanh ghi. khác là những kiến trúc phần mềm gồm: kiến trúc ngăn - Có hai kiểu sắp xếp địa chỉ trong bộ nhớ: biểu xếp, kiến trúc thanh ghi tích luỹ và kiến trúc thanh ghi đa diễn từ trái sang phải và từ trên xuống dưới (Big- dụng. endian); biểu diễn từ phải sang trái và từ duới lên - Hiện tại các nhà sản xuất máy tính có khuynh hướng dùng kiến trúc phần mềm thanh ghi đa dụng vì: trên (Little-endian). + Việc thâm nhập các thanh ghi đa dụng nhanh hơn thâm nhập bộ nhớ trong. + Các chương trình dịch dùng các thanh ghi đa Nguyễn Thị Mỹ Dung – Khoa CNTT 13 dụng có hiệu quả hơn. Thị Mỹ Dung – Khoa CNTT Nguyễn 14 Bảng so sánh giữa các kiểu định vị sá giữ cá kiể đị vị Các kiểu định vị cơ bản (tt) kiể đị vị bả 3/ Kiểu kiến trúc thanh ghi đa dụng  Ưu điểm: - Việc tạo các mã máy đơn giản. - Chiều dài mã máy cố định. - Ít thâm nhập bộ nhớ.  Nhược điểm: - Số lượng thanh ghi bị giới hạn. - Việc các thanh ghi có cùng độ dài dẫn đến không hiệu quả trong xử lý chuỗi cũng như các lệnh có cấu trúc. - Khó khăn trong việc lưu và phục hồi các trạng thái khi có các lời gọi thủ tục hay chuyển đổi ngữ cảnh. Nguyễn Thị Mỹ Dung – Khoa CNTT 15 Nguyễn Thị Mỹ Dung – Khoa CNTT 16 Chương 2: Kiến trúc phần mềm bộ xử lý 4
  5. Kiến trúc máy tính & Hợp ngữ Kiến trúc thanh ghi đa dụng (tt) Kiế trú dụ Tậ lệ IV. Tập lệnh  Một số kiểu định vị cho kiến trúc thanh ghi đa 1. Lệnh máy trong máy tính đa năng dụng: 2. Các định dạng lệnh - Thanh ghi 3. Phân loại các lệnh - Tức thì 4. Các thanh ghi và lệnh máy của VXL 80x86 - Trực tiếp 5. Các chế độ địa chỉ của VXL họ 80x86 - Gián tiếp (thanh ghi hoặc bộ nhớ hoặc thanh ghi + Độ dời hoặc thanh ghi + thanh ghi hoặc Reg nền + Reg chỉ số + độ dời ) - Tự tăng - Tự giảm Nguyễn Thị Mỹ Dung – Khoa CNTT 17 Nguyễn Thị Mỹ Dung – Khoa CNTT 18 1. Lệnh máy bên trong máy tính đa năng Lệ má má tí 2. Các định dạng lệnh Cá đị dạ lệ Mỗi máy tính có đặc điểm lệnh riêng của nó. - Mã lệnh: là một nhóm các bit, cho máy tính thực - Dạng lệnh không có địa chỉ hiện một thao tác nào đó (cộng, trừ, nhân, chia, dịch Mã toán bit,…) - Dạng lệnh có 1 địa chỉ - Toán hạng: mỗi toán hạng có địa chỉ nhất định, toán Mã toán Địa chỉ (toán hạng) hạng có thể là thanh ghi hay bộ nhớ (toán hạng tức thì, toán hạng bộ nhớ, địa chỉ trực tiếp, địa chỉ gián - Dạng lệnh có 2 địa chỉ tiếp). Mã toán Địa chỉ 1 Địa chỉ 2 Nguyễn Thị Mỹ Dung – Khoa CNTT 19 Nguyễn Thị Mỹ Dung – Khoa CNTT 20 Chương 2: Kiến trúc phần mềm bộ xử lý 5
  6. Kiến trúc máy tính & Hợp ngữ Các định dạng lệnh (2) đị dạ lệ Các định dạng lệnh (3) đị dạ lệ Các lệnh thường được thiết kế theo tiêu chuẩn: Opcode d w Mod Reg R/M Disp Data - Lệnh càng ngắn càng tốt: lệnh ngắn sẽ chiếm 6 1 1 2 3 3 0/8/16 0/8/16 ít không gian. Lệnh ngắn cho phép bộ xử lý truyền - Opcode : số bit thay đổi tuỳ theo từng lệnh được nhiều lệnh hơn trong một đơn vị thời gian. D (0 hoặc 1): - Cần đủ không gian trong lệnh để diễn tả tất cả + d=1 toán hạng đến là toán hạng thanh ghi các thao tác mong muốn. còn toán hạng nguồn có thể là toán hạng thanh ghi hay toán hạng bộ nhớ tuỳ theo vùng MOD, trường - Số bít trong trường địa chỉ cần được xem xét hợp này vùng reg dùng cho toán hạng đến. lựa chọn. + d=0 toán hạng đến là toán hạng bộ nhớ còn Mô tả định dạng lệnh của 80x86 toán hạng nguồn có thể là toán hạng thanh ghi hay toán hạng bộ nhớ tuỳ theo vùng MOD, vùng reg dùng cho toán hạng nguồn. Nguyễn Thị Mỹ Dung – Khoa CNTT 21 Nguyễn Thị Mỹ Dung – Khoa CNTT 22 Các định dạng lệnh (4) đị dạ lệ Các định dạng lệnh (5) đị dạ lệ - W (0 hoặc 1): w=1 là từ; w=0 là byte Bảng mã hoá vùng Reg, Mod, R/M - Reg: xác định thanh ghi nào được dùng trong câu lệnh. (Tham khảo tài liệu KTMT trang 214 – 215) - Mod: Xác định kiểu toán hạng còn lại. - Vùng Disp: những byte này biểu thị offset hoặc độ + Mod = 00 nếu R/M = 110 thì toán hạng bộ nhớ trực tiếp được dùng trong câu lệnh; nếu R/M khác 110 thì dời (8bit hay 16 bit) trong toán hạng bộ nhớ toán hạng bộ nhớ gián tiếp không có độ dời. - Vùng Data: biểu thị giá trị trực hằng (8 bit hay 16 bit) + Mod = 01: toán hạng bộ nhớ gián tiếp có thêm độ dùng trong câu lệnh. dời 8bit được dùng. Chú ý: để xác định mã máy tương ứng với + Mod = 10: toán hạng bộ nhớ gián tiếp có thêm độ dạng lệnh gợi nhớ phải tham khảo tài liệu để định dời 16bit được dùng. Opcode của lệnh (tham khảo tài liệu Microsoft Macro + Mod = 11: cả 2 toán hạng nguồn và đích đều là toán hạng thanh ghi. Assembler 5.0). Nguyễn Thị Mỹ Dung – Khoa CNTT 23 Nguyễn Thị Mỹ Dung – Khoa CNTT 24 Chương 2: Kiến trúc phần mềm bộ xử lý 6
  7. Kiến trúc máy tính & Hợp ngữ Định dạng đối với lệnh MOV dest, source dạ đố vớ lệ Định dạng đối với lệnh MOV (2) dạ đố vớ lệ - Toán hạng thanh ghi với toán hạng bộ nhớ - Toán hạng thanh ghi đoạn với toán hạng bộ hay thanh ghi. nhớ 100010 d w mod reg r/m disp (0 hay 2 byte) 100011 d 0 mod sreg r/m disp (0 hay 2 byte) - Toán hạng trực hằng với thanh ghi Chú ý: Nếu một toán hạng bộ nhớ có ghi rõ 1011 w reg data (1 hay 2 byte) thanh ghi đoạn trong câu lệnh, thì ta phải thêm 1 byte - Toán hạng trực hằng với toán hạng bộ nhớ biểu thị thanh ghi đoạn ở trước mã máy. 1100011 w mod 000 r/m disp (0 hay 2 byte) data (1 hay 2 byte) - Toán hạng thanh ghi tích lũy với toán hạng bộ nhớ trực tiếp 101000 d w disp (2 byte) Nguyễn Thị Mỹ Dung – Khoa CNTT 25 Nguyễn Thị Mỹ Dung – Khoa CNTT 26 Các định dạng lệnh (6) đị dạ lệ Các định dạng lệnh (7) đị dạ lệ Ví dụ: b) MOV 0F3H[SI], CL Mã hoá lệnh: 1 0 0 0 1 0 0 0 01 001 100 11110011 a) MOV CL, [BX]; b) MOV 0F3H[SI], CL __: mã lệnh; đỏ: chuyển từ thanh ghi;  Chuyển mã máy (nhị phân) Xanh: chuyển 1 bit; vàng: ô nhớ có địa chỉ DS:SI a) MOV CL, [BX] Tím: các bít mã CL; trắng: d8 = F3H 1 0 0 0 1 0 1 0 00 001 111 __: mã lệnh; đỏ: chuyển tới thanh ghi; Xanh: chuyển 1 bit; vàng: ô nhớ có địa chỉ DS:BX Tím: các bít mã CL; Nguyễn Thị Mỹ Dung – Khoa CNTT 27 Nguyễn Thị Mỹ Dung – Khoa CNTT 28 Chương 2: Kiến trúc phần mềm bộ xử lý 7
  8. Kiến trúc máy tính & Hợp ngữ loạ cá lệ 3. Phân loại các lệnh lệ chuyể dữ liệ Các lệnh di chuyển dữ liệu (2) a/ Các lệnh di chuyển dữ liệu  MOV Dest, Source ; di chuyển số liệu từ Source Sao chép dữ liệu từ nơi này đến nơi khác. Sao  Dest chép dữ liệu có thể tạo ra một đối tượng mới có mẫu ; Source có thể là Reg, Mem, Immed bít giống mẫu ban đầu. Dữ liệu được lưu trữ nhiều ; Dest có thể là Reg, Mem nơi khác nhau tuỳ vào cách các từ được truy xuất Chức năng: chuyển nội dung toán hạng source thường là ở bộ nhớ hoặc ở thanh ghi hoặc ở ngăn vào toán hạng dest. Chiều dài dữ liệu có thể là 8 bit xếp. Việc di chuyển dữ liệu được thực hiện cho đến hay 16 bit. khi có dấu hiệu kết thúc vùng dữ liệu được tìm thấy TH1: chuyển dữ liệu giữa hai thanh ghi trong chính dữ liệu. MOV AL, AH MOV BX, SI Nguyễn Thị Mỹ Dung – Khoa CNTT 29 Nguyễn Thị Mỹ Dung – Khoa CNTT 30 Nhó lệ chuyể số liệ Nhóm lệnh di chuyển số liệu (2) Nhó lệ chuyể số liệ Nhóm lệnh di chuyển số liệu (3) TH2: Chuyển dữ liệu giữa thanh ghi và bộ nhớ TH3: chuyển dữ liệu giữa trực hằng và thanh VD: ghi, bộ nhớ. MOV [BX], AL VD: MOV DS:[150h], AL MOV AL, 0B5h MOV ES:[SI], DL MOV BH, 10001000b MOV AL, [BX] MOV [BX], 10 MOV AH, DS:[10h] MOV AX, B800h MOV [BX], AX MOV [SI], 2000 MOV Word PTR [SI], AX MOV word ptr [BX],5AB7h MOV CS:[SI+BX], DX Nguyễn Thị Mỹ Dung – Khoa CNTT 31 Nguyễn Thị Mỹ Dung – Khoa CNTT 32 Chương 2: Kiến trúc phần mềm bộ xử lý 8
  9. Kiến trúc máy tính & Hợp ngữ Nhó lệ chuyể số liệ Nhóm lệnh di chuyển số liệu (4) Nhó lệ chuyể số liệ Nhóm lệnh di chuyển số liệu (5) TH4: chuyển dữ liệu giữa thanh ghi đoạn và Chú ý: thanh ghi, bộ nhớ. - Lệnh Mov không ảnh hưởng đến thanh ghi VD: cờ hiệu. MOV DS, AX - Không thể chuyển đổi dữ liệu trực tiếp giữa 2 toán hạng bộ nhớ với nhau, muốn chuyển ta phải MOV ES, [BX+SI] dùng 1 thanh ghi trung gian. MOV AX, CS VD: MOV [BX + DI], ES Chuyển dữ liệu 16bit từ mem1 vào mem2 MOV AX, mem1 MOV mem2, AX Nguyễn Thị Mỹ Dung – Khoa CNTT 33 Nguyễn Thị Mỹ Dung – Khoa CNTT 34 Chú ý (2) Chú Nhó lệ chuyể số liệ Nhóm lệnh di chuyển số liệu (6) - Không thể chuyển trực tiếp một trực hằng vào  PUSH source ; một thanh ghi đoạn, muốn chuyển ta phải dùng một Chức năng: dùng để cất một trực hằng hay nội thanh ghi trung gian. dung một thanh ghi 16bit hay nội dung toán hạng 16bit vào Stack. VD: Lệnh PUSH làm giảm thanh ghi con trỏ ngăn xếp Chuyển giá trị B800h vào thanh ghi DS, ta (SP) xuống 2 đơn vị và chuyển nội dung 16bit của toán phải dùng thanh ghi trung gian 16bit. hạng nguồn vào trên đỉnh Stack. Đỉnh Stack được xác MOV AX, 0B800h định bởi cặp thanh ghi SS:SP. MOV DS, AX Ví dụ: - Không thể chuyển trực tiếp giữa hai thanh ghi PUSH 31 đoạn. PUSH CS - Không thể dùng thanh ghi đoạn CS làm toán PUSH SP hạng dest trong lệnh MOV. PUSH [BX + SI] Nguyễn Thị Mỹ Dung – Khoa CNTT 35 Nguyễn Thị Mỹ Dung – Khoa CNTT 36 Chương 2: Kiến trúc phần mềm bộ xử lý 9
  10. Kiến trúc máy tính & Hợp ngữ Nhó lệ chuyể số liệ Nhóm lệnh di chuyển số liệu (7) loạ lệ Phân loại lệnh (2)  POP dest b/ Các lệnh tính toán 2 ngôi Chức năng: Ngược với lệnh PUSH, POP Là những thao tác kết hợp 2 toán hạng để sinh dùng để lấy dữ liệu 16bit đang nằm trên đỉnh Stack. ra một kết quả. Một số các phép toán thông dụng: Lệnh POP tăng thanh ghi SP 2 đơn vị để chỉ cộng, trừ, nhân, chia trên các số nguyên. Ngoài ra đến đỉnh mới của Stack. còn có các phép toán logic như: AND, OR, XOR cho kết quả là TRUE hoặc FALSE. VD: POP SI POP CS POP SP POP [BX + SI] Nguyễn Thị Mỹ Dung – Khoa CNTT 37 Nguyễn Thị Mỹ Dung – Khoa CNTT 38 lệ Các lệnh tính toán (2) tí toá lệ Các lệnh tính toán (3) tí toá  Nhóm lệnh xử lý phép cộng + TH2: cộng giữa trực hằng và thanh ghi hay - ADD dest, source bộ nhớ Toán hạng source có thể: Reg, Mem, Immed VD: ADD AL, B5h Toán hạng dest có thể: Reg, Mem ADD BYTE PTR DS:[150h], 10h + TH1: cộng giữa thanh ghi, thanh ghi, bộ nhớ ADD AX, B800h - Cộng giữa 2 thanh ghi ADD WORD PTR [BX], 5AB7h VD: ADD AL, AH Chú ý: ADD AX, BX - Không thể cộng trực tiếp thanh ghi đoạn - Cộng thanh ghi và bộ nhớ - Lệnh ADD ảnh hưởng đến 6 cờ AF, CF, OF, VD: ADD [BX], AX PF, SF, ZF (tham khảo chi tiết trong TLTK) Nguyễn Thị Mỹ Dung – Khoa CNTT 39 Nguyễn Thị Mỹ Dung – Khoa CNTT 40 Chương 2: Kiến trúc phần mềm bộ xử lý 10
  11. Kiến trúc máy tính & Hợp ngữ lệ Các lệnh tính toán (4) tí toá lệ Các lệnh tính toán (5) tí toá - ADC dest, source  Nhóm lệnh xử lý phép trừ Chức năng giống lệnh ADD, nhưng thực hiện - SUB dest, source phép cộng có nhớ, lệnh ADD cộng nội dung của toán Toán hạng source có thể: Reg, Mem, Immed hạng source và toán hạng dest rồi cộng thêm 1 nếu Toán hạng dest có thể: Reg, Mem cờ CF bật 1, kết quả lưu vào toán hạng dest. Lệnh + TH1: trừ giữa 2 thanh ghi, thanh ghi bộ nhớ ADC thường dùng để cộng các số lớn hơn 16bit. - Trừ giữa 2 thanh ghi - INC dest (Reg, Mem) VD: SUB AL, AH Chức năng: tăng toán hạng dest lên 1 SUB BL, CL VD: INC AL SUB AX, CX INC CX - Trừ bộ nhớ và thanh ghi Nguyễn Thị Mỹ Dung – Khoa CNTT 41 Nguyễn Thị Mỹ Dung – Khoa CNTT 42 lệ Các lệnh tính toán (6) tí toá lệ Các lệnh tính toán (7) tí toá VD: SUB [BX], AL + TH2: Trừ giữa hằng và thanh ghi hay bộ nhớ VD: SUB AL, B5h SUB DS:[0150h], AL SUB [BX], 15h SUB ES:[SI], DL - DEC dest (Reg, Mem) SUB AL, [BX] Chức năng: giảm toán hạng dest xuống 1 SUB [BX], AX VD: DEC CX - NEG dest (Reg, Mem) SUB Word PTR [DI], AX Chức năng: Đảo dấu toán hạng dest. SUB CS:[SI+BX], DX Lệnh này có thể được ứng dụng để thực hiện phép trừ một trực hằng với toán hạng (Reg, Mem). SUB AX, [SI] VD: Lấy 100 trừ nội dung AH. SUB AL, 100 NEG AL Nguyễn Thị Mỹ Dung – Khoa CNTT 43 Nguyễn Thị Mỹ Dung – Khoa CNTT 44 Chương 2: Kiến trúc phần mềm bộ xử lý 11
  12. Kiến trúc máy tính & Hợp ngữ lệ Các lệnh tính toán (8) tí toá lệ Các lệnh tính toán (9) tí toá  Nhóm lệnh xử lý phép nhân VD1: - MUL source (Reg, Mem) MUL BH ;AX  AL*BH Chức năng: thực hiện phép nhân không dấu MUL BX ;DX:AX  AX*BX + TH1: source là toán hạng 8bit thì lệnh MUL VD2: nhân nội dung của source với thanh ghi AL, kết quả 16bit được lưu trong AX. Nhân 2 số 212 và 45 + TH2: source là toán hạng 16bit thì lệnh MUL MOV AL, D4h nhân nội dung của source với thanh ghi AX, kết quả MOV BL, 2Dh 32bit được lưu trong cặp DX:AX, phần thấp được chứa trong AX, phần cao chứa trong DX MUL BL ; kết quả lưu trong AX Chú ý: lệnh này chỉ ảnh hưởng đến cờ CF, OF Nguyễn Thị Mỹ Dung – Khoa CNTT 45 Nguyễn Thị Mỹ Dung – Khoa CNTT 46 lệ Các lệnh tính toán (10) tí toá lệ Các lệnh tính toán (11) tí toá  Nhóm lệnh xử lý phép chia VD1: DIV BX ; AX  DX:AX DIV BX - DIV source (Reg, Mem) ;DX  DX:AX MOD BX Chức năng: thực hiện phép chia không dấu, lấy nội dung của thanh ghi AX hay cặp thanh ghi DX:AX chia VD2: Chia số 230 cho 23 cho toán hạng source. MOV AX, E6h Nếu source là toán hạng dạng byte thì lệnh DIV lấy MOV BL, 17h nội dung của thanh ghi AX chia cho toán hạng source, thương số và số dư của phép chia tương ứng được lưu DIV BL ; thương số 10 lưu trong AL trong thanh ghi AL và AH ; dư số 0 lưu trong AH Nếu source là toán hạng dạng word thì lệnh DIV lấy Chú ý: Lệnh DIV không ảnh hưởng đến các cờ hiệu nội dung của thanh ghi DX:AX chia cho toán hạng source, thương số và số dư của phép chia tương ứng được lưu trong thanh ghi AX, DX Nguyễn Thị Mỹ Dung – Khoa CNTT 47 Nguyễn Thị Mỹ Dung – Khoa CNTT 48 Chương 2: Kiến trúc phần mềm bộ xử lý 12
  13. Kiến trúc máy tính & Hợp ngữ lệ Các lệnh tính toán (12) tí toá lệ Các lệnh tính toán (13) tí toá * Nhóm các lệnh thao tác trên bit  OR dest, source  AND dest, source Toán hạng source có thể là Reg, Mem, Immed. Toán hạng source có thể là Reg, Mem, Immed. Toán hạng dest có thể là Reg, Mem. Toán hạng dest có thể là Reg, Mem. Chức năng: Lấy nội dung của toán hạng source Chức năng: Lấy nội dung của toán hạng source thực hiện phép toán logic OR từng bit với nội dung thực hiện phép toán logic AND từng bit với nội dung của toán hạng dest. Kết quả lưu vào dest. của toán hạng dest. Kết quả lưu vào dest. VD: AL = 1001 1100, BL = 1000 0011 VD: AL = 1001 1100, BL = 0111 0011 Thực hiện lệnh OR AL, BL Thực hiện lệnh AND AL, BL Kết quả AL = 1001 1111 Kết quả AL = 0001 0000 Nguyễn Thị Mỹ Dung – Khoa CNTT 49 Nguyễn Thị Mỹ Dung – Khoa CNTT 50 lệ Các lệnh tính toán (14) tí toá loạ lệ Phân loại lệnh (3)  XOR dest, source c/ Các lệnh tính toán một ngôi Toán hạng source có thể là Reg, Mem, Immed. Các thao tác một ngôi có một toán hạng và tạo Toán hạng dest có thể là Reg, Mem. ra một kết quả. Đó là có phép toán dịch và quay. Chức năng: Lấy nội dung của toán hạng source - Dịch là thao tác trong đó các bit được chuyển thực hiện phép toán logic XOR từng bit với nội dung sang trái hoặc chuyển sang phải, các bít được dịch ra của toán hạng dest. Kết quả lưu vào dest. khỏi một đầu của từ sẽ bị mất. VD: AL = 1001 1100, BL = 1000 0011 - Quay là thao tác dịch trong đó bit được dịch ra Thực hiện lệnh XOR AL, BL khỏi đầu này sẽ xuất hiện ở đầu bên kia. Kết quả AL = 0001 1111 Nguyễn Thị Mỹ Dung – Khoa CNTT 51 Nguyễn Thị Mỹ Dung – Khoa CNTT 52 Chương 2: Kiến trúc phần mềm bộ xử lý 13
  14. Kiến trúc máy tính & Hợp ngữ lệ toá mộ Các lệnh tính toán một ngôi (2) tí lệ toá mộ Các lệnh tính toán một ngôi (3) tí  SHL dest, 1 Chú ý: Chuyển mỗi bit của toán hạng dest sang trái - Nếu toán hạng dest chứa một số nguyên một bit, bit cao của toán hạng dest được đẩy vào cờ không dấu thì lệnh SHL sẽ nhân nội dung toán hạng CF, bit thấp thành 0. dest với 2. - Ta không thể dịch chuyển nhiều hơn một bit Ví dụ: AL = 1001 0110 trực tiếp bằng lệnh: Khi sử dụng lệnh: SHL AL, 1 SHL dest, n (n > 1) Khi đó: AL = 0010 1100 (CF: 1) Muốn thực hiện được, phải sử dụng thanh ghi. Hoặc: SHL dest, CL VD: Cho AX = 1011 0010, thực hiện dịch trái 5 Tương đương với lệnh SHL dest, 1 n lần với n lần bằng lệnh SHL và cho biết kết quả của AX sau khi là nội dung của CL. sử dụng lệnh SHL. Nguyễn Thị Mỹ Dung – Khoa CNTT 53 Nguyễn Thị Mỹ Dung – Khoa CNTT 54 lệ toá mộ Các lệnh tính toán một ngôi (4) tí lệ toá mộ Các lệnh tính toán một ngôi (5) tí  SHR dest, 1 Chú ý: Chuyển mỗi bit của toán hạng dest sang phải - Nếu toán hạng dest chứa một số nguyên một bit, bit thấp của toán hạng dest được đẩy vào cờ không dấu thì lệnh SHR sẽ chia nội dung toán hạng CF, bit cao thành 0. dest cho 2. - Ta không thể dịch chuyển nhiều hơn một bit Ví dụ: AL = 1001 0110 trực tiếp bằng lệnh: Khi sử dụng lệnh: SHR AL, 1 SHR dest, n (n > 1) Khi đó: AL = 0100 1011 (CF: 0) Muốn thực hiện được, phải sử dụng thanh ghi. Hoặc: SHR dest, CL VD: Cho AX = 1100 0011, thực hiện dịch phải 7 Tương đương với lệnh SHR dest, 1 n lần với n lần bằng lệnh SHR và cho biết kết quả của AX sau là nội dung của CL. khi sử dụng lệnh SHR. Nguyễn Thị Mỹ Dung – Khoa CNTT 55 Nguyễn Thị Mỹ Dung – Khoa CNTT 56 Chương 2: Kiến trúc phần mềm bộ xử lý 14
  15. Kiến trúc máy tính & Hợp ngữ lệ toá mộ Các lệnh tính toán một ngôi (6) tí lệ toá mộ Các lệnh tính toán một ngôi (7) tí  ROL dest, 1  ROR dest, 1 Quay nội dung toán hạng dest sang trái 1 bit. Gần giống như SHR tuy nhiên có sự khác biệt Giống như SHL tuy nhiên có sự khác biệt là bit cao là bit thấp nhất được chuyển thành bit cao nhất và nhất được chuyển thành bit thấp nhất và các bit còn các bit còn lại đều dịch sang phải một bit. Bit thấp lại đều dịch sang trái một bit. Bit cao nhất đồng thời nhất đồng thời cũng được chuyển vào CF. cũng được chuyển vào CF. Ví dụ: AL = 1001 0110 Ví dụ: AL = 1001 0110 Khi sử dụng lệnh: ROR AL, 1 Khi sử dụng lệnh:ROL AL, 1 Khi đó: AL = 0100 1011 (CF: 0) Khi đó: AL = 0010 1101 (CF: 1) Hoặc ROR dest, CL Hoặc ROL dest, CL Trường hợp này dành cho quay vòng nhiều Trường hợp này dùng cho quay nhiều hơn 1 hơn 1 bit. bit. Nguyễn Thị Mỹ Dung – Khoa CNTT 57 Nguyễn Thị Mỹ Dung – Khoa CNTT 58 lệ toá mộ Các lệnh tính toán một ngôi (8) tí loạ lệ Phân loại lệnh (4)  NOT dest d/ Các lệnh so sánh và lệnh nhảy có điều kiện Toán hạng dest có thể là Reg, Mem. Lệnh này kiểm tra điều kiện nào đó và nhảy tới Chức năng: Đảo ngược từng bit nội dung của một địa chỉ nhớ cụ thể nếu điều kiện được thoả mãn. toán hạng dest. Lệnh nhảy không điều kiện là trường hợp đặc VD: AL = 1001 1100 biệt của lệnh nhảy có điều kiện trong đó điều kiện Thực hiện lệnh NOT AL luôn được thoả mãn. Kết quả AL = 0110 0011 Nguyễn Thị Mỹ Dung – Khoa CNTT 59 Nguyễn Thị Mỹ Dung – Khoa CNTT 60 Chương 2: Kiến trúc phần mềm bộ xử lý 15
  16. Kiến trúc máy tính & Hợp ngữ lệ và nhả Các lệnh so sánh và nhảy (2) sá Các lệnh nhảy có điều kiện (2) lệ nhả có điề kiệ  Lệnh so sánh JG: Nhảy nếu lớn hơn (áp dụng cho số không dấu) CMP Left, Right JL: Nhảy nếu bé hơn (áp dụng cho số không dấu) - Left: Có thể là thanh ghi hay bộ nhớ. JE: Nhảy nếu bằng nhau - Right: Có thể là thanh ghi hay bộ nhớ hay trực JA: Nhảy nếu lớn hơn (áp dụng cho số có dấu) hằng. JB: Nhảy nếu bé hơn (áp dụng cho số có dấu) - CMP so sánh nội dung toán hạng Left và Right. …. Ví dụ:  Các lệnh nhảy không điều kiện So sánh 2 số có dấu dạng Word A, B: JMP [SHORT/FAR] - Nếu A > B thì AX := AX – BX  Các lệnh nhảy có điều kiện - Nếu A < B thì BX := BX – AX J - Nếu A = B thì AX := AX + 1 và BX := BX – 1 Ta có một số lệnh nhảy có đk như sau: Nguyễn Thị Mỹ Dung – Khoa CNTT 61 Nguyễn Thị Mỹ Dung – Khoa CNTT 62 Giải ví dụ Giả ví loạ lệ Phân loại lệnh (5) MOV AX, A Lab2: e/ Các lệnh gọi thủ tục MOV BX, B SUB BX, AX Thủ tục là một nhóm lệnh thực hiện một công CMP AX, BX MOV B, BX việc nào đó và có thể được gọi từ nhiều nơi trong JG Lab1 Lab3: chương trình. Khi thủ tục hoàn thành công việc, thủ JL Lab2 MOV AH, 4Ch tục phải trở về câu lệnh ngay sau lệnh gọi. Địa chỉ trở INC AX INT 21h về phải được truyền tới thủ tục. Địa chỉ trở về đặt ở: bộ nhớ, thanh ghi hoặc ngăn xếp. DEC BX Thủ tục có thể gọi thủ tục khác. Thủ tục gọi JMP SHORT Lab3 chính nó được gọi là đệ quy. Thủ tục đệ quy cất địa Lab1: chỉ trở về vào ngăn xếp, khi hoàn tất thủ tục lấy địa SUB AX, BX chỉ trở về ra khỏi ngăn xếp và chuyển địa chỉ này vào MOV A, AX thanh ghi bộ đếm chương trình. JMP SHORT Lab3 Nguyễn Thị Mỹ Dung – Khoa CNTT 63 Nguyễn Thị Mỹ Dung – Khoa CNTT 64 Chương 2: Kiến trúc phần mềm bộ xử lý 16
  17. Kiến trúc máy tính & Hợp ngữ Các lệnh gọi thủ tục (2) lệ gọ thủ loạ lệ Phân loại lệnh (6)  Các lệnh gọi thủ tục f/ Các lệnh điều khiển vòng lặp CALL Phương pháp này khởi động bộ đếm ở ngoài CALL/ vòng lặp và sau đó bắt đầu thực hiện ngay mã vòng  Các lệnh kết thúc chương trình con lặp. Lệnh cuối cùng của vòng lặp sẽ cập nhật bộ đếm RET hoặc RETN hoặc RETF và nếu điều kiện kết thúc chưa thoả mãn sẽ quay trở  Khai báo Chương trình con lại lệnh đầu tiên của vòng lặp. Ngược lại, vòng lặp kết PROC [NEAR/FAR] thúc sẽ thực hiện lệnh đầu tiên ngoài vòng lặp. …… VD: LOOP RET ENDP Nguyễn Thị Mỹ Dung – Khoa CNTT 65 Nguyễn Thị Mỹ Dung – Khoa CNTT 66 loạ lệ Phân loại lệnh (7) 4. Các thanh ghi và lệnh máy của VXL 8086 Cá và má củ g/ Các lệnh vào/ra (IN/OUT) a. Một số loại địa chỉ Có 4 phương pháp khác nhau được thực hiện - Địa chỉ vật lý: là đại lượng chiều dài 20 bit xác với các lệnh vào/ra: định vị trí của một ô nhớ trong 1MB bộ nhớ trong. - Vào ra theo chương trình theo cách hỏi vòng. - Địa chỉ đoạn: là đại lượng 16bit dùng để xác định địa chỉ bắt đầu của một đoạn trong bộ nhớ 1MB. - Vào ra theo ngắt. - Địa chỉ offset: là đại lượng 16bit dùng để xác - Vào ra bằng truy cập bộ nhớ trực tiếp. định khoảng cách từ ô nhớ đang xét trong đoạn đến - Vào ra sử dụng các kênh dữ liệu (được sử vị trí bắt đầu trong đoạn. dụng trong các máy tính lớn). - Địa chỉ logic gồm 2 phần: địa chỉ đoạn và địa chỉ offset của một ô nhớ. Địa chỉ vật lý = Địa chỉ đoạn x 16 + Địa chỉ offset Nguyễn Thị Mỹ Dung – Khoa CNTT 67 Nguyễn Thị Mỹ Dung – Khoa CNTT 68 Chương 2: Kiến trúc phần mềm bộ xử lý 17
  18. Kiến trúc máy tính & Hợp ngữ củ Các thanh ghi của BXL 8086 (2) củ Các thanh ghi của BXL 8086 (3) b/ Các thanh ghi dữ liệu c/ Các thanh ghi đoạn - Thanh ghi AX (accumulator register): thường - Thanh ghi đoạn mã CS (Code Segment register): được dùng để chứa các kết quả phép tính số học. dùng để chứa địa chỉ đoạn của đoạn mã lệnh hiện hành trong - Thanh ghi cơ sở BX (base register): dùng để chỉ bộ nhớ. địa chỉ cơ sở của đoạn nhớ trong bộ nhớ. - Thanh ghi đoạn dữ liệu DS (Data segment Register): - Thanh ghi cơ sở CX (base register): thường dùng dùng để chứa địa chỉ đoạn dữ liệu hiện hành trong bộ nhớ, để khai báo số lần một thao tác nào đó phải được thực nghĩa là nơi chứa các biến, các hằng của chương trình. hiện trong vòng lặp, phép dịch, phép quay… giá trị của CX giảm đi với một thao tác. - Thanh ghi ngăn xếp SS (Stack segment Register): chứa địa chỉ đoạn của đoạn ngăn xếp trong bộ nhớ. - Thanh ghi số liệu DX (Data register): dùng để lưu trữ số liệu dùng làm thông số chuyển giao cho một - Thanh ghi đoạn mở rộng ES (extra segment Register): thường trình. DX là thanh ghi duy nhất dùng cho việc truy nếu một chương trình cần truy nhập đến đoạn dữ liệu thứ hai nhập các giá trị vào/ra trên 255 (FFh) và trong các thao thì phải sử dụng thanh ghi ES. Ngoài ra, ES thường dùng để tác nhân, chia. lưu trữ dữ liệu của chuỗi (string). Nguyễn Thị Mỹ Dung – Khoa CNTT 69 Nguyễn Thị Mỹ Dung – Khoa CNTT 70 củ Các thanh ghi của BXL 8086 (4) củ Các thanh ghi của BXL 8086 (5) d/ Các thanh ghi con trỏ và chỉ số d/ Các thanh ghi cờ - Thanh ghi con trỏ lệnh IP (Instruction Pointer): dùng i) 6 bit mô tả các trạng thái để lưu trữ địa chỉ của lệnh kế tiếp sẽ được chạy trong đoạn chương trình hiện tại. - Cờ nhớ CF (Carry): được đặt 1 khi có nhớ. - Thanh ghi con trỏ ngăn xếp SP (Stack Pointer - Cờ chẵn lẻ PF (Parity): được đặt 1 khi kết quả Register): chứa địa chỉ đỉnh ngăn xếp. phần byte thấp có chứa số chẳn. - Thanh ghi con trỏ cơ sở BP (Base Pointer Register): - Cờ phụ AF (auxiliary carry): được dùng như cờ tương tự như SP nhưng nó còn được sử dụng để truy nhập CF nhưng dùng cho thao tác với mã BCD. dữ liệu bên trong ngăn xếp và các đoạn khác. - Cờ ZF (Zero): được đặt nếu kết quả phép toán - Hai thanh ghi chỉ số (index register): được dùng để bằng 0. lưu trữ địa chỉ tương đối trong đoạn dữ liệu. Bao gồm: thanh - Cờ dấu SF (Sign): được đặt khi làm việc với số có ghi chỉ số nguồn SI (Source Index) và thanh ghi chỉ số đích DI dấu. (Destination Index). SI dùng với thanh ghi đoạn DS, DI dùng với ES. - Cờ tràn (overflow): được đặt nếu kết quả của phép toán quá lớn. Nguyễn Thị Mỹ Dung – Khoa CNTT 71 Nguyễn Thị Mỹ Dung – Khoa CNTT 72 Chương 2: Kiến trúc phần mềm bộ xử lý 18
  19. Kiến trúc máy tính & Hợp ngữ củ Các thanh ghi của BXL 8086 (6) 5. Các chế độ địa chỉ của VXL họ 80x86 Cá chế độ đị chỉ họ ii) 3 bit cờ hiệu điều khiển a/ Định địa chỉ tức thời - Cờ báo hướng DF (direction): xác định hướng Giá trị này là giá trị thật của toán hạng trong câu lệnh. của phép toán xử lý chuỗi. Nếu được đặt, chuỗi sẽ VD: Mov AL, 47h ;nạp số 47 vào thanh ghi AL. được xử lý địa chỉ cao tới địa chỉ thấp và ngược lại. b/ Định địa chỉ trực tiếp - Cờ ngắt IF (interrup enable): nếu được đặt, Địa chỉ toán hạng được viết trực tiếp trong câu CPU sẽ chấp nhận yêu cầu ngắt cứng IRQs đồng lệnh. Địa chỉ trực tiếp được đặt trong cặp dấu ngoặc thời sẽ phục vụ ngắt và ngược lại. vuông ([ ]). - Cờ TF (Trap): nếu được đặt, CPU sẽ phát ra VD: Mov AX, [47h] ; nạp nội dung ô nhớ có ngắt số 1 sau mỗi bước chương trình dùng cho việc địa chỉ là 47 vào thanh ghi AX. gỡ rối. Mov AL, DS:[100] ; chuyển nội dung ô nhớ có địa chỉ 100 trong đoạn chỉ bởi DS vào thanh ghi AL. Nguyễn Thị Mỹ Dung – Khoa CNTT 73 Nguyễn Thị Mỹ Dung – Khoa CNTT 74 Các chế độ địa chỉ của VXL họ 80x86 (2) chế độ đị chỉ họ Các chế độ địa chỉ của VXL họ 80x86 (3) chế độ đị chỉ họ c/ Định địa chỉ thanh ghi d/ Định địa chỉ gián tiếp Trong cách định địa chỉ này, thanh ghi được sử  Định vị gián tiếp thanh ghi dụng sẽ được chỉ rõ trong câu lệnh. Lúc này địa chỉ hiệu dụng (EA) là một trong các thanh ghi: BX, BP, SI, DI. Các thanh ghi được dùng trong phép định địa VD: ADD AX, DS:[BX] ; Cộng nội dung chỉ là: AH, BH, CH, DH, AL, BL, CL, DL, AX, BX, CX, thanh ghi AX với nội dung ô nhớ có địa chỉ là thanh ghi DX, SP, BP, SI, DI, CS, DS, ES, SS. BX trong đoạn chỉ bởi DS, kết quả lưu vào thanh ghi AX. VD:  Định vị cơ sở ADD AX, BX ;cộng thanh ghi BX vào AX và EA là tổng của độ dịch chuyển và nội dung của thanh ghi BX hoặc BP. lưu kết quả ở thanh ghi AX. VD: Mov AL, SS:[BP+20] ; chuyển nội dung Mov CL, AL ;copy nội dung thanh ghi AL của ô nhớ có địa chỉ là nội dung thanh ghi BP cộng thêm vào thanh ghi CL. độ dời 20 trong đoạn được chỉ bởi SS vào thanh ghi AL. Nguyễn Thị Mỹ Dung – Khoa CNTT 75 Nguyễn Thị Mỹ Dung – Khoa CNTT 76 Chương 2: Kiến trúc phần mềm bộ xử lý 19
  20. Kiến trúc máy tính & Hợp ngữ Các chế độ địa chỉ của VXL họ 80x86 (4) chế độ đị chỉ họ Các chế độ địa chỉ của VXL họ 80x86 (5) chế độ đị chỉ họ e/ Định địa chỉ chỉ số f/ Định địa chỉ ngăn xếp EA là tổng của độ dịch chuyển và nội dung của Ngăn xếp gồm các phần tử dữ liệu được lưu thanh ghi SI hoặc DI. Phép định vị này thường được trữ theo trật tự liên tiếp nhau. Phần tử đầu tiên sẽ cất dùng trong việc truy xuất dữ liệu kiểu mảng và trong vào đáy ngăn xếp, phần tử sau sẽ sắp ở đỉnh ngăn xếp. Mỗi ngăn xếp là một thanh ghi hoặc từ nhớ chứa việc xử lý chuỗi. địa chỉ của đỉnh ngăn xếp được gọi là con trỏ ngăn VD: Mov DS:[DI+300], AL ; chuyển nội dung xếp. thanh ghi AL vào ô nhớ có địa chỉ là nội dung thanh VD: ghi DI cộng thêm 300 trong đoạn được chỉ bởi DS. PUSH AX ;cất nội dung thanh ghi AX vào ngăn xếp. POP AX ;lấy giá trị thanh ghi AX từ nội dung đỉnh ngăn xếp. Nguyễn Thị Mỹ Dung – Khoa CNTT 77 Nguyễn Thị Mỹ Dung – Khoa CNTT 78 Kiể toá hạ và chiề dà toá hạ VI. Kiểu toán hạng và chiều dài toán hạng tá vụ VI. Mã tác vụ 1/ Kiểu toán hạng Trên tất cả các máy tính ta đều thấy 3 loại: tính Có bốn kiểu được dùng trong các hệ thống: toán số học và luận lý, di chuyển số liệu, chuyển đều - Kiểu địa chỉ. khiển. Loại tác vụ Các phép toán sử dụng - Kiểu dạng số: số nguyên, dấu chấm động,... Tính toán số học và luận lý Cộng, trừ, AND, OR - Kiểu dạng chuỗi ký tự: ASCII, EBIDEC,... Di chuyển số liệu Nạp hoặc lưu số liệu - Kiểu dữ liệu logic: các bit, cờ,... Chuyển điều khiển Nhảy, trở về, vòng lặp, CTC,... 2/ Chiều dài toán hạng Hệ thống Gọi HĐH, quản lý bộ nhớ ảo - Thông thường loại của toán hạng xác định luôn Tính toán dấu chấm động Cộng, nhân (dấu chấm động) chiều dài của nó. Tính số thập phân Cộng, nhân, đổi số sang ký tự - Toán hạng thường có chiều dài là byte (8 bit), Tính toán trên chuỗi ký tự Chuyển, so sánh, tìm kiếm nữa từ máy tính (16 bit), từ máy tính (32 bit), từ đôi máy tính (64 bit). Nguyễn Thị Mỹ Dung – Khoa CNTT 79 Đồ hoạ và đa phương Nguyễn Thị MỹNén, Khoa CNTT hình ảnh, âm thanh tiện Dung – giải nén, 80 Chương 2: Kiến trúc phần mềm bộ xử lý 20
Đồng bộ tài khoản