1. Trang chủ
  2. » Luận Văn - Báo Cáo

Kiến trúc các hệ thống thông tin

37 443 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

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 0,98 MB

Nội dung

z Nguyễn Ngọc Linh HTTT – KSCLC K52 TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÀI TẬP LỚN Kiến trúc hệ thống thông tin Giảng viên hướng dẫn : PGS.TS Nguyễn Thị Hoàng Lan Sinh viên thực : Nguyễn Ngọc Linh Lớp : Hệ thống thông tin truyền thông KSCLC - K52 Hà Nội - 2011 Nguyễn Ngọc Linh HTTT – KSCLC K52 MỤC LỤC Trang A MỤC ĐÍCH B NỘI DUNG CÁC BÀI TẬP  Bài tập Lập trình hợp ngữ với cấu trúc điều khiển ……………………  Bài tập Dịch lời gọi thủ tục Cơ chế ngắt lời gọi hệ thống + Khảo sát version DOS + Phân tích vector ngắt + Khảo sát ngắt 21h 10 + Lời gọi hệ thống 14  Bài tập Khảo sát cấu hình & hệ thống nhớ 16 Phân tích chế quản lý nhớ 16 Dùng công cụ Debug khảo sát nội dung ghi 18 Giải thích nội dung ghi 20 C KẾT LUẬN 21 D PHỤ LỤC : CÁC CHƢƠNG TRÌNH ASSEMBLY Bài 22 Bài 2.1 29 Bài 2.2 33 E TÀI LIỆU THAM KHẢO 37 Nguyễn Ngọc Linh HTTT – KSCLC K52 A MỤC ĐÍCH Hợp ngữ ( assembly languague ) ngôn ngữ bậc thấp gần với ngôn ngữ máy , sử dụng để xây dựng phần mềm cho hệ vi xử lý Do hợp ngữ sử dụng trực tiếp tập lệnh vi xử lý nên trình điều hành chức sát với cấu trúc phần cứng hệ thống , triệt để khai thác đước khả phần cứng Mục đích tập lớn giúp sinh viên làm quen với môi trường lập trình hợp ngữ , có hiểu biết tập lệnh , cách thức quản lý & sử dụng tài nguyên ( ghi , nhớ ) vi xử lý Intel 8x86 Điều thể qua tập với yêu cầu khác : • Bài 1: Lập trình hợp ngữ với cấu trúc điều khiển • Bài 2: Lập trình hợp ngữ dịch lời gọi thủ tục, khảo sát tổ chức hệ thống, chế ngắt thực hành lời gọi hệ thống • Bài 3: Thực hành quản lý nhớ cho ứng dụng Mục lục Nguyễn Ngọc Linh HTTT – KSCLC K52 B NỘI DUNG CÁC BÀI TẬP Bài Lập trình hợp ngữ với cấu trúc điều khiển Viết thực hành thủ tục assembler thực so sánh xâu chuỗi ký tự theo yêu cầu sau: Cho hai xâu chuỗi ký tự X Y có độ dài tương ứng n m (kể ký tự rỗng) với n>m, kết chương trình trả lời câu hỏi đây: – Xâu Y có phải xâu xâu X không? – Nếu xâu Y xâu xâu X vị trí xâu Y xâu X, xâu X chứa xâu Y? ( So sánh chuỗi kí tự -> file 1s.Chuoi con.asm , 1s.Chuoi con.exe ) Giải thích chương trình : - Nhập chuỗi kí tự X , Y với độ dài tối đa 255 khai báo code Nếu nhập số kí tự tối đa , chương trình cho kết sai Việc nhập chuỗi kí tự thực nhờ thủ tục INPUTSTR Chiều dài chuỗi vừa nhập chứa ghi BX sau đưa biến N1 ( độ dài X ) , N2 ( độ dài Y ) Thủ tục BACKSPACE gọi trường hợp xóa kí tự nhập : thay kí tự bị xóa khoảng trắng , biến đếm độ dài trỏ giảm - So sánh độ dài chuỗi X , Y Các trường hợp : chuỗi rỗng ( độ dài = ) , N2 > N1 , chương trình kết luận Y không chuỗi X - Trong trường hợp N2 Y không chuỗi X Ngược lại , Y chuỗi X - Việc in số thực nhờ thủ tục PRTNUM ( chia liên tiếp số cần in cho 10 , in số dư hình ) - Khai báo & sử dụng Macro Thongbao để in chuỗi kí tự hình Chạy chương trình : - Trong trường hợp tìm thấy xâu : - trường hợp đặc biệt : Mục lục Nguyễn Ngọc Linh HTTT – KSCLC K52 Bài Lời gọi thủ tục , tổ chức hệ thống , chế ngắt lời gọi hệ thống Phần Dịch lời gọi thủ tục Viết thực chương trình tìm số lớn mảng N số nguyên 16 bit hiển thị kết lên hình mã ASCII Viết thủ tục SAP thực chuyển đổi số nguyên VAL 16 bit thành số CHA hệ số 10 biểu diễn mã ASCII Thủ tục gọi chương trình tìm số lớn ( Tìm số lớn dãy số -> file 2s.1.Max.asm , 2s.1.Max.exe ) Giải thích chương trình : - Dãy số có dấu nhập từ bàn phím ( gọi thủ tục Nhap ) Các phần tử phải nằm khoảng ( -32768 , 32767 ) Nếu nhập sai , kết chương trình không xác - Tìm phần tử lớn cách so sánh liên tiếp cặp phần tử duyệt hết dãy số Sử dụng : + Thanh ghi CX làm biến đếm ( chứa số phần tử N dãy số ) + Thanh ghi AX chứa phần tử lớn tạm thời ( ban đầu phần tử đầu dãy số ) + Thanh ghi BX trỏ tới phần tử dãy số sau thực so sánh Kết thúc trình so sánh , AX chứa phần tử lớn dãy - Việc chuyển đổi số 16bit thành thập phân in hình thực nhờ thủ tục SAP ( chia liên tiếp số cần in cho 10 , in số dư hình ) - Khai báo & sử dụng MACRO Thongbao để in chuỗi kí tự hình , MACRO Xuongdong để chuyển trỏ xuống dòng Mục lục Nguyễn Ngọc Linh HTTT – KSCLC K52 Chạy chương trình : - Trường hợp bình thường - Trường hợp nhập sai quy định , chương trình cho kết không xác Mục lục Nguyễn Ngọc Linh HTTT – KSCLC K52 Phần Cơ chế ngắt , lời gọi hệ thống Khảo sát version DOS máy thực - Chạy lệnh VER dấu nhắc dòng lệnh - Kết : Microsoft Windows 6.1.7601 Viết thủ tục thực hiển thị lên hình N vector ngắt hệ thống (0N1 -> ko la xau ;N2!=0 & N2STOP -> dung JMP REPEAT RETURN: POP SI ;restore ghi,qay lai ct chinh POP DI POP DX POP CX POP AX RET CHECK ENDP ; BACKSPACE PROC ;khi an phim Backspace PUSH AX ;backup ghi 26 Mục lục Nguyễn Ngọc Linh HTTT – KSCLC K52 PUSH BX PUSH DX MOV AH,2 MOV DL,32 INT 21h ;xuat khoang trang ;dua tro ve truoc vi tri MOV AH,3 XOR BX,BX INT 10h DEC DL MOV AH,2 INT 10h POP DX ;restore ghi,qay lai ct chinh POP BX POP AX RET BACKSPACE ENDP ; BACKERROR PROC ;loi xoa chua nhap xau PUSH AX PUSH BX PUSH DX MOV AH,3 XOR BX,BX INT 10h INC DL MOV AH,2 INT 10h POP DX POP BX POP AX RET BACKERROR ;lay vi tri hien tai cua tro ;dich tro sang phai vi tri ;cap nhat vi tri moi ENDP 27 Mục lục Nguyễn Ngọc Linh HTTT – KSCLC K52 ; PRTNUM PROC ;in so man hinh ;input: AX PUSH AX ;backup ghi PUSH BX PUSH CX PUSH DX XOR CX,CX MOV BX,10 CMP AX,0 _LOOP1: XOR DX,DX DIV BX PUSH DX INC CX CMP AX,0 JNE _LOOP1 _LOOP2: MOV AH,2 POP DX OR DL,30h INT 21h LOOP _LOOP2 ;khoi tao bien dem ;AX=(DX:AX)/10 ;dua DX=(DX:AX)%10 vao stack ;tang bien dem ;in ket qua ;doi so ky tu Thongbao KT POP POP POP POP RET PRTNUM DX CX BX AX ;restore ghi,qay lai ct chinh ENDP END MAIN 28 Mục lục Nguyễn Ngọc Linh HTTT – KSCLC K52 ;BAI 2.1 Tim so lon nhat day N so 16bit ; -.model small stack data i dw ? N dw ? A dw 100h dup(?) msg1 db 'Nhap so phan tu : $' msg2 db 'Nhap cac phan tu : $' msg3 db 'A[$' msg4 db ']= $' msg5 db 'So lon nhat : $' Thongbao macro msg lea dx,msg mov ah,9 int 21h endm Xuongdong macro mov ah,2 mov dl,0ah int 21h mov dl,0dh int 21h endm code mov ax,@data mov ds,ax Thongbao msg1 call Nhap mov N,ax mov cx,ax lea bx,A ;N:so phan tu cua day so ;cx dem nguoc nhap cac phan tu ;khoi tao mang cac so 29 Mục lục Nguyễn Ngọc Linh HTTT – KSCLC K52 mov i,0 Xuongdong Thongbao msg2 lap1: ;vong lap nhap cac phan tu Xuongdong Thongbao msg3 mov ax,i call SAP Thongbao msg4 call Nhap mov [bx],ax inc i add bx,2 loop lap1 Xuongdong Thongbao msg5 mov cx,N lea bx,A mov ax,[bx] dec cx lap3: add bx,2 cmp ax,[bx] jg lap4 mov ax,[bx] lap4: loop lap3 call SAP ;bx tro toi A ;ax chua A[0] ;so sanh phan tu lien tiep ;neu < thi ax chua phan tu moi ;neu > thi tiep tuc lap3 ;het vong lap lap3 , ax chua phan tu lon nhat mov ah,1 int 21h mov ah,4ch int 21h 30 Mục lục Nguyễn Ngọc Linh HTTT – KSCLC K52 ;nhap so co dau Nhap proc push bx push cx push dx push si mov bx,10 xor cx,cx mov si,cx Nhap1: mov ah,1 int 21h cmp al,0dh ;neu an Enter je Nhap3 cmp al,'-' jne Nhap2 ;neu la so duong inc si ;neu la so am,si jmp Nhap1 Nhap2: xor ah,ah sub al,30h ;ki tu -> so xchg ax,cx ;axcx mul bx ;ax=ax*10+cx add cx,ax ;cx ki tu ;dem so chu so cx phuc vu lap SAP2 ;neu ax thi tiep tuc /10 ;in tung chu so End 32 Mục lục Nguyễn Ngọc Linh HTTT – KSCLC K52 ;BAI 2.2 In N vecto ngat , voi N nhap tu ban phim ; .MODEL SMALL STACK DATA MSG DB 'Nhap so ngat muon in : $' MUITEN DB ' > $' HAICHAM DB ' : $' N DW ? I DB XUONGDONG MACRO MOV AH,2 MOV DL,0AH INT 21H MOV DL,0DH INT 21H ENDM THONGBAO MACRO MSG MOV AH,9 LEA DX,MSG INT 21H ENDM CODE MOV AX,@DATA MOV DS,AX MOV ES,AX THONGBAO MSG CALL NHAP MOV N,AX MOV CX,AX ;N CHUA SO NGAT MUON IN ;KHOI TAO BIEN DEM CX = N PHUC VU VONG LAP ;VONG LAP LAY CAC NGAT NGAT: 33 Mục lục Nguyễn Ngọc Linh HTTT – KSCLC K52 XUONGDONG INC I MOV AL,I MOV AH,0 CALL INRA THONGBAO MUITEN MOV AL,I MOV AH,35H INT 21H ;LAY NGAT = HAM 35 CUA NGAT 21H ;IN VECTO NGAT RA MAN HINH MOV AX,ES CALL INRA THONGBAO HAICHAM MOV AX,BX CALL INRA LOOP NGAT THOAT: MOV AH,1 INT 21H ;LAP DEN KHI CX=0 -> IN RA DU N NGAT MOV AH,4CH INT 21H INRA PROC ;THU TUC IN SO RA MAN HINH ;VAO : AX CHUA SO CAN IN PUSH AX PUSH BX PUSH CX PUSH DX MOV BX,16 34 Mục lục Nguyễn Ngọc Linh HTTT – KSCLC K52 XOR CX,CX Chia16: XOR DX,DX DIV BX ;/16 PUSH DX ;DUA SO DU VAO STACK INC CX CMP CX,3 ;CX = -> IN DU KI TU JBE Chia16 ;LAY SO DU KHOI STACK , IN RA MOV AH,2 Inkq: POP DX CMP DL,9 JBE So ADD DL,7 So: ADD DL,30h INT 21h ;In LOOP Inkq POP DX POP CX POP BX POP AX RET INRA ENDP NHAP PROC PUSH BX PUSH CX PUSH DX PUSH SI ;THU TUC NHAP SO DUONG MOV BX,10 XOR CX,CX MOV SI,CX 35 Mục lục Nguyễn Ngọc Linh HTTT – KSCLC K52 NHAP1: MOV AH,1 INT 21H CMP AL,0DH JE NHAP2 ;NEU AN ENTER ;NEU KO->CHUYEN DOI GTRI XOR AH,AH SUB AL,30H XCHG AX,CX MUL BX ADD CX,AX JMP NHAP1 NHAP2: MOV AX,CX ;KI TU -> SO ;AXCX ;AX=AX*10+CX ;CX[...]... tập tin Vào DS:DX ← Địa chỉ chuỗi tên tập tin cũ ES:DI ← Địa chỉ chuỗi tên tập tin mới Ra Không 4.Khảo sát thực hiện các lời gọi hệ thống của DOS, giải thích cơ chế thực hiện một lời gọi hệ thống trên máy thực tế (tùy chọn một lời gọi) * Lời gọi hệ thống : => Cung cấp giao diện giữa một quá trình và hệ điều hành Các lời gọi này thường dùng các lệnh hợp ngữ Lời gọi hệ thống được thực hiện nhờ các ngắt... chương trình phục vụ ngắt -Hàm 3Ch : Tạo tập tin mới Vào DS:DX ← Địa chỉ chuỗi tên của tập tin mới CX ← thuộc tính của tập tin (0: bình thường, 1: chỉ đọc, 2: ẩn,4: tập tin hệ thống) Ra AX : Thẻ tập tin -Hàm 3Dh : Mở tập tin trên đĩa Vào DS:DX ← Địa chỉ chuỗi tên của tập tin mới AL ← kiểu truy xuất tập tin (0: chỉ đọc, 1: chỉ ghi, 2: đọc/ghi) Ra AX : Thẻ tập tin 12 Mục lục Nguyễn Ngọc Linh HTTT – KSCLC... khi hoàn thành các bài tập trên , sinh viên có thể : * Làm quen với hợp ngữ : - Nắm được cấu trúc của 1 chương trình hợp ngữ - Hiều & biết cách sử dụng các thanh ghi và ngăn xếp - Hiểu & biết cách sử dụng các cấu trúc lặp , rẽ nhanh , các hàm của ngắt ( chủ yếu là ngắt 21h ) , biết cách tổ chức chương trình con ( thủ tục ) , macro và sử dụng chúng trong chương trình chính * Nắm được các lệnh thường... -Hàm 3Eh : Đóng tập tin đang mở Vào BX ← Thẻ tập tin Ra AX : Mã lỗi (nếu có) Sau khi xử lý xong tập tin và trước khi thoát khỏi chương trình, tập tin phải được đóng lại để cập nhật thông tin hoặc nội dung mới của tập tin -Hàm 3Fh : Đọc nội dung tập tin vào bộ nhớ Vào DS:DX ← Địa chỉ vùng nhớ chứa dữ liệu đọc được BX ← Thẻ tập tin cần đọc CX ← số byte cần đọc Ra AX : Số byte... Có kiến thức cơ bản về cơ chế quản lý bộ nhớ của hệ điều hành đối với 1 chương trình ứng dụng Sử dụng công cụ debug sẵn có của hệ điều hành để khảo sát các thanh ghi và ngăn xếp trong quá trình chạy 1 chương trình Từ trên , có thể thấy rằng đây là các bài tập cần thiết bởi nó liên quan đến những nội dung quan trọng trong chương trình học Bài tập lớn giúp sinh viên nắm vững & hệ thống lại các kiến. .. trên lớp , đồng thời phát hiện & kịp thời khắc phục những thiếu sót trong quá trình học trước đó , cải thiện hiệu quả trong môn học Kiến trúc các hệ thống thông tin 21 Mục lục Nguyễn Ngọc Linh HTTT – KSCLC K52 D PHỤ LỤC CÁC CHƢƠNG TRÌNH ASSEMBLY ;BAI 1 + Nhap 2 xau X Y ; + Kiem tra Y chua trong X , neu co thi o vi tri nao , may lan ? ; ... 4 Giải thích nội dung các thanh ghi, trên cơ sở đó giải thích cơ chế quản lý bộ nhớ của hệ thống trong trường hợp cụ thể này - Khi chương trình bắt đầu chạy , hệ điều hành tự động khởi tạo các thanh ghi , vùng nhớ và cấp phát không gian địa chỉ cho chương trình - Tương ứng với các câu lệnh trong mã nguồn , nội dung các thanh ghi có thể thay đổi hoặc không + IP là thanh... thường dùng các lệnh hợp ngữ Lời gọi hệ thống được thực hiện nhờ các ngắt Cơ chế thực hiện 1 lời gọi hệ thống , lấy ví dụ với 1 lời gọi hệ thống trên máy thực tế : dùng ngắt 21h , hàm 09h để in 1 chuỗi kí tự ra màn hình - Khi gặp 1 lời gọi hệ thống ( ngắt ) , trạng thái của chương trình chính ( nội dung các thanh ghi , cờ , quan trọng nhất là nội dung của con trỏ CS:IP ) được sao lưu - CPU tìm địa chỉ... bộ nhớ vào tập tin Vào DS:DX ← Địa chỉ vùng nhớ chứa dữ liệu cần ghi BX ← Thẻ tập tin cần đọc CX ← số byte cần ghi Ra AX : Số byte ghi được Các hàm 3Fh và 40h cũng có thể được sử dụng đọc hoặc ghi dữ liệu cho ngoại vi, vì DOS quản lý việc truy xuất ngoại vi bằng thẻ -Hàm 41h : Xóa tập tin trên đĩa Vào DS:DX ← Địa chỉ chuỗi tên tập tin Ra AX : Mã lỗi (nếu có) -Hàm 42h : Dời con trỏ tập tin hiện hành... tới chương trình con phục vụ ngắt bằng cách gán địa chỉ của nó vào CS:IP > nội dung 2 thanh ghi bị thay đổi 14 Mục lục Nguyễn Ngọc Linh HTTT – KSCLC K52 - Thực hiện chương trình con ( lời gọi hệ thống ) - Sau khi thực hiện xong , khôi phục trạng thái của các thanh ghi , trở về chương trình chính để thực hiện các lệnh tiếp theo 15 Mục lục Nguyễn ... Nguyễn Ngọc Linh HTTT – KSCLC K52 - In vị trí tìm thấy chuỗi ( có ) - Sử dụng biến đếm (DEM) để xác định số lần xuất chuỗi Y X - Khi việc... thúc , DEM = -> Y không chuỗi X Ngược lại , Y chuỗi X - Việc in số thực nhờ thủ tục PRTNUM ( chia liên tiếp số cần in cho 10 , in số dư hình ) - Khai báo & sử dụng Macro Thongbao để in chuỗi... số dư hình ) - Lặp N lần trình để in đủ N vector ngắt - Khai báo & sử dụng MACRO Thongbao để in chuỗi kí tự hình , MACRO Xuongdong để chuyển trỏ xuống dòng Mục lục Nguyễn Ngọc Linh HTTT – KSCLC

Ngày đăng: 30/12/2015, 20:48

TỪ KHÓA LIÊN QUAN

w