Tải bản đầy đủ (.doc) (4 trang)

Bài tập lớn môn kiến trúc máy tính ngành công nghệ thông tin

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (321.62 KB, 4 trang )

BÀI TẬP LỚN : MÔN KIẾN TRÚC MÁY TÍNH
Họ và tên : PHẠM HỮU THANH
Lớp : 50
th
2
MSSV :0851061208
**************************** ***************************
I/ Viết chương trình
Chương trình cho phép nhập vào một chuỗi ký tự và in ra chuỗi nghịch đảo. Chương trình sử
dụng cả 3 đoạn mã lệnh, dữ liệu, ngăn xếp.
1.code chương trình
TITLE DAOCHUOI
.MODEL SMALL
.DATA
M1 DB 'NHAP VAO 1 CHUOI :$'
M2 DB 'CHUOI NGICH DAO LA:$'
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
;HIEN CHUOI M1 RA MAN HINH
MOV AH,9
LEA DX,M1
INT 21H
;KHOI TAO VONG LAP BAN DAU CX=0
MOV CX,0
NHAP:
;DOC KY TU TU BAN PHIM
MOV AH,1
INT 21H
CMP AL,0DH ;SO SANH AL VOI ENTER


JE INRA ;NHAN ENTER THI NHAY DEN INRA
XOR AH,AH ;AH=0
PUSH AX ;DAY AX VAO NGAN XEP
INC CX ;TANG CX LEN 1
JMP NHAP ;QUAY LAI NHAP
INRA:
;HIEN CHUOI M2 RA MAN HINH
MOV AH,9
LEA DX,M2
INT 21H
LAP:
POP AX ;LAY NOI DUNG RA KHOI NGAN XEP
MOV DL,AL
MOV AH,2
INT 21H ;HIEN KY TU
LOOP LAP
CALL THOAT ;GOI THU TUC
MAIN ENDP
THOAT PROC
MOV AH,4CH
INT 21H
RET
THOAT ENDP
END MAIN
*************************** ***************************
2.Chạy chương trình:
KHI CHẠY NHAN.EXE TA ĐƯỢC CHƯƠNG TRÌNH NHƯ SAU:
NHẬP VÀO CHUỖI ASDFG TA ĐƯỢC:
KẾT QUẢ THU ĐƯỢC: GFDSA
II/ Dùng debug giám sát chương trình:

Bước đầu tiên sau khi vào dùng debug để vào chương trình, ta dùng lệnh r để xem nội dung
của các thanh ghi trong bài dưới dạng hex.
a)Xác định giá trị cặp thanh ghi:
-Đoạn chứa phần mã lệnh CS=13EF
-Đoạn chứa phần mã lệnh IP= 0000
-Đoạn chứa phần mã lệnh DS= 13DF
-Đoạn chứa phần mã lệnh SI=0000
-Đoạn chứa phần mã lệnh SS =13EF
-Đoạn chứa phần mã lệnh SP= 0000
-Dòng thứ ba của chương trình chứa địa chỉ segment : offset, mã máy và dạng hợp ngữ. Các
cặp chữ ở cuối dòng thứ hai là các trạng thái hiện thời của cờ ( bao gồm cờ trạng thái và cờ
điều khiển). Và ở đây chỉ có cờ ngăt được thiết lập còn các cờ khác như cờ tràn, cờ định
hướng, cờ dấu, cờ zero và cờ nhớ phụ, cờ chẵn lẽ, cờ nhớ đều được xóa.
b)Xác định vị trí bắt đầu và kết thúc của các đoạn:
- Chương trình bắt đầu tại 0000h và kết thúc tại 0012h. Nhìn vào sơ đồ hình vẽ dưới ta có thể
thấy được điểm kết thúc, còn các phần còn lại là các kí tự đi kèm theo mã assembly do
chương trình debug tạo ra.
Tiếp đến để hiển thị chương trình ta gõ _U 0000 0012 để hiện thị chương trình
Chương trình sẽ tự động dịch ngược các lệnh từ cuối 0012 lên
-MÃ LÊNH:
+Vị trí bắt đầu
+Vị trí kết thúc
-DỮ LIỆU
+Vị trí bắt đầu
+Vị trí kết thúc
-NGĂN XẾP
+Vị trí bắt đầu
+Vị trí kết thúc
-Vị trí địa chỉ logic segment:
-Vị trí địa chỉ vật lý:

*So sánh
c)Dịch ngược

×