Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

69 15 0
Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Đ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

Giáo trình Kiến trúc máy tính với mục tiêu giúp các bạn hiểu về lịch sử của máy tính, các thế hệ máy tính và cách phân loại máy tính; Trình bày được các thành phần cơ bản của kiến trúc máy tính, các tập lệnh. Các kiểu kiến trúc máy tính: mô tả kiến trúc, các kiểu định vị. Mời các bạn cùng tham khảo!

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 LỜI GIỚI THIỆU Giáo trình nhóm tác giả biên soạn nhằm tạo điều kiện thuận lợi cho sinh viên tiếp thu tốt kiến thức liên quan đến môn học Đây tài liệu tham khảo dành cho sinh viên Bộ môn Công nghệ thông tin, trường Cao đẳng Nông Lâm Đông Bắc học tập nghiên cứu môn học Cấu trúc máy tính Nội dung phần lý thuyết chia làm Chương: Chương 1: Tổng quan Chương 2: Kiến trúc phần mềm xử lý Chương 3: Tổ chức xử lý Chương 4: Bộ nhớ Chương 5: Thiết bị xuất nhập Chương 6: Ngôn ngữ Assembly Phần thực hành chia thành mục theo thứ tự kiến thức học, qua buổi thực hành giúp sinh viên có thao tác logic kinh nghiệm thực tế việc lập trình, từ tích lũy tri thức cần thiết cho môn học công việc tương lai Tác giả xin chân thành cảm ơn bạn đồng nghiệp trao đổi, góp ý cho chúng tơi q trình hồn thiện giáo trình Mặc dù có nhiều cố gắng tham khảo nghiên cứu tài liệu liên quan khơng tránh thiếu sót Mong q bạn đọc đóng góp ý kiến để giáo trình ngày hồn thiện Xin chân thành cám ơn! Người biên soạn Phạm Xuân Hiệp: Chủ biên MỤC LỤC LỜI GIỚI THIỆU GIÁO TRÌNH MƠN HỌC/MƠ ĐUN Tên mơn học/mơ đun: Kiến Trúc máy tính Mã mơn học/mơ đun: MH07 Chương 1: TỔNG QUAN 1.1 Các hệ máy tính: 1.1.1 Thế hệ thứ nhất: (1945-1955) 1.1.2 Thế hệ thứ hai: (1955-1965) 1.1.3 Thế hệ thứ ba: (1965-1980) 1.1.4 Thế hệ thứ tư: (1980- ) 1.2.Phân loại máy tính: 1.2.1.các siêu máy tính: 1.2.2.các máy tính lớn: 1.2.3.Máy tính Mini: 1.2.4.Máy vi tính: 1.3.Thành máy tính: 1.4.Thơng tin mã hóa thơng tin: 1.4.1.Thơng tin: 1.4.2 Mã hóa thơng tin: CÂU HỎI VÀ BÀI TẬP Chương II (8 TIẾT): KIẾN TRÚC PHẦN MỀM BỘ XỬ LÝ 2.1 Thành phần máy tính: 2.1.1 Bộ xử lý trung tâm (CPU) 2.1.2 Bộ nhớ máy tính 2.1.3 Hệ thống vào – ra: 2.1.4 Liên kết hệ thống: 2.2 Định nghĩa kiến trúc máy tính: 2.3 Tập lệnh: 2.4 Kiến trúc tập lệnh RISC 2.5 Toán hạng: CÂU HỎI VÀ BÀI TẬP Chương III (8 Tiết): TỔ CHỨC BỘ XỬ LÝ 3.1.Đường liệu: 3.1.1 Các thành phần đường dẫn liệu 5 6 7 10 10 11 11 12 12 13 13 13 14 15 15 15 16 18 18 19 20 20 22 22 23 23 23 3.1.2 Nhiệm vụ đường liệu 3.2 Bộ điều khiển: 3.2.1 Chức điều khiển: 3.2.2 Các phương pháp thiết kế điều khiển: 3.3 Diễn tiến thi hành lệnh mã máy: 3.3.1 Đọc lệnh 3.3.2 Giải mã lệnh 3.3.3 Thực lệnh 3.3.4 Nhận liệu 3.3.5 Lưu trữ kết 3.4 Ngắt: 3.4.1 Các loại ngắt 3.4.2 Hoạt động ngắt 3.5 Kỹ thuật ống dẫn: 3.6 Siêu ống dẫn: CÂU HỎI ÔN TẬP CHƯƠNG III Chương IV (9 Tiết): BỘ NHỚ 4.1 Các loại nhớ: 4.1.1 ROM (Read Only Memory) 4.1.2 RAM (Random Access Memory) 4.1.3 Thiết kế môdun nhớ bán dẫn: 4.2 Các cấp nhớ: 4.3 Truy cập liệu nhớ: 4.4 Bộ nhớ Cache: CÂU HỎI VÀ BÀI TẬP Chương V (7 Tiết): THIẾT BỊ XUẤT NHẬP 5.1 Đĩa từ: 5.2 Đĩa quang: 5.2.1 CD-ROM, CD-R/W: 5.2.2 DVD-ROM, DVD-R/W: 5.2.3 Bluray: 5.3 Các loại thẻ nhớ: 5.4 Băng từ: 5.5 Các chuẩn BUS: 5.5.1 Định nghĩa bus: 5.6 An toàn liệu lưu trữ: 5.6.1 RAID (Redundant Arrays of Inexpensive Disks): 23 24 24 24 26 26 27 27 27 28 29 29 29 30 31 32 33 33 33 33 35 36 37 38 39 40 40 42 42 43 43 44 44 45 45 45 45 5.6.2 Các loại RAID: CÂU HỎI VÀ BÀI TẬP Chương VI (8 Tiết): NGÔN NGỮ ASSEMBLY 6.1 Tổng quan: 6.2 Cấu trúc chương trình: 6.2.1 Cấu trúc chương trình hợp ngữ: 6.2.2 Cú pháp lệnh hợp ngữ: 6.3 Các lệnh điều khiển: 6.3.1 Các lệnh bản: 6.3.2 Các lệnh chuyển điều khiển: 6.4 Ngăn xếp thủ tục 6.4.1 Ngăn xếp: 6.4.2 Các thủ tục: CÂU HỎI VÀ BÀI TẬP TÀI LIỆU THAM KHẢO 46 49 50 50 51 51 52 53 53 59 62 62 63 66 67 GIÁO TRÌNH MƠN HỌC/MƠ ĐUN Tên mơn học/mơ đun: Kiến Trúc máy tính Mã mơn học/mơ đun: MH07 Vị trí, tính chất, ý nghĩa vai trị mơn học/mơ đun: - Vị trí:Mơn học Kiến 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 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ề bắt buộc - Ý nghĩa vai trị mơn học/mơ đun:đây mơn sở, cung cấp cho sinh viên kiến thức máy tính nghề Tin học ứng dụng Mục tiêu môn học/mô đun: - Về kiến thức: + Hiểu biết lịch sử máy tính, hệ máy tính cách phân loại máy tính + Trình bày 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ị + Liệt kê 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ý + Trình bày chức nguyên lý hoạt động cấp nhớ + Nắm phương pháp an toàn liệu thiết bị lưu trữ - Về kỹ năng: + 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 + Thao tác thành thạo tập lệnh Assembly - Về lực tự chủ trách nhiệm: + Có lực chun mơn thích nghi với mơi trường làm việc khác + Tự học tập, tích lũy kiến thức, kinh nghiệm để nâng cao trình độ chuyên môn nghiệp vụ Chương 1(5 tiết): TỔNG QUAN Học xong chương sinh viên có thể: + 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 Máy vi tính đời vào 1981 IBM đưa Nó nhanh chóng chiếm thị trường Máy vi tính bao gồm phần sau: CPU, thiết bị vào, thiết bị ra, nhớ nhớ ngồi Xét theo góc độ phần lắp nối thành khối xử lý trung tâm khối thiết bị ngoại vi dàn máy vi tính 1.1 Các hệ máy tính: 1.1.1 Thế hệ thứ nhất: (1945-1955) Máy tính xây dựng sở đèn điện tử mà đèn tượng trưng cho bit nhị phân Do máy có khối lượng lớn, tốc độ chậm tiêu thụ điện lớn Như máy ENIAC bao gồm 18000 đèn điện tử, 1500 rơ-le, nặng 30 tấn, tiêu thụ công suất 140KW Về kiến trúc có 20 ghi, ghi chứa số thập phân 10 chữ số Chiếc máy lập trình cách đặt vị trí (set) 6000 chuyển mạch (switch) - có nhiều vịt trí nối vơ số ổ cắm (socket) với “rừng” đầu cắm (jumper) Hình 1: máy ENIAC Cùng thời kì này, Giáo sư tốn học John Von Neumann đưa ý tưởng thiết kế máy tính IAS (Princeton Institute for Advanced Studies): chương trình lưu nhớ, điều khiển lấy lệnh biến đổi giá trị liệu phần nhớ, số học logic (ALU: Arithmetic And Logic Unit) điều khiển để tính tốn liệu nhị phân, điều khiển hoạt động thiết bị vào Đây ý tưởng tảng cho máy tính đại ngày Máy tính cịn gọi máy tính Von Neumann Hình 2: máy tính Von Neumann 1.1.2 Thế hệ thứ hai: (1955-1965) Máy tính xây dựng sở đèn bán dẫn (transistor), Công ty Bell phát minh transistor vào năm 1948 hệ thứ hai máy tính đặc trưng thay đèn điện tử transistor lưỡng cực Máy tính hệ có tên TX-0 (transistorized experimental computer 0) Hình 3: 1(1960) Dòng máy DEC PDP – 1.1.3 Thế hệ thứ ba: (1965-1980) Máy tính dùng mạch tích hợp (cịn gọi mạch vi điện tử - IC) cho phép đặt hàng chục transistor vỏ(chip) , nhờ người ta chế tạo máy tính nhỏ hơn, nhanh rẻ máy tính dùng Transistor đời trước Điển hình hệ máy System/360 IBM Thế hệ máy tính có bước đột phá sau: - Tính tương thích cao: Các máy tính họ có khả chạy chương trình, phần mềm - Đặc tính đa chương trình: Tại thời điểm có vài chương trình nằm nhớ số cho chạy chương trình khác chờ hồn thành thao tác vào/ra - Không gian địa lớn (224byte = 16Mb) Hình 4: Dịng máy IBM System 360 (1964) 1.1.4 Thế hệ thứ tư: (1980- ) Máy tính xây dựng vi mạch cỡ lớn (LSI) cực lớn (VLSI) Đây hệ máy tính số ngày nay, nhờ cơng nghệ bán dẫn phát triển vượt bậc, mà người ta chế tạo mạch tổ hợp mức độ cực lớn Nhờ máy tính ngày nhỏ hơn, nhẹ hơn, mạnh giá thành rẻ Máy tính cá nhân bắt đầu xuất phát triển thời kỳ Dựa vào kích thước vật lý, hiệu suất lĩnh vực sử dụng, người ta thường chia máy tính số hệ thứ tư thành loại chính, loại phủ lên phần: - Microcomputer: Còn gọi PC (personal computer), máy tính nhỏ, có chip vi xử lý số thiết bị ngoại vi Thường dùng cho người, dùng độc lập dùng mạng máy tính Hình 5: PC (personal computer) - Minicomputer: Là máy tính cỡ trung bình, kích thước thường lớn PC Nó thực ứng dụng mà máy tính cỡ lớn thực Nó có khả hỗ trợ hàng chục đến hàng trăm người làm việc Minicomputer sử dụng rộng rãi ứng dụng thời gian thực, ví dụ điều khiển hàng khơng, tự động hố sản xuất Hình 6: Minicomputer - Supermini: Là máy Minicomputer có tốc độ xử lý nhanh họ Mini thời điểm định Supermini thường dùng hệ thống phân chia thời gian, ví dụ máy chủ mạng Hình 7: Supermini - Mainframe: Là máy tính cỡ lớn, có khả hỗ trợ cho hàng trăm đến hàng ngàn người sử dụng Thường sử dụng chế độ công việc xếp theo lô lớn (Large-Batch-Job) xử lý giao dịch (Transaction Processing), ví dụ ngân hàng 10         : ghi ,bộ nhớ hay Chức : Chuyển nội dung toán hạng nguồn vào tốn hạng đích, chiều dài liệu hay 16 bit *  Ghi : - Lệnh MOV  không ảnh hưởng đến ghi cờ hiệu - Khơng phép chuyển hai tốn hạng nhớ với nhau Muốn chuyển phải dùng ghi trung gian Ví dụ :                          MOV   AX , Var                          MOV   Var , AX  - Không thể chuyển trực tiếp hai ghi đoạn  - Không thể chuyển vào ghi đoạn, muốn chuyển phải dùng ghi trung gian               Ví dụ :                          MOV AX ,data                          MOV DS , AX  - Không dùng ghi CS  vào toán hạng lệnh MOV  - Địa hình màu : B800 : 0000    - Mỗi ký tự hình biểu diễn byte  Byte thấp  :   chứa ký tự cần in  Byte cao    :    chứa màu màu ký tự  Nó định dạng sau :       7   6    4  3  2  1  B/I H G B I R B / I : nằm bit thứ H : nằm bit thứ G : nằm bit thứ B : nằm bit thứ H, G ,B : màu I : nằm bit thứ R : nằm bit thứ G : nằm bit thứ B: nằm bit I ,R ,G ,B : màu chữ I : intensity ( cường độ , độ sáng ) : tối : sáng B : blinking ( chớp nháy ) : không nháy :nháy 55 G B Bit 7( B / I ) : vừa làm nhiệm vụ cho nhấp nháy chữ hay tăng giảm độ sáng cho màu I R G B    MÀU I R G B      MÀU 0 0     đen 0 Đen nhạt 0 Xanh dương 0 Da trời 0    Xanh 1 Xanh nhạt 0 1         cam 1     cam sáng 0 Đỏ 1 0 Đỏ sáng 1      Tím 1     Tím cà 1     Nâu 1     Vàng 1 Xám đậm 1 1     Trắng * Cách nhớ màu:              Đen Xanh dương Xanh    3                           cam Đỏ Tím Nâu Xám - Muốn  chữ sáng : cộng thêm số cho màu chữ - Muốn sáng / chữ nháy cộng thêm số cho màu CÔNG THỨC : Màu * 16 + màu chữ              Ví dụ :           Chữ  A có màu xanh dương đỏ           A : 65 đổi sang hệ thập phân  : 1000000           Ta lấy   1000000  + = 01000001          Trong 0100 nền  đỏ 0001 là  chữ  A màu xanh dương   Cơng thức tính địa offset ký tự cần xuất hình (Dịng * 18 + cột)*2 56 Ví dụ :         Viết chương trình  in chử A dịng cột 10 có  màu xanh dương đỏ         Code   segment                         Assume  CS : code , DS : code                                        Org  100h                         Begin                                     MOV   AX, 0B800h                                    MOV   DS, AX                                    MOV   AL, 'A'                                    MOV   AH, 65                                     dòng =                                     cột = 10                                   MOV  BX , ( dòng * 80 + cột  )   *                                    MOV  [ BX ], AX                       Code Ends                                 End Begin b Lệnh   XCHG : (Exchange): *  Cú pháp :         XCHG ,<    nguồn   >        Tốn hạng  < nguồn > < đích > ghi hay nhớ *  Công dụng : dùng để hoán chuyển nội dung hai toán hạng < đích > *  Ghi chú  : - Lệnh không ảnh hưởng đến cờ hiệu - Không dùng lệnh với ghi đoạn          Ví dụ :                           A    DW    1234h                          B    DW      3456h                          MOV   AX , A                          XCHG  AX , B                          MOV    A , AX c Lệnh PUSH: * Cú pháp :            PUSH   < nguồn >                  : Có thể ghi hay nhớ 16 bit  * Công dụng : Dùng để nạp nội dung toán hạng  < nguồn > vào stack ( chồng) ghi SP giảm hai đơn vị d Lệnh POP   *  Cú pháp :                  POP 57 Ngược lại với lệnh  PUSH   lệnh POP lấy nội dung đỉnh  STACK đưa vào toán hạng đỉnh thanh  SP tăng lên hai đơn vị * Lưu ý : Để cất giữ ghi việc sử dụng lệnh PUSH , lệnh POP  dùng lệnh POP ta phải lấy ngược với lệnh PUSH          Ví dụ :                            PUSH  AX                            PUSH  BX                            PUSH    CX               Ta dùng  lệng POP ngược lại với PUSH                            POP CX                            POP   BX                            POP AX e Lệnh  XLAT: *  Cú pháp : XLAT *  Công dụng :    Dùng để chuyển nội dung số ô nhớ  (8 bit ) vào thanh ghi AL *  Ghi : DS :BX  chứa địa offset vùng nhớ AL chứa thứ tự ô nhớ 6.3.1.2 Nhóm lệnh tính tốn số học: 6.3.1.2.1.Nhóm lệnh xử lý phép cộng: a Lệnh ADD: ( Addition ) * Cú pháp :    ADD < Dest > , < Source >                               < Dest > = < Dest > + < Source > Dest : Là ghi hay nhớ Source : Là ghi hay nhớ hay trực Chức : Dùng để cộng không nhớ toán hạng Dest toán hạng Source , kết lưu vào toán hạng Dest Lệnh ảnh hưởng đến cờ : SF, CF , OF , AF, PF, ZF  b 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  quả 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 c 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 58 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                                      MOV    Word     PTR  C+2 ,                                      Int        20h                                     A         DD    7000F000h                                     B         DD    90002000h                                     C         DB    5    Dup( )                         Code    ENDS                                      END     Begin 6.3.1.2.2 Nhóm lệnh xử lý phép trừ: a Lệnh SUB: ( Subtract) *  Cú pháp:   SUB < dest>,          < Dest >= - Source :có thể thanh  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 b 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 c 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 5 Cờ  Cờ CF không ảnh hưởng tới Lưu  ý : 59 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            Begin:                         Mov    AX , Word   PTR    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                         B    DB    90003000h                         C    DB    Dup   ( ? )            Code     Ends                          End      Begin 6.3.1.2.3 Nhóm lệnh xử lý phép nhân: a.  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 của ghi AL nhân với source, kết lưu vào thanh ghi AX Trường hợp 2: Nếu source có độ dài 16 bít lệnh MUL lấy nội dung thanh 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 6.3.1.2.4 Nhóm lệnh xử lý phép chia: a. Lệnh  DIV:             *  Cú pháp:         DIV  < Source > 60 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  thanh  ghi AX chia cho source , thương số phép chia lưu ghi AL dư số lưu AH Thanh 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 khi  thương số = Sau phép chia cất dư số vào stack , sau thương số  = muốn in ra ta lấy gía trị trên đỉnh Stack đưa ra màn hình 6.3.2 Các lệnh chuyển điều khiển: a 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                         b) Đối Với Số Có Dấu : 61 CỜ ZF             OF                 SF Left > Right Left = Right Left < Right                             0/1             0/1                                                                           /0                0/1 Ví dụ :                            Mov AX , 6000h                           CMP  AX , -7000h                    6000h - ( -7000h ) 6.3.2.2 Lệnh lặp: a 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     CS : Code , DS : Code                          ORG     100h                          Begin :                                      Mov     AH , 09h                                      Mov     DX , Offset    mess1                                      Int        21h                                      Mov     DX , Offset Maxtype                                      Mov     AH , 0Ah 62                                      Int        21h                                      Mov     BX , Offset Len                                      Mov     CL , [ BX ]                                      Mov     CH ,                                      Mov     BX , Offset Buffer -                                      Mov     AL , 'a'                               Lặp:                                      INC     BX                                      CMP     AL , [ BX ]                                      LoopNE    Lặp                                     JE     thấy                                     JMP     không thấy                            Thấy:                                     Mov     AH , 09h                                     Mov     DX , Offset mess2                                     Int        21h                                     JMP     thoat                Không thấy :                                     Mov     AH , 09h                                     Mov     DX , Offset mess3                                     Int        21h                           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 6.3.2.3 Lệnh nhảy: a Lệnh nhảy không điều kiện: Cú pháp : JMP < Nhãn > b Lệnh nhảy có điều kiện: 1) Nhóm Lệnh Nhảy Dùng Cho Số Không Dấu 63 LỆNH JA             ( > ) JAE       ( > = ) JNA         ( < = ) JNAE       ( < ) JB         ( < ) JBE        ( < = ) JNB       ( > = ) JNBE     ( > ) ĐIỀU KIỆN Ý NGHĨA Jump if above Jump if above or equal Jump if Not above Jump if Not above or  equal Jump if below Jump if below or equal Jump if Not below Jump if Not below or equal ZF = and CF = CF = CF = CF = or ZF =   2) Nhóm Lệnh Nhảy Dùng Cho Số Có Dấu LỆNH ĐIỀU KIỆN JG          ( > ) JGE       ( > = ) JNG      ( < = ) JNGE    ( < ) JL          ( < ) JLE       ( < = ) JNL      ( > = ) JNLE    ( > ) SF = OF and ZF = SF = OF SF OF SF OF or ZF = Ý NGHĨA Jump if greater Jump if greater or equal Jump if Not greater Jump if Not greater or equal Jump if less Jump if less or equal Jump if Not less   Jump if Not less or equal 3) Nhóm Lệnh Nhảy Dùng Cho Cả Số Có Dấu Và Khơng Dấu LỆNH ĐIỀU KIỆN Ý NGHĨA JE       ( = ) ZF = Jump if equal JNE    ( ) ZF = Jump if Not equal JZ       ( = ) Jump if Zero JNZ    ( ) Jump if Not Zero JC           CF = Jump if carry JNC CF = Jump if Not carry JCXZ     CX = Jump if CX Zero 6.4 Ngăn xếp thủ tục 6.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 64 đĩ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 49 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 - Một copy toán hạng nguồn đưọc chuyển đến địa SS:SP cịn tố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 6.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 65 Để 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 ) FAR - NEAR có nghĩa thủ tục gọi nằm đoạn với 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 66 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 67 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ơng có 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 vng 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: 11/07/2022, 12:36

