1. Trang chủ
  2. » Cao đẳng - Đại học

09 giao trinh CAU TRUC MAY TINH

130 290 2

Đ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 130
Dung lượng 1,99 MB

Nội dung

BỘ LAO ĐỘNG – THƯƠNG BINH VÀ XÃ HỘI TỔNG CỤC DẠY NGHỀ GIÁO TRÌNH Môn học: Cấu trúc máy tính NGHỀ: QUẢN TRỊ MẠNG TRÌNH ĐỘ: CAO ĐẲNG NGHỀ (Ban hành kèm theo Quyết định số: 120/QĐ-TCDN ngày 25/02/2013 Tổng cục trưởng Tổng cục dạy nghề) Hà Nội, năm 2013 TUYÊN BỐ BẢN QUYỀN: Tài liệu thuộc loại sách giáo trình nên nguồn thông tin phép dùng nguyên trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm MÃ TÀI LIỆU: MH09 LỜI GIỚI THIỆU Chìa khóa để hướng tới xã hội thông tin phát triển công nghệ thông tin (CNTT), nhiên để phát triển CNTT lâu dài bền vững, đào tạo kiến thức nhất, mà nội dung đào tạo phải trang bị sinh viên kiến thức tảng, sở tạo cho sinh viên phát huy tính sáng tạo, chủ động việc tiếp thu nghiên cứu, ứng dụng CNTT Do đó, trường đào tạo, sinh viên phải trang bị kiến thức tảng CNTT thể thiếu môn học Cấu trúc máy tính Hiện có nhiều giáo trình cấu trúc máy tính, nhiên hầu hết giáo trình đáp ứng đối tượng sinh viên đại học Giáo trình viết chủ yếu cho đối tượng sinh viên trường dạy nghề Giáo trình cung cấp cho sinh viên kiến thức cấu trúc máy tính, tổ chức hoạt động vi xử lý, thành phần phần hệ thống máy tính biện pháp kĩ thuật Cấu trúc máy tính môn học sở để sinh viên thực hành bảo trì hệ thống máy tính Giáo trình bao gồm chương: Chương 1: Tổng quan cấu trúc máy tính Chương 2: Kiến trúc phần mềm xử lý Chương 3: Tổ chức vi xử lý Chương 4: Hệ thống nhớ Chương 5: Thiết bị nhập xuất Chương 6: Các loại bus Chương 7: Ngôn ngữ assembly Trong chương có giới thiệu mục tiêu, nội dung câu hỏi tập Giáo trình xem nguồn tài liệu cung cấp thông tin cho giáo viên giảng dạy, đồng thời tài liệu học tập cho sinh viên Nhân ban biên soạn xin cảm ơn lãnh đạo đồng nghiệp trường Cao đẳng nghề Đà Nẵng tạo điều kiện giúp đỡ, cho ý kiến quý báu trình biên soạn giáo trình Vì thời gian có hạn lần giáo trình soạn thảo nên tránh khỏi thiếu sót Rất mong nhận ý kiến đóng góp bạn đọc Hà Nội, ngày 25 tháng 02 năm 2013 Tham gia biên soạn Chủ biên Trương Văn Hiền Nguyễn Xuân Diệu Nguyễn Thị Trường Giang MỤC LỤC LỜI GIỚI THIỆU .1 MỤC LỤC Vị trí: Môn học Cấu trúc máy tính bố trí học sau môn học chung, môn tin học đại cương, tin học văn phòng, kỹ thuật điện-điện tử học với mô đun lắp ráp cài đặt máy tính Tính chất: Là môn học kỹ thuật sở thuộc môn học đào tạo nghề Ý nghĩa vai trò: môn sở, cung cấp cho sinh viên kiến thức máy tính nghề Quản trị mạng .7 Trình bày lịch sử máy tính, hệ máy tính cách phân loại máy tính .7 Mô tả thành phần kiến trúc máy tính, tập lệnh Các kiểu kiến trúc máy tính: mô tả kiến trúc, kiểu định vị Trình bày cấu trúc xử lý trung tâm: tổ chức, chức nguyên lý hoạt động phận bên xử lý Mô tả diễn tiến thi hành lệnh mã máy số kỹ thuật xử lý thông tin: ống dẫn, siêu ống dẫn, siêu vô hướng Trình bày chức nguyên lý hoạt động loại nhớ .7 Trình bày phương pháp lưu trữ liệu nhớ Cài đặt chương trình lệnh điều khiển Assembly để thực toán theo yêu cầu Bố trí làm việc khoa học đảm bảo an toàn cho người phương tiện học tập CHƯƠNG 1:TỔNG QUAN VỀ CẤU TRÚC MÁY TÍNH .9 Trình bày lịch sử phát triển máy tính, thành tựu máy tính; Trình bày khái niệm thông tin; Mô tả kiến trúc máy tính; Biến đổi hệ thống số, bảng mã thông dụng dùng để biểu diễn ký tự 1.Các mốc lịch sử phát triển công nghệ máy tính 2.Thông tin mã hóa thông tin 13 2.1 Khái niệm thông tin lượng thông tin 14 2.2 Sự mã hóa thông tin 16 Đặc điểm hệ máy tính điện tử .23 3.1 Thế hệ thứ nhất: (1945-1955) 24 3.2 Thế hệ thứ hai: (1955-1965) 24 3.3 Thế hệ thứ ba: (1965-1980) .24 3.4 Thế hệ thứ tư: (1980- ) 25 Kiến trúc tổ chức máy tính 26 4.1 Khái niệm kiến trúc máy tính 26 4.2 Khái niệm tổ chức máy tính .27 Các mô hình kiến trúc máy tính .27 5.1 Mô hình kiến trúc Von Neumann 27 5.2 Mô hình kiến trúc Havard .29 CÂU HỎI VÀ BÀI TẬP 30 CHƯƠNG 2: KIẾN TRÚC TẬP LỆNH CỦA MÁY TÍNH 31 Trình bày thành phần máy vi tính ; 31 Trình bày tổng quát tập lệnh kiến trúc máy tính, kiểu định vị dùng kiến trúc, loại chiều dài toán hạng, tác vụ mà máy tính thực ; 31 Mô tả kiến trúc tập lệnh CISC RISC; .31 Thực thao tác an toàn với máy tính 31 Thành phần máy tính 31 1.1 Bộ xử lý trung tâm (CPU) 32 1.2 Bộ nhớ máy tính 33 1.3 Hệ thống vào - .35 1.4 Liên kết hệ thống .35 Kiến trúc tập lệnh CISC RISC .36 2.1 Kiến trúc tập lệnh CISC 37 2.2 Kiến trúc tập lệnh RISC 37 Mã lệnh 40 3.1 Khái niệm lệnh máy, mã lệnh 40 3.2 Tập lệnh .40 CÂU HỎI VÀ BÀI TẬP 48 CHƯƠNG 3: BỘ XỬ LÝ .48 Mô tả nhiệm vụ cách tổ chức đường liệu xử lý; 48 Trình bày nguyên tắc vận hành điều khiển mạch điện tử; 48 Trình bày nguyên tắc vận hành điều khiển vi chương trình; 48 Mô tả nhiệm vụ ngắt; 48 Mô tả tiến trình thi hành lệnh mã máy; 48 Trình bày số kỹ thuật xử lý thông tin: ống dẫn, siêu ống dẫn; 48 Thực thao tác an toàn với máy tính 48 1.Sơ đồ khối xử lý 48 Đường dẫn liệu 50 Mục tiêu: Mô tả nhiệm vụ cách tổ chức đường liệu xử lý .50 2.1 Các thành phần đường dẫn liệu 50 2.2 Nhiệm vụ đường dẫn liệu .51 Bộ điều khiển 52 3.1 Chức điều khiển 52 3.2 Các phương pháp thiết kế điều khiển 53 Tiến trình thực lệnh máy 54 4.1 Đọc lệnh 55 4.2 Giải mã lệnh .55 4.3 Nhận liệu .56 4.4 Thực lệnh 57 4.5 Lưu trữ kết 57 Kỹ thuật ống dẫn lệnh 57 Kỹ thuật siêu ống dẫn lệnh .59 Các chướng ngại ống dẫn lệnh 60 7.1 Chướng ngại cấu trúc 60 7.2 Chướng ngại liệu 61 7.3 Chướng ngại điều khiển 62 Các loại ngắt 64 8.1 Ngắt 64 8.2 Các loại ngắt .64 8.3 Hoạt động ngắt 65 CÂU HỎI VÀ BÀI TẬP 66 CHƯƠNG 4: BỘ NHỚ 66 Mô tả cấp nhớ; .66 Trình bày cách thức vận hành loại nhớ; 66 Đánh giá hiệu hoạt động loại nhớ; 66 Thực thao tác an toàn với máy tính 66 1.Phân loại nhớ 66 1.1 Phân loại nhớ theo phương pháp truy nhập 66 1.2.Phân loại theo đọc ghi nhớ 67 Các loại nhớ bán dẫn 67 2.1.ROM (Read Only Memory) 67 2.2.RAM (Random Access Memory) .68 Hệ thống nhớ phân cấp 72 Kết nối nhớ với xử lý 74 5.Các tổ chức cache 74 5.1 Cache (bộ nhớ đệm nhanh) 74 5.2 Tổ chức cache 75 5.3 Các phương pháp ánh xạ địa 76 CÂU HỎI VÀ BÀI TẬP 81 CHƯƠNG 5: THIẾT BỊ NHỚ NGOÀI 81 Mô tả cấu tạo vận hành loại thiết bị lưu trữ; .81 Trình bày phương pháp để đảm bảo an toàn liệu lưu trữ; 81 Phân biệt hệ thống kết nối bản, phận bên máy tính, cách giao tiếp thiết bị ngoại vi xử lý; .81 Thực thao tác an toàn với máy tính 81 1.Các thiết bị nhớ vật liệu từ .82 1.1 Đĩa từ (đĩa cứng, đĩa mềm) .82 1.2 Băng từ 85 2.Thiết bị nhớ quang học 85 2.1 CD-ROM, CD-R/W 86 2.2 DVD-ROM, DVD-R/W 87 2.3 Bluray .88 3.Các loại thẻ nhớ 88 An toàn liệu lưu trữ 89 4.1 RAID (Redundant Arrays of Inexpensive Disks) 89 4.2 Các loại RAID 89 CÂU HỎI VÀ BÀI TẬP 94 CHƯƠNG 6: CÁC LOẠI BUS .95 Phân biệt hệ thống Bus máy tính ; 95 Trình bày chức loại Bus; 95 Thực thao tác an toàn với máy tính 95 Định nghĩa bus, bus hệ thống 95 1.1 Định nghĩa bus 95 1.2 Bus hệ thống(System bus) 96 Bus đồng không đồng 96 2.1.Bus đồng 96 2.2 Bus không đồng 96 Hệ thống bus phân cấp 96 3.1 Bus nối xử lý với nhớ .97 Các loại bus sử dụng hệ thống vi xử lý 99 + Bus địa chỉ: 100 Chức : vận chuyển địa để xác định ngăn nhớ hay cổng vào- 100 + Bus liệu: 100 Chức năng: vận chuyển lệnh từ nhớ đến CPU, vận chuyển liệu CPU, môđun nhớ môđun vào-ra 100 + Bus điều khiển: .100 Chức năng: vận chuyển tín hiệu điều khiển .100 Các loại tín hiệu điều khiển: 100 Các tín hiệu phát từ CPU để điều khiển môđun nhớ môđun vào-ra .100 Các tín hiệu từ môđun nhớ hay môđun vào-ra gửi đến yêu cầu CPU 100 CÂU HỎI VÀ BÀI TẬP 100 Tại cần modul vào/ra? Chức modul vào/ra 100 Thông thường có loại bus? Tại phải có chuẩn cho bus vào ra? 100 Thế chủ nhân bus? Khi bus có nhiều chủ nhân làm để giải tranh chấp bus? 100 CHƯƠNG 7: NGÔN NGỮ ASSEMBLY 101 Phân biệt thành phần Assembly; .101 Trình bày cấu trúc chương trình Assembly; 101 Khai báo biến, toán tử, số hàm chế độ địa chỉ; 101 Vận dụng cú pháp lệnh điều khiển để xây dựng toán; 101 Sử dụng lệnh bản; 101 Trình bày ngăn xếp; 101 Viết chương trình cách truyền tham số cho chương trình .101 Tổng quan 101 2.Cấu trúc chương trình 102 Khai báo biến, toán tử, số hàm chế độ địa 102 2.1 Cấu trúc chương trình hợp ngữ 102 2.2 Cú pháp lệnh hợp ngữ 104 2.3 Các kiểu liệu hợp ngữ 106 Các lệnh điều khiển 109 Vận dụng cú pháp lệnh điều khiển để xây dựng toán; 109 Sử dụng lệnh bản; 109 3.1 Các lệnh 109 3.2 Các lệnh chuyển điều khiển 117 Ngăn xếp thủ tục .121 Mục tiêu: Trình bày ngăn xếp; 121 Viết chương trình cách truyền tham số cho chương trình .122 4.1 Ngăn xếp 122 4.2 Các thủ tục .123 CÂU HỎI VÀ BÀI TẬP 125 TÀI LIỆU THAM KHẢO 127 MÔN HỌC ĐÀO TẠO CẤU TRÚC MÁY TÍNH Mã môn học:MH 09 * Vị trí, tính chất, ý nghĩa vai trò môn học: - Vị trí: Môn học Cấu trúc máy tính bố trí học sau môn học chung, môn tin học đại cương, tin học văn phòng, kỹ thuật điện-điện tử học với mô đun lắp ráp cài đặt máy tính - Tính chất: Là môn học kỹ thuật sở thuộc môn học đào tạo nghề - Ý nghĩa vai trò: môn sở, cung cấp cho sinh viên kiến thức máy tính nghề Quản trị mạng * Mục tiêu môn học: - Trình bày lịch sử máy tính, hệ máy tính cách phân loại máy tính - Mô tả thành phần kiến trúc máy tính, tập lệnh Các kiểu kiến trúc máy tính: mô tả kiến trúc, kiểu định vị - Trình bày cấu trúc xử lý trung tâm: tổ chức, chức nguyên lý hoạt động phận bên xử lý - Mô tả diễn tiến thi hành lệnh mã máy số kỹ thuật xử lý thông tin: ống dẫn, siêu ống dẫn, siêu vô hướng - Trình bày chức nguyên lý hoạt động loại nhớ - Trình bày phương pháp lưu trữ liệu nhớ - Cài đặt chương trình lệnh điều khiển Assembly để thực toán theo yêu cầu - Bố trí làm việc khoa học đảm bảo an toàn cho người phương tiện học tập + Nội dung môn học (danh sách chương mục ): Số TT Tên chương Tổng quan kiến trúc máy tính Kiến trúc tập lệnh máy tính Bộ xử lý Bộ nhớ Thiết bị nhớ Các loại bus Ngôn ngữ Assembly Cộng Thời gian Tổng Lý Thự số thuyế c t hành Kiểm tra* 10 5 13 4 13 15 10 10 20 90 10 45 41 3.1.2.1.2 Lệnh ADC ( Addition With Carry ) Cú pháp : ADC < Dest > , < Source > < Dest > = < Dest > + < Source > + CF Tương tự lênh ADD , lệnh ADC thực phép cộng có nhớ Lệnh ADC lấy toán hạng < Dest > + < Source> + cờ CF, kết lưu vào toán hạng Dest , lệnh thường dùng cho phép cộng lớn 16 bít 3.1.2.1.3 Lệnh INC : ( Increment ) Cú pháp : INC < Dest > < Dest > = < Dest > + Dest : Có thể ghi hay nhớ Lệnh ảnh hưởng đến cờ : OF , ZF , PF , AF , SF Ví dụ : Cho hai số A, B dạng double word chứa hai số nguyên không dấu , Viết chương trình cộng hai số A , B Kết đưa vào biến C , có sử lý trường hợp tràn số Code SEGMENT ASSUME CS : Code , DS : Code ORG 100h Begin : MOV AX , Word PTR A MOV BX , Word PTR A+2 ADD AX , Word PTR B ADC BX , Word B+2 Code MOV Word Int 20h PTR C+2 , A DD 7000F000h B DD 90002000h C DB ENDS END Begin 3.1.2.2 Nhóm lệnh xử lý phép trừ Dup( ) 3.1.2.2.1 Lệnh SUB ( Subtract) * Cú pháp: SUB < dest>, < Dest >= - Source :có thể ghi hay nhớ Lệnh source lấy nội dung toán hạng dest trừ toán hạng source kết lưu vào dest Ví dụ : Mov AX , 1234h Sub AX , 0345h; AX = 1234h - 0345h Lệnh Sub ảnh hưởng đến sáu cờ 0F , CF , AF , PF , SF ,ZF 3.1.2.2.2 Lệnh SBB ( Subtract with Borrow) * Cú pháp: SBB < dest > , < source > < Dest > = < Dest > - < Source > - CF Lệnh SBB lấy toán hạng < Dest > - < Source > trừ thêm cờ CF , kết lưu vào toán hạng Dest 3.1.2.2.3 Lệnh DEC ( Decrement) * Cú pháp: DEC < Dest > < Dest > = < Dest > -1 Lệnh Dest lệnh giảm đơn vị Lệnh ảnh hưởng đến Cờ Cờ CF không ảnh hưởng tới Lưu ý : Lệnh SBB sử dụng cho trường hợp số lớn 16 bít Ví dụ : Viết chương trình trừ số :A=70002000h , B=90003000h,kết lưu vào nhớ C = Byte Nếu byte cao C =1 kết số âm , ngược lại số dương Code Segment Assume CS :Code ORG 100h Mov AX , Word PTR Begin: A Mov BX , Word PTR A+2 SUB AX , Word PTR B SUB BX , Word PTR B+2 Mov Word PTR C , AX Mov Word PTR C+2 , BX ADC Word PTR C +4 Int 20h A DB 70002000h Code B DB 90003000h C DB Dup ( ? ) Ends End Begin 3.1.2.3 Nhóm lệnh xử lý phép nhân Lệnh MUL ( Multiply) * Cú pháp: MUL < Source> < Source> ghi hay nhớ bít hay 16 bít Trường hợp : Nếu < Source > có độ dài bít lệnh MUL lấy nội dung ghi AL nhân với source, kết lưu vào ghi AX Trường hợp 2: Nếu source có độ dài 16 bít lệnh MUL lấy nội dung ghi AX nhân với sourrce , kết 32 bít :16 bít thấp lưu vào AX, 16 bit cao lưu vào DX Ví dụ : Mov AL , 12h Mov BL , 10h MUL BL ; BL = 120h , AX = 0120h Mov AX ,1234h Mov BX , 100h MUL BX 3.1.2.4 Nhóm lệnh xử lý phép chia Lệnh DIV * Cú pháp: DIV < Source > Tương tự phép nhân < source > có trường hợp Trường hợp 1:Nếu source có độ dài bít lệnh DIV lấy nội dung ghi AX chia cho source , thương số phép chia lưu ghi AL dư số lưu AH Trường hợp :Nếu source 16 bít lệnh DIV lấy nội dung cặp ghi DX : AX chia cho toán hạng source , thương số lưu AX , dư số lưu DX Ví dụ : Mov AX , 0234h Mov BL , 10h DIV BL ; AL = 23h , AH = 04h Mov AX , 1234h Mov DX , 0567h Mov BX , 100h DIV BX ; AX = 567h , DX = 0234h Ghi : Muốn in số >= kí số chia liên tiếp số cho 10 đến thương số = Sau phép chia cất dư số vào stack , sau thương số = muốn in ta lấy gía trị đỉnh Stack đưa hình 3.2 Các lệnh chuyển điều khiển 3.2.1 So sánh * Cú pháp: CMP < Left >, < Right > Left : Là ghi hay nhớ Right : Là ghi hay nhớ hay trực Ví dụ : CMP AL,0Dh * Công dụng : Dùng để so sánh toán hạng Left toán hạng Right Lệnh Assemble lấy toán hạng Left trừ toán hạng Right kết lưu cờ mà không thay đổi nội dung hai toán hạng Kết phép so sánh : a) Đối với số không dấu : CỜ ZF CF Left > Right Left = Right Left < Right 0 0 b) Đối Với Số Có Dấu : CỜ ZF OF SF Left > Right Left = Right Left < Right 0/1 0/1 0 /0 0/1 Ví dụ : Mov AX , 6000h CMP AX , -7000h 6000h - ( -7000h ) 3.2.2 Lệnh lặp Lệnh Loop : * Cú pháp : Loop * Công dụng : Dùng để lặp vòng Nếu ghi CX khác lệnh Loop chuyển điều khiển đến lệnh kế sau nhãn gỉam ghi CX đơn vị Nếu CX=0 lệnh nằm phía sau lệnh Loop thực thi Ví dụ : Mov AH , 01h Mov CX , Lặp : Loop lặp Nhóm Lệnh Lặp Có Điều Kiện : a LoopE / LoopZ Lặp CX khác ZF = b LoopNE / LoopNZ < Nhãn > Lặp CX khác ZF = Ví dụ : Viết chương trình nhập từ bàn phím chuỗi tối đa 80 kí tự Sau tìm kí tự chữ 'a' chuỗi vừa nhập vào , in kết Code SEGMENT ASSUME ORG CS : Code , DS : Code 100h Begin : Mov AH , 09h Mov DX , Offset Int 21h Mov DX , Offset Maxtype Mov AH , 0Ah Int 21h Mov BX , Offset Len Mov CL , [ BX ] Mov CH , Mov BX , Offset Buffer - Mov AL , 'a' Lặp: INC CMP BX AL , [ BX ] mess1 LoopNE Lặp JE thấy JMP không thấy Thấy: Mov AH , 09h Mov DX , Offset mess2 Int 21h JMP thoat Mov AH , 09h Mov DX , Offset mess3 Int 21h Không thấy : thoat : Int 20h mess3 DB ' Không tìm thấy $' mess2 DB ' Đã tìm thấy $' mess1 DB ' Nhập chuỗi (< 80 ) kí tự ' Maxtype DB 81 Len DB Buffer DB 81 Dup( ? ) Code ENDS END Begin 3.2.3 Lệnh nhảy 3.2.3.1 Lệnh nhảy không điều kiện Cú pháp : JMP < Nhãn > 3.2.3.2 Lệnh nhảy có điều kiện a) Nhóm Lệnh Nhảy Dùng Cho Số Không Dấu JA LỆNH (>) ĐIỀU KIỆN ZF = and CF = Ý NGHĨA Jump if above JAE (>=) JNA (=) JNG () Jump if Not Zero JC CF = Jump if carry JNC CF = Jump if Not carry JCXZ CX = Jump if CX Zero Ngăn xếp thủ tục - Mục tiêu: Trình bày ngăn xếp; - Viết chương trình cách truyền tham số cho chương trình 4.1 Ngăn xếp Đoạn ngăn xếp (stack segment) chương trình dùng để cất giữ tạm thời số liệu địa Trong phần xem xét cách tổ chức stack sử dụng để thực thủ tục (procedure) Ngăn xếp cấu trúc liệu chiều Điều có nghĩa số liệu đưa vào lấy khỏi stack đầu cuối stack theo nguyên tắc LIFO ( last in first out) Vị trí số liệu đưa vào hay lấy gọi đỉnh ngăn xếp (top of stack) Có thể hình dung satck chồng đĩa Đĩa đưa vào sau nằm đỉnh chồng đĩa Khi lấy ra, đĩa lấy trước Một chương trình phải dành khối nhớ cho ngăn xếp Chúng ta dùng dẫn STACK 100h để khai báo kích thước vùng stack 256 bytes Khi chương trình dịch nạp vào nhớ ghi SS ( stack segment) chứa địa đoạn stack Còn SP ( stack pointer) chứa địa đỉnh ngăn xếp Trong khai báo stack 100h , SP nhận giá trị 100h Điều có nghĩa stack trống rỗng (empty) hình 6.1 Hình 7.1: Stack empty Lệnh PUSH Để thêm từ vào stack dùng lệnh : PUSH nguồn; đưa ghi từ nhớ 16 bit vào stack Ví dụ PUSH AX Khi lệnh thực : · SP giảm · copy toán hạng nguồn đưọc chuyển đến địa SS:SP toán hạng nguồn không thay đổi Lệnh POP Để lấy số liệu đỉnh stack khỏi stack ,chúng ta dùng lệnh : POP đích ; lấy số liệu đỉnh stack đích Đích ghi từ nhớ 16 bit Ví dụ : POP BX ; Lấy số liệu stack ghi BX Khi thực lệnh POP : · nội dung đỉnh stack ( địa SS:SP) di chuyển đến đích · SP tăng 4.2 Các thủ tục Trong ngôn ngữ cấp cao người ta dùng thủ tục để giải toán , làm hợp ngữ Như chương trình hợp ngữ xây dựng thủ tục Một thủ tục gọi thủ tục chứa nội dung chủ yếu chương trình Để thực công việc , thủ tục gọi ( CALL) thủ tục Thủ tục gọi thủ tục khác Khi thủ tục gọi thủ tục khác, điều khiển chuyển tới ( controltransfer) thủ tục gọi lệnh thủ tục gọi thi hành Sau thi hành hết lệnh nó, thủ tục gọi trả điều khiển (return control) cho thủ tục gọi Cú pháp lệnh tạo thủ tục: tên thủ tục PROC kiểu gọi thủ tục ; lệnh RET tên thủ tục ENDP  tên thủ tục người dùng định nghĩa  kiểu gọi thủ tục NEAR ( không khai báo )  NEAR có nghĩa thủ tục gọi nằm đoạn với FAR thủ tục gọi FAR có nghĩa thủ tục gọi thủ tục gọi nằm khác đọan  Lệnh RET trả điều khiển cho thủ tục gọi Tất thủ tục phải kết thúc  RET trừ thủ tục Ví dụ: Viết chương trình tính tích số dương A B thuật toán cộng ( ADD) dịch ( SHIFT ) Thuật toán sau : Product = REPEAT IF lsb of B is THEN product=product+A END_IF shift left A shift right B UNTIL B=0 Viết chương trình MODEL SMALL STACK 100H CODE MAIN PROC ; thực DEBUG Đặt A = AX , B=BX CALL MULTIPLY ;DX chứa kết qủa MOV AH,4CH INT 21H MAIN ENDP MULTIPY PROC ; input : AX=A , BX=B , AX BX có giá trị khoảng FFH ; output : DX= kết qủa PUSH AX PUSH BX XOR DX,DX REPEAT: ; Nếu lsb B =1 TEST BX,1 ;lsb=1? JZ END_IF ; không , nhảy đến END_IF ; ADD DX,AX ; DX=DX+AX END_IF : SHL AX,1 ; dịch trái AX bit SHR BX,1 ;dịch phải BX bit ; BX=0 JNZ REPEAT ; BX chưa lặp POP BX ; lấy lại BX POP AX ; lấy lại AX RET ; trả điều khiển cho chương trình MULTIPLY ENDP END MAIN CÂU HỎI VÀ BÀI TẬP Bài 1: Giải thích câu lệnh sau a/ MOV AL,5Bh MOV BL,0ADh ADD AL,BL b/ MOV AX,170Fh MOV BX,80EBh ADD AX,BX c/ MOV AL,41h MOV BL,50h CMP AL,BL Bài :Viết chương trình hiển thị hình hình chữ nhật gồm kí tự ' *' Bài :Viết chương trình hiển thị chuỗi ' * * * * * * * * ' hình Bài : Viết chương trình hiển thị hình 26 chữ cái(A->Z) có khỏang trắng Bài : Viết chương trình hiển thị chuỗi " Hello , How are you " hình Bài : Viết chương trình hiển thị hình 26 chữ cái(A->Z) khỏang trắng Bài : Viết chương trình hiển thị hình chuỗi '012345678' Bài 8:Viết chương trình hiển thị hình hình vuông gồm kí tự ' * ' bên Bài :Viết chương trình nhập vào số cho biết số trước lớn hớn , nhỏ hay số sau Bài 10 :Viết chương trình nhập vào chuỗi (

Ngày đăng: 17/12/2016, 00:20

TỪ KHÓA LIÊN QUAN

w