intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Kiến trúc máy tính - Bài thực hành 3

Chia sẻ: Nguyễn Xuân Quang | Ngày: | Loại File: PDF | Số trang:10

167
lượt xem
37
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'kiến trúc máy tính - bài thực hành 3', công nghệ thông tin, phần cứng phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Kiến trúc máy tính - Bài thực hành 3

  1. Bài 3: S d ng công c TASM đ d ch chương trình M c đích c a bài th c hành: Giúp sinh viên làm quen v i công c Turbo Assember đ d ch các chương trình h p ng . Các bài t p th c hành: 1. Tìm hi u các thông s c a chương trình th c thi TASM.EXE, TLINK.EXE, EXE2BIN.EXE Hư ng d n: Vào ch đ command line, gõ l n lư t: TASM /? TLINK/? EXE2BIN /? 2. S d ng công c so n th o chương trình, so n hai file m u chương trình Hello Assembly d ng COM và d ng EXE đã h c trong bu i lý thuy t v i tên đ t là: Hello_E.ASM Cho chương trình d ng EXE Hello_C.ASM Cho chương trình d ng COM 3. D ch và th c thi hai file ngu n Hello_E.ASM và Hello_C.ASM b ng công c TASM Hư ng d n: + Vào ch đ dòng l nh(Start Run CMD.EXE) + Dùng l nh CD đ chuy n đ n thư m c ch a file ngu n đã t o + Dùng l nh PATH đ thi t l p đư ng d n đ n công c TASM PATH < ư ng d n n các file TASM.EXE, TLINK.EXE> ↵ Lưu ý: có th double click lên file thuchanh.bat đ th c hi n các công vi c trên m t cách nhanh chóng. +D ch và th c thi file d ng EXE (Hello_E.ASM) : B1. D ch file ngu n Hello_E.ASM thành file Hello_E.OBJ TASM Hello_E.ASM ↵ Dùng l nh DIR xem đã xu t hi n file Hello_E.OBJ chưa B2. Chuy n file Hello_E.OBJ thành file th c thi Hello_E.EXE TLINK Hello_E.OBJ ↵ Dùng l nh DIR xem đã xu t hi n file Hello_E.EXE chưa B3. Th c thi file EXE b ng cách gõ tên file Hello_E ch đ dòng l nh và ghi nh n k t qu : Hello_E ↵ +D ch và th c thi file d ng COM (Hello_C.ASM) : B1. & B2. Làm tương t d ng EXE Sau các bư c này ta có file Hello_C.EXE 18
  2. B3. Chuy n file EXE thành file COM: EXE2BIN Hello_C.EXE Hello_C.COM ↵ Dùng l nh DIR xem đã xu t hi n file Hello_C.COM chưa B4. Th c thi file Hello_C.COM So sánh kích thư c c a hai file Hello_C.COM và Hello_E.EXE 4. Th debug chương trình COM và EXE b ng chương trình DEBUG Hư ng d n: DEBUG HELLO_C.COM DEBUG HELLO_E.EXE Dùng l nh D, U đ xem n i dung chương trình trong b nh , G đ th c thi. 5. Th debug chương trình COM và EXE b ng chương trình TD (Turbo debugger) Hư ng d n: TD HELLO_C.COM TD HELLO_E.EXE Bài t p: Vi t chương trình in ra màn hình các thông tin v sinh viên như sau, m i thông tin in trên 1 dòng Truong:…. Lop:…. Ho va ten: ….. Yêu c u: Vi t cho hai d ng EXE và COM G i ý: có th in ra chu i sau đ đi u khi n vi c xu ng dòng: xuongdong db 0Dh,0Ah,’$’ 19
  3. Bài 4: Ng t và các chương trình ph c v xu t nh p M c đích c a bài th c hành: Giúp sinh viên làm quen v i các thao tác xu t nh p màn hình /bàn phím qua INT 21h. Sinh viên tham kh o thêm trong cu n giáo trình. 4.1. Khái ni m ng t và các chương trình ph c v : S d ng các l nh IN / OUT cho các thao tác xu t nh p các thi t b ngo i vi là công vi c ph c t p, đòi h i ngư i l p trình ph i am hi u ph n c ng máy tính. Ngoài ra tùy theo các lo i máy tính mà s hi u c ng c a các thi t b ngo i vi có th thay đ i. Vì v y đ đơn gi n, các nhà s n xu t máy tính đã cung c p s n các chương trình ph c v vào ra cơ b n cho ngư i l p trình và ngư i l p trình s g i các chương trình ph c v này thông qua l i g i ng t INT INT s _hi u_ng t Cú pháp: M i s hi u ng t tương ng v i m t b chương trình ph c v , m i b chương trình g m nhi u hàm, các hàm đư c ch n thông qua thanh ghi AH. INT 21h/AH=1 : Nh p 1 ký t t bàn phím Ví d : INT 21h/AH=2 : Xu t 1 ký t ra màn hình INT 21h/AH=9 : Xu t 1 chu i ký t ra màn hình 4.2. Các chương trình ph c v nh p xu t cơ b n qua ng t INT 21h 4.2.1. Nh p ký t t bàn phím a. INT 21h/AH=1 • Nh p m t ký t t bàn phím và có hi n th ký t này ra màn hình • G i v i: AH=1 INT 21h • Tr tr v : AL = mã ASCII c a ký t v a nh p • Bài t p th c hành: Th hàm này b ng trình debug Hư ng d n: Kh i đ ng Debug, nh p vào đo n chương trình g i hàm INT21h/AH=1 đ a ch CS:100h -a 100 17E1:0100 MOV AH,1 17E1:0102 INT 21 17E1:0104 Lưu ý trong debug h mmc nh là 16 nên ch c n vi t 21 thay vì 21h 20
  4. Th c thi đo n chương trình g m 2 l nh v a nh p, và nh p vào 1 ký t b t kỳ (trong ví d này nh p vào ký t B): -g=100 104 B Xem n i dung các thanh ghi sau khi th c hi n xong: AX=0142 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=17E1 ES=17E1 SS=17E1 CS=17E1 IP=0104 NV UP EI PL NZ NA PO NC 17E1:0104 0000 ADD [BX+SI],AL DS:0000=CD AX có giá tr 0142, v i AH=01 (gán b i l nh MOV) và AL=42h (mã ASCII c a ký t ‘B’ đã nh p) b. INT 21h/AH=8 • Nh p m t ký t t bàn phím nhưng không hi n th ký t này ra màn hình • G i v i: AH=8 INT 21h • Tr tr v : AL = mã ASCII c a ký t v a nh p • Bài t p th c hành: Th hàm này b ng trình debug tương t như m c a. 4.2.2. Nh p chu i t bàn phím - INT 21h/AH=0Ah • Nh p m t chu i ký t t bàn phím v i chi u dài t i đa 255, dùng phím BACKSPACE đ s a ký t , ENTER đ k t thúc vi c nh p • G i v i: AH=0Ah DS:DX = đ a ch c a vùng đ m lưu chu i INT 21h • Tr tr v : không có • Chú ý: Vùng đ m lưu chu i ph i có d ng sau: o Byte đ u tiên: kích thư c c a vùng đ m, th hi n s byte t i đa c n đ c - c n ph i gán trư c khi g i hàm o Byte th hai: s byte th c s đ c – đư c tr v sau khi g i hàm o Các byte ti p theo: lưu các ký t đã nh p vào – đư c gán sau khi g i hàm • Bài t p th c hành: Th hàm này b ng trình debug tương t như m c a. Hư ng d n: Nh p chu i dài t i đa 20 ký t (14h) vào vùng nh DS:202h Dùng l nh E chu n b vùng đ m ch a chu i nh p g m byte đ u tiên ch a giá tr 14h, byte th 2 ch a giá tr 0: -E DS:200 14 00 Dùng l nh D ki m tra l i: 21
  5. -d 200 17E1:0200 14 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 17E1:0210 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 17E1:0220 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 17E1:0230 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 17E1:0240 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 17E1:0250 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 17E1:0260 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 17E1:0270 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ Nh p đo n chương trình vào: -a cs:100 17E1:0100 mov dx,200 17E1:0103 mov ah,0a 17E1:0105 int 21 17E1:0107 Th c thi và nh p th 1 chu i: -g=100 107 Ki m tra l i vùng nh DS:202: -D DS:200 Xem s ký t đã nh p ch a trong byte đ a ch DS:201 4.2.3. Hàm xu t ký t INT 21h/AH=2 • Hi n th ký t có mã ASCII ch a trong DL ra màn hình • G i v i: AH=2 DL = Mã ASCII c a ký t mu n xu t INT 21h • Tr tr v : không có • Chú ý: Các ký t đ c bi t o Ký t có mã ASCII 41h : ‘A’ Như v y 42h là ‘B’, 43h là ‘C’ … o Ký t có mã ASCII 61h : ‘a’ o Ký t có mã ASCII là 0Ah: xu ng dòng o Ký t có mã ASCII là 0Dh: v đ u dòng • Bài t p th c hành: Th hàm này b ng trình debug Ví d : In ra màn hình ký t ‘A’ MOV AH,2 MOV DL,41h INT 21h Ví d : Phát ti ng Beep MOV AH,2 MOV DL,7 INT 21h 22
  6. 4.2.4. Hàm xu t chu i INT 21h/AH=9 • Xu t m t chu i ký t ra màn hình. Chu i ph i k t thúc b ng ký t ‘$’ • G i v i: AH=9 DS:DX = Đ a ch c a chu i c n xu t INT 21h • Tr tr v : không có • Bài t p th c hành: Th hàm này b ng trình debug Hư ng d n: Dùng l nh E nh p vào chu i ‘Thuc hanh hop ngu$’ vào vùng nh b t đ u đa ch DS:500h Nh p đo n chương trình sau vào vùng nh CS:100h b ng l nh A MOV DX,500 MOV AH,9 INT 21h INT 20h Th c thi đo n chương trình trên b ng l nh G Bài t p t ng h p: 1. Vi t chương trình nh p 1 ký t là ch cái in hoa t bàn phím, in ra màn hình ký t in thư ng tương ng. G i ý: kí t thư ng cách ký t hoa 1 giá tr là 20h, nên vi c đ i t hoa sang thư ng đư c th c hi n b ng cách c ng thêm 1 lư ng 20h và đ i t thư ng sang hoa b ng cách tr đi m t lư ng 20h vào mã ASCII c a nó qua 2 l nh sau: ADD DL,20h ; V i DL ch a mã ASCII c a ký t cn i sang ch thư ng SUB DL,20h ; V i DL ch a mã ASCII c a ký t cn i sang ch hoa 2. Vi t chương trình nh p 1 ký t là ch cái in thư ng t bàn phím, in ra màn hình ký t in hoa tương ng. 3. Vi t chương trình in ra màn hình các thông tin v sinh viên như sau, m i thông tin in trên 1 dòng. Khi in xong m t dòng, ph i đ i ngư i dùng nh n phím ENTER r i m i in dòng ti p theo. Truong:…. Lop:…. Ho va ten: ….. 23
  7. Bài 5: Nhóm l nh chuy n d li u Bài t p th c hành: 1. Nh p đo n chương trình sau b ng chương trình debug, th c thi t ng bư c b ng l nh T, cho bi t k t qu các thanh ghi sau khi th c hi n xong chương trình MOV AX, 05ABh MOV BX, 1 XCHG BH, BL MOV CX, BX XCHG AL, CL Chú ý trong debug, m c đ nh là s h 16 nên giá tr h ng h 16 không c n thêm ‘h’ vào cu i. 2. Nh p đo n chương trình sau b ng chương trình debug, th c thi t ng bư c b ng l nh T, cho bi t k t qu các thanh ghi sau khi th c hi n xong chương trình. Nh n xét tác đ ng c a l nh PUSH và POP lên thanh ghi SP. MOV AX, 05A0h PUSH AX XCHG AH, AL PUSH AX POP BX POP CX 3. Nh p đo n chương trình trong Debug hoán đ i n i dung hai vùng nh g m 5 byte. Vùng nh th nh t đ a ch DS:100h, vùng nh th hai đ a ch DS:120h Nh p d li u cho 2 vùng nh đ ch y th 4. Vi t chương trình hoàn ch nh d ng COM ho c EXE cho phép nh p m t chu i g m đúng 5 ký t . In ra màn hình chu i này theo th t đ o ngư c. D ch chương trình v i TASM. 5. Vi t chương trình hoàn ch nh d ng COM ho c EXE cho phép nh p m t chu i t bàn phím v i s lư ng ký t tùy ý không vư t quá 15. In ra màn hình chu i này và cho bi t s ký t th c s nh p d ng s Hex. D ch chương trình v i TASM. 24
  8. Bài 6: Nhóm l nh chuy n i u khi n Bài t p th c hành: 1. Th nghi m l nh CMP left,right tác đ ng lên các bit c ZF, CF, SF như th nào trong 2 trư ng h p và đi n vào các ô tr ng trong b ng tương ng: a. So sánh s không d u Đ i u ki n Z F CF left > right left = right left < right Hư ng d n: Th so sánh v i các c p (5,4), (5,5) , (5,6) Gán trư c giá tr c a AL giá tr b t kỳ (ví d là 5) MOV AL,5 L n lư t th nghi m v i các l nh: CMP AL,4 CMP AL,5 CMP AL,6 b. So sánh s có d u Đ i u ki n Z F CF S F left > right left = right left < right Th so sánh v i các c p (5,-4) (-5,-5) , (-5,5), (-5,-4) , (-5,-6) 2. Vi t chương trình chương trình nh p vào m t ký t , cho bi t ký t này là ch hoa, ch thư ng hay không là ch cái. 25
  9. 3. Vi t chương trình nh p t bàn phím m t ký t s ch th (2,3,4,5,6,7,C). In ra màn hình tên ngày b ng ch tương ng (Monday, Tuesday, Wednesday, Thurday, Friday, Saturday, Sunday) 4. Nh p m t chu i t bàn phím, in ra chu i này 20 l n liên ti p nhau trên màn hình. 5. Vi t chương trình nh p vào m t chu i các ký t , in ra màn hình chu i m i v i các ký t thư ng đ i thành các ký t hoa. 6. Vi t chương trình nh p vào m t chu i các ký t , in ra màn hình chu i này theo th t đ o ngư c. 7. Vi t chương trình nh p vào m t chu i các ký t , in ra màn hình chu i này đã lo i b các kho ng tr ng. 8. Vi t chương trình nh p vào m t chu i các ký t , in ra màn hình chu i này đã lo i b các kho ng tr ng. 9. Vi t chương trình nh p vào m t chu i các ký t , in ra màn hình chu i này v i các kho ng tr ng li n nhau đư c thay b ng 1 kho ng tr ng duy nh t. 10. Vi t chương trình con lower đ i ch hoa sang ch thư ng, v i AL ch a mã ASCII c a ký t c n chuy n, k t qu chuy n vào AL. 26
  10. Bài 7: Nhóm l nh tính toán s h c và lu n lý Bài t p th c hành: 1. Vi t chương trình nh p vào m t ký t , in ra mã asscii c a nó dư i d ng th p phân 2. Vi t chương trình nh p vào m t ký t , in ra mã asscii c a nó dư i d ng th p l c phân 3. Vi t chương trình nh p vào m t giá tr nguyên không d u nh hơn 255. In ra màn hình ký t có mã ASCII này. 4. Vi t chương trình nh p vào m t giá tr hex 8bit. In ra màn hình ký t có mã ASCII này. 5. Vi t chương trình con hi n th m t s word (16bit) ra màn hình dư i d ng th p phân 6. Vi t chương trình con hi n th m t s word (16bit) ra màn hình dư i d ng th p l c phân 7. Vi t chương trình nh p s s nguyên (0..65535) t bàn phím và in s nguyên này ra màn hình dư i d ng th p l c phân 8. Vi t chương trình nh p vào 1 chu i nh phân g m t i đa 16 ch s 0 và 1. In ra giá tr s nh phân này dư i d ng: a. S th p phân không d u b. S th p phân có d u 9. Vi t chương trình nh p vào 2 s th p phân 16 bit không d u, tính và in ra màn hình USCLN c a 2 s này. 27
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2