Hình ảnh liên quan

Hình 1: máy ENIAC - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 1.

máy ENIAC Xem tại trang 7 của tài liệu.
Hình 3: Dòng máy DEC PDP – - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 3.

Dòng máy DEC PDP – Xem tại trang 8 của tài liệu.
Hình 2: máy tính Von Neumann - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 2.

máy tính Von Neumann Xem tại trang 8 của tài liệu.
Hình 5: PC (personal computer) - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 5.

PC (personal computer) Xem tại trang 9 của tài liệu.
Hình 4: Dịng máy IBM System 360 (1964) - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 4.

Dịng máy IBM System 360 (1964) Xem tại trang 9 của tài liệu.
Hình 7: Supermini - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 7.

Supermini Xem tại trang 10 của tài liệu.
Hình 6: Minicomputer - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 6.

Minicomputer Xem tại trang 10 của tài liệu.
Hình 8: Mainframe - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 8.

Mainframe Xem tại trang 11 của tài liệu.
Hình 9: Supercomputer - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 9.

Supercomputer Xem tại trang 11 của tài liệu.
Hình 11. Máy tính lớn - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 11..

Máy tính lớn Xem tại trang 12 của tài liệu.
Hình 12. Máy tính Mini - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 12..

Máy tính Mini Xem tại trang 12 của tài liệu.
Hình 13. Máy vi tính - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 13..

