Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
174,5 KB
Nội dung
CễNGTHNG TP ON DT MAY VIT NAM TRNG CAO NG KINH T-K THUT VINATEX KHOA CễNG NGH THễNG TIN KIN TRC MY TNH TI: TèM HIU PHN MM Mễ PHNG PCSPIM GVHD: NHểM THC HIN: TP.H CH MINH 06/2011 LI M U Ngy ngi ca chỳng ta ang sng vi s phỏt trin mnh m ca khoa hc v cụng ngh, kốm theo vi s i ca mỏy tớnh, ngnh cụng ngh thụng tin ó i giỳp cho ngi t chc khai thỏc v s dng cú hiu qu cỏc ngun ti nguyờn thụng tin cng nh mi tim nng tt c cỏc hot ng ca chỳng ta.B mụn hc kin trỳc mỏy tớnh l mt ng dng ca cụng ngh thụng tin nú ó giỳp chỳng ta hiu rừ hn v lch s phỏt trin ca mỏy tớnh cỏc bin i c bn ca h thng s, cỏc bng mó thụng dng , lnh, cỏc tỏc v m mỏy tớnh cú th thc hin h tr cho vic hc cng nh nghiờn cu, phn mm PCSpim ó i õy l mt phn mm mụ phng giỳp cho ngi hc d dng thc hin cỏc thao tỏt trờn nú d dng hn so vi mỏy tớnh tht nht l vic nghiờn cu v phỏt trin cỏc b vi x lý Nhm giỳp cỏc bn hiu rừ hn phn no v hot ng cng nh cu trỳc phn mm ny chỳng em chn nghiờn cu ti :Tỡm hiu phn mm mụ phng PCSPIM cho bi tiu lun ca mỡnh Vỡ lý thi gian cng nh kin thc cú hn nờn bi tiu lun cũn nhiu thiu sút, rt mong nhn c ý kin úng gúp ca quý thy cụ cng nh cỏc bn MC LC Li m u Ni dung Tng quan v phn mm mụ phng PC SPIM c im Spim Giao din PCSpim Cỏc thao tỏc vi PCSpim Cu trỳc chng trỡnh PCSpim Cỳ phỏp hp ng assembler System calls Cỏc lnh v chng trỡnh PCSPIM Chng trỡnh minh Gii thiu chung v PCSpim(MIPS) PCSPIM l phn mm mụ phng cú th chy chng trỡnh cho MIPS R2000/R3000RISC computer (MIPS l vit tt ca Microprocessor without Interlocked Pipeline Stages, l kin trỳc b lnh RISC phỏt trin bi MIPS Technologies) giỏo s James Laurus khoa Khoa hc mỏy tớnh, trng i hc University of WisconsinMadison thc hin SPIM cú th c v thc hin cỏc file cha ngụn ng assembly SPIM l bn cht cha h thng chy cỏc chng trỡnh cha g ri v giao din phc v h iu hnh S phỏt trin ca mụi trng SPIM c s dng phỏt trin phn mm cho cỏc nn tng phn cng cng nh cho cỏc mụ phng khỏc nhau.Phn mm mụ phng cú th cung cp mụi trng lp trỡnh lm vic tt hn mỏy thc t Vớ d SPIM cú giao din window tt cú th sa c hu ht cỏc li mỏy tớnh thc t SPIM l cụng c hu hiu cho vic hc phn cng mỏy tớnh v chng trỡnh cú th chy trờn nú vỡ nú thc hin bng phn mm, cú th d dng chnh sa, thờm cõu lnh mi, xõy dng h thng mi nh b a x lý, hoc chn d liu n gin S mụ phng mỏy o ca MIPS: vi lnh MIPS hu ht cỏc mỏy tớnh RISC khú cú th lp trỡnh trc tip.S khú khn cú th c gii quyt t nhng mỏy tớnh c thit k lp trỡnh bng ngụn ng bc cao v giao din thit k cho trỡnh biờn dch, khụng phi ngi lp trỡnh.Hn th na nú ging vi phn cng hin ti Spim cú nhiu phiờn bn khỏc hot ng trờn nhiu nn tng hệ điều hành: Unix, Linux v Mac OS X cú phiờn bn: Spim: thao tỏc trờn giao din terminal n gin Xspim: thao tỏc trờn ca s Microsoft Windows cú phiờn bn: Spim: thao tỏc trờn giao din terminal n gin PCSpim: thao tỏc trờn ca s ca Windows (PCSpim 7.2.1 - Windows XP) c im ca Spim: Cho phộp c v thc thi cỏc mó chng trỡnh vit bng ngụn ng Assembly cho cỏc b x lý MIPS32 Cung cp trỡnh g li Cung cp cỏc dch v ti thiu ca h iu hnh (system call) H tr tt cho nghiờn cu hot ng mụ phng b VXL c s dng lm thc hnh cho mụn KTMT rt nhiu trng i hc trờn th gii Giao din phn mm PCSpim Bao gm ca s chớnh v ca s console Ca s chớnh bao gm: Phn trờn cựng hin th ni dung ca 32 ghi ca CPU v FPU Ni dung s t ng cp nht chng trỡnh hp ng chy Phn di k tip hin th mó ca chng trỡnh dng hp ng, dng mó mỏy (s hex ct th t trỏi qua), v a ch tng ng ca mi lnh (ct u tiờn bờn trỏi) Phn di k tip hin th d liu khai bỏo chng trỡnh hp ng (vớ d: mng hay chui) v d liu vựng ngn xp chng trỡnh hp ng c thc thi Phn di cựng hin th cỏc thụng tin ph ca SPIM, thụng tin v li nu cú Chng trỡnh hp ng mun chy c phi c load trc load chng trỡnh hp ng ( dng mt file cú uụi m rng l *.asm hay *.s), thc hin thao tỏc File menu -> Open -> chn file cha chng trỡnh cn load to file *.asm, chỳng ta cú th dựng cỏc chng trỡnh son tho thụ nh Notepad, Notepad++, EditPlus Vựng ghi CPU v FDU Lnh: /c + mó lnh + lnh gi nh B nh chng trỡnh + Stack Thụng bỏo ca PCSpim Ca s Console u hin th ca b x lý Sau chng trỡnh hp ng ó c load, chỳng ta cú th thc hin chy chng trỡnh v quan sỏt s thay i giỏ tr cỏc ghi, cỏc ụ nh, v trớ v lnh ang c thc thi Cỏc tỏc v chy chng trỡnh Simulator menu Cỏc bc chy v quan sỏt quỏ trỡnh chy ca chng trỡnh hp ng trờn PCSpim:Chn Simulator -> Breakpoints (hoc nhn Ctrl+B) Ca s hin in vo textbox Address giỏ tr 0x00400000, chn Add Chn Simulator -> Go (hoc nhn F5) in giỏ tr 0x00400000 vo texbox Starting Address, chn OK Giỏ tr ca ghi PC lỳc ny l 0x00400000 Chn Simulator -> Single Step (hoc nhn F10) chy tng dũng ln chng trỡnh Chỳng ta cú th quan sỏt kt qu thc hin thụng qua giỏ tr ca cỏc ghi, cỏc ụ nh liờn quan Cỏch khỏc chy chng trỡnh ngun: Simularor -> SetValue, ca s hin ra, in vo textbox Register Name giỏ tr PC, in vo textbox Value giỏ tr 0x00400000 Sau ú nhn F10 chy tng bc hay F5 chy cho n gp breakpoints Cỏc thao tỏc vi PCSpim Load mó assembly (*.s) Mụ phng hot ng Ch debug Chy tng lnh Chy N lnh Chy chng trỡnh Breakpoint Cho phộp xem giỏ tr cỏc ghi Cu trỳc chng trỡnh PCSpim File mó ngun assembly l cỏc file text cú cha phn khai bỏo d liu v mó chng trỡnh Cỏc khai bỏo d liu: c t phn chng trỡnh vi khai bỏo data Dựng khai bỏo tờn cỏc bin s dng chng trỡnh Mó chng trỡnh c t phn chng trỡnh vi khai bỏo text Cha mó lnh ca chng trỡnh im bt u t ti nhón main: im kt thỳc nm sau li gi h thng thoỏt Chỳ thớch Trong dũng, mi ký hiu t sau du # u c coi l chỳ thớch v c b qua dch mó ngun data (Khai bỏo hng v bin.) text globl main main: li $v0, 10 syscall # Main (must be global) (Bt u chng trỡnh.) # Syscall to exit Cú pháp chơng trình hợp ngữ assembler Chú thích ngôn ngữ assembler bắt đầu kí hiệu # Mọi kí hiệu sau dấu # đợc bỏ qua chơng trình dịch Xác định kí tự gồm chữ số cách tuần tự, dấu gạch chân ( _ ), dấu chm (.) mà không bắt đầu chữ số Ký t đợc đóng mở dấu ngoặc kép () Kí tự đặc biệt giống nh quy ớc C: Newline \n Tab \t Quote \ Spim tích hợp tập nhỏ hớng dẫn assembler cung cấp MIPS assembler: align n : thẳng hàng số lợng cho giới hạn ranh giới 2n byte ascii str : lu trữ string nhớ, giá trị trả rỗng .asciiz str : lu trữ string nhớ, giá trị trả rỗng .byte b1,,bn : lu trữ n giá trị byte liên tiếp nhớ .data : theo liệu nên đợc lu trữ đoạn liệu Nếu không bắt buộc, items lu trữ bắt đầu địa addr .double d1,,dn: Lu trữ n số thực dấu chấm động xác double nhớ .extern sym size : trình bày số lợng cho đợc lu trữ sym kích cõ byte lớn kí hiệu toàn cục Câu lệnh cho phép assembler để lu trữ số lợng cho đoạn liệu phân chia có hiệu truy nhập vào ghi $gp .float f1,,fn : lu trữ số thực với độ xác đơn nhớ .globl sym : trình bày kí tự sym toàn cục đợc tham chiếu từ file khác .half h1,,hn : lu trữ n -16 bit số lợng nhớ .kdata : dòng liệu nên đợc lu trữ nhân đoạn liệu Nếu addr không bắt buộc, items đợc lu trữ bắt đầu địa addr .ktext : item đợc đặt vào nhân đoạn văn Trong SPIM, iems câu lệnh từ ( nh word đợc huy vị trí thâp hơn) Nếu không bắt buộc, items lu trữ bắt đầu địa addr space n : phân phối n byte không gian đoạn hành .text : items tiêp theo đợc đặt vào đoạn văn ngời sử dụng .word w1,,wn :lu trữ n 32 bít số lợng nhớ System calls: SPIM cung cấp tập lệnh phục vụ hệ điều hành gọi lệnh system call (syscall) Để yêu cầu phục vụ, chơng trình load mã gọi hệ thống vào tranh ghi $v0 đối số vào ghi $a0.$a3 (hoặc $f12 cho giá trị số thực dấu chấm động Lời gọi hệ thống (system calls) trả lại giá trị đặt kết vào ghi $v0 (hoặc $f0 kết số thực dấu chấm động) Ví dụ, in the answer = 5, sử dụng lệnh: data Str: asciiz the answer = text li $v0, #system call code for print_str la $a0, str #address of string to print syscall#print the string li $v0, #system call code for print_int li $a0, #interger to print syscall #print it print_int : đa số nguyên qua in cửa sổ console print_float : in số thực dấu chấm đơn print_double : in số loại double print_string : lệnh qua trỏ để trả giá trị null, đợc viết cửa sổ console read_int,read_float, read_double đọc toàn dòng vào bao gồm dòng mới.read_string : có nhiều sematics nh th viện thờng lệ Unix fgets Cỏc b lnh v chng trỡnh PCSPIM 1.Cỏc lnh lun lý: And Andi Or ori xor xori nor sll srl Thit lp cỏc tham s menu Simulator -> Settings: Bare Machine ON, Allow Pseudo Instructions OFF, Load Trap File OFF, Delayed Branches ON, Delayed Loads ON, Mapped IO OFF, Quiet OFF 2.Cỏc lnh s hc: Add addu div multu Addi sub divu mfhi Addiu subu mult mflo Thit lp cỏc tham s menu Simulator -> Settings: Bare Machine ON, Allow Pseudo Instructions OFF, Load Trap File OFF, Delayed Branches ON, Delayed Loads ON, Mapped IO OFF, Quiet OFF Cỏc lnh thao tỏc b nh : Lb Lbu Lh lui lw lhu sb sh sw Thit lp cỏc tham s menu Simulator -> Settings: Bare Machine ON, Allow Pseudo Instructions OFF, Load Trap File OFF, Delayed,Branches ON, Delayed Loads ON, Mapped IO OFF, Quiet OFF 3.Cỏc lnh nhy: J Beq Bgez bne bltz slt slti sltu sltiu Thit lp cỏc tham s menu Simulator -> Settings: Bare Machine ON, Allow Pseudo Instructions OFF, Load Trap File OFF, Delayed Branches ON, Delayed Loads ON, Mapped IO OFF, Quiet OFF 4.Cỏc lnh x lý chui, mng: Add Addi Addiu Addu And Andi Beg Bgez Bltz Bne div divu j lb lbu lh lhu lui lw mfhi mflo mult multu nor or ori sb sh sll slt,slti sltu,sltiu sra srl sub subu sw xor xori Thit lp cỏc tham s menu Simulator -> Settings: Bare Machine ON, Allow Pseudo Instructions OFF, Load Trap File OFF, Delayed Branches ON, Delayed Loads ON, Mapped IO OFF, Quiet OFF 5.Ngoi cũn cú cỏc lnh v chng trỡnh nh:lnh mó gi m rng, cỏc chng trỡnh x lý xut nhp, dựng stack tớnh toỏn biu thc, gi hm n gin, gi hm dựng stack, qun lý bin cc b v gi hm s dng stack pointer v frame pointe Chơng trình nguồn minh họa: data szChao: asciiz "Xin chao cac ban\n" szYeucaunhap: asciiz "Moi ban nhap vao so nguyen (Enter de ket thuc):" szKetqua: asciiz "Ket qua phep cong:" szCRLF: asciiz "\n" text globl main main: # Buoc 1: Dua thong bao xin chao li $v0,4 la $a0,szChao syscall Lap: # Thong bao nhap so li $v0,4 la $a0,szYeucaunhap syscall # Doc gia tri, cat vao ghi $s0 li $v0,5 syscall move $s0,$v0 # Tinh nhan doi addu $a0,$s0,$s0 # Dua man hinh li $v0,1 syscall li $v0,4 la $a0,szCR syscall li $v0,11 li $a0,97 syscall jal Lap li $v0, 10 # Syscall to exit syscall Kt lun PCSpim l mt s nhng phn mm mụ phng cỏc b x lý c s dng rng rói nht ti cỏc trng trờn th gii u im ln nht ca phn mm ny l s n gin cỏch thc hin rt phự hp cho mc ớch hc v nghiờn cu Hin trờn th gii cú rt nhiu khúa hc s dng phn mm ny b tr cho quỏ trỡnh hc Mt s mụn hc s dng hai phm mm ny l kin trỳc mỏy tớnh, ngụn ng Assembly, cỏc h thng vi x lý Vic ng dng v khai thỏc hai phn mm ny s b tr cho cỏc mụn hc v mỏy tớnh, nhm nõng cao kin thc cng nh kinh nghim ca ngi hc Cỏc bn cú th download chng trỡnh ti: http://www.cs.wisc.edu/~larus/SPIM/pcspim.zip Ngoi cỏc bn cú th download ti liu v Mips ti: http://www.mediafire.com/?sodotdmlcny [...]... trên cửa sổ console read_int,read_float, và read_double đọc toàn bộ dòng vào bao gồm cả dòng mới.read_string : có nhiều sematics nh trong th viện thờng lệ của Unix fgets Cỏc b tp lnh v chng trỡnh trong PCSPIM 1.Cỏc tp lnh lun lý: And Andi Or ori xor xori nor sll srl Thit lp cỏc tham s trong menu Simulator -> Settings: Bare Machine ON, Allow Pseudo Instructions OFF, Load Trap File OFF, Delayed Branches... $v0,5 syscall move $s0,$v0 # Tinh nhan doi addu $a0,$s0,$s0 # Dua ra man hinh li $v0,1 syscall li $v0,4 la $a0,szCR syscall li $v0,11 li $a0,97 syscall jal Lap li $v0, 10 # Syscall to exit syscall Kt lun PCSpim l mt trong s nhng phn mm mụ phng cỏc b x lý c s dng rng rói nht ti cỏc trng trờn th gii u im ln nht ca phn mm ny l s n gin trong cỏch thc hin rt phự hp cho mc ớch hc tp v nghiờn cu Hin nay trờn... vi x lý Vic ng dng v khai thỏc hai phn mm ny s b tr cho cỏc mụn hc v mỏy tớnh, nhm nõng cao kin thc cng nh kinh nghim ca ngi hc Cỏc bn cú th download chng trỡnh ti: http://www.cs.wisc.edu/~larus/SPIM /pcspim. zip Ngoi ra cỏc bn cú th download ti liu v Mips ti: http://www.mediafire.com/?sodotdmlcny ... Giao din PCSpim Cỏc thao tỏc vi PCSpim Cu trỳc chng trỡnh PCSpim Cỳ phỏp hp ng assembler System calls Cỏc lnh v chng trỡnh PCSPIM ... Cỏc lnh v chng trỡnh PCSPIM Chng trỡnh minh Gii thiu chung v PCSpim( MIPS) PCSPIM l phn mm mụ phng cú th chy chng trỡnh cho MIPS R2000/R3000RISC computer (MIPS l vit... Microsoft Windows cú phiờn bn: Spim: thao tỏc trờn giao din terminal n gin PCSpim: thao tỏc trờn ca s ca Windows (PCSpim 7.2.1 - Windows XP) c im ca Spim: Cho phộp c v thc thi cỏc mó chng trỡnh