Máy vi tính Xem tại trang 13 của tài liệu.
Hình 14. - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 14..

Xem tại trang 16 của tài liệu.
Hình 15: Cấu trúc cơ bản của CPU - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 15.

Cấu trúc cơ bản của CPU Xem tại trang 17 của tài liệu.
Bảng 21: Đặc tính của ba mẫu đầu tiên máy RISC - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Bảng 21.

Đặc tính của ba mẫu đầu tiên máy RISC Xem tại trang 22 của tài liệu.
Hình 22: Tổ chức của một xử lý điển hình (Các đường không liên tục là các đường điều khiển) - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 22.

Tổ chức của một xử lý điển hình (Các đường không liên tục là các đường điều khiển) Xem tại trang 25 của tài liệu.
Hình 23: Nguyên tắc vận hành của bộ điều khiển dùng vi chương trình - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 23.

Nguyên tắc vận hành của bộ điều khiển dùng vi chương trình Xem tại trang 26 của tài liệu.
Hình 24: Nguyên tắc vận hành của bộ điều khiển dùng mạch điện tử - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 24.

Nguyên tắc vận hành của bộ điều khiển dùng mạch điện tử Xem tại trang 27 của tài liệu.
Hình 25:Sơ đồ mơ tả q trình đọc lệnh - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 25.

Sơ đồ mơ tả q trình đọc lệnh Xem tại trang 28 của tài liệu.
3.3.5 Lưu trữ kết quả - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

3.3.5.

Lưu trữ kết quả Xem tại trang 29 của tài liệu.
Hình 26: Sơ đồ tả nhận toán hạng gián tiếp - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 26.

Sơ đồ tả nhận toán hạng gián tiếp Xem tại trang 29 của tài liệu.
Hình 29 cho thấy chỉ trong một chukỳ xung nhịp, bộ xử lý có thể thực hiện một lệnh (bình thường lệnh này được thực hiện trong 5 chu kỳ). - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 29.

cho thấy chỉ trong một chukỳ xung nhịp, bộ xử lý có thể thực hiện một lệnh (bình thường lệnh này được thực hiện trong 5 chu kỳ) Xem tại trang 31 của tài liệu.
Hình 31: SRAM và DRAM - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 31.

SRAM và DRAM Xem tại trang 35 của tài liệu.
Hình 33: Cáccấp bộnhớ - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 33.

Cáccấp bộnhớ Xem tại trang 38 của tài liệu.
Hình 38: Mật độ ghi dữ liệu trên các loại đĩa cứng - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 38.

Mật độ ghi dữ liệu trên các loại đĩa cứng Xem tại trang 42 của tài liệu.
Hình 37: Cấu tạo của một đĩa cứng - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 37.

Cấu tạo của một đĩa cứng Xem tại trang 42 của tài liệu.
Bảng 39: Thôngsố kỹ thuật của đĩa cứng - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Bảng 39.

Thôngsố kỹ thuật của đĩa cứng Xem tại trang 43 của tài liệu.
Hình 41: Minh hoạ hai trạng thái của một bit nhớ trong thẻ nhớ - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 41.

Minh hoạ hai trạng thái của một bit nhớ trong thẻ nhớ Xem tại trang 45 của tài liệu.
Hình 46: RAID4 - Giáo trình Kiến trúc máy tính - Trường CĐ Nông Lâm Đông Bắc

Hình 46.

RAID4 Xem tại trang 49 của tài liệu.

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan