




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)用文檔2013 2014學(xué)年第二學(xué)期藥學(xué)院實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)課程名稱:微型計(jì)算機(jī)技術(shù)及應(yīng)用專業(yè)班級(jí):電子信息工程 12 組號(hào):第一組小組成員:譚浩敏( 1205520131)潤(rùn)強(qiáng)( 1205520106)賞源( 1205520107)實(shí)驗(yàn)指導(dǎo)老師:何永玲實(shí)用文檔(第一組) 實(shí)驗(yàn)二 匯編語(yǔ)言指令仿真組長(zhǎng):譚浩敏 組員:賞源、潤(rùn)強(qiáng)實(shí)驗(yàn)?zāi)康?. 學(xué)會(huì)用實(shí)驗(yàn)的方法驗(yàn)證理論,用理論來(lái)指導(dǎo)實(shí)驗(yàn),進(jìn)一步熟悉匯編語(yǔ)言開發(fā)環(huán)境。2. 深刻理解尋址方式的意義以及 80X86 指令的各種尋址方式。3. 深刻理解 80X86 各種指令的真正含義及功能。4. 掌握與數(shù)據(jù)有關(guān)的不同尋址方式。5. 繼續(xù)熟悉實(shí)驗(yàn)操作軟件的環(huán)境及
2、使用方法。 實(shí)驗(yàn)容及要求一、 在 emu8086 中仿真簡(jiǎn)單指令1. 仿真簡(jiǎn)單指令,請(qǐng)按要求寫出程序代碼及實(shí)驗(yàn)步驟。2. 將實(shí)驗(yàn)結(jié)果與理論結(jié)果進(jìn)行比較,以便深入理解 80X86 指令的各種尋址方式。3. 實(shí)驗(yàn)過(guò)程中遇到的問(wèn)題及解決辦法。4. 寫出心得體會(huì)及還未理解的知識(shí)點(diǎn)。DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=1350H, SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H, (11354H)=52H,(11355H)=0E7H,(126 a 4
3、H)=9DH,(126 a 5H)=16H, (21350H)=88H,(21351H)=51H.下列各指令都在此環(huán)境下執(zhí)行,在下列各小題的空格中填入相應(yīng)個(gè)指令的執(zhí)行結(jié) 果。實(shí)驗(yàn)代碼:MOV AX,1000HMOV DS,AX;不能直接給 DS,SS賦值,只能通過(guò)通用寄存器MOV AX,2000HMOV SS,AXMOV AX,1A2BHMOV BX,1200HMOV CX,339AHMOV BP,1200HMOV SP,1350HMOV SI,1354HMOV 0150HBX,0A5HMOV 0151HBX,3CHMOV 0152HBX,0FFHMOV 0153HBX,26HMOV SI,5
4、2HMOV 1HSI,0E7H實(shí)用文檔MOV 26A4H,9DHMOV 26A5H,16HMOV SS:1350H,88HMOV SS:1351H,51H; 在上面的環(huán)境下,以下一行行的運(yùn)行MOV AX, 1352HMOV AX, 1352HMOV 0150H BX, CHMOV AX, 0150HBPPOP AXADD SI, CXSUB BH, 0150H BXSIINC BYTE PTR 0152H BXINC WORD PTR 0150H BXSAR BYTE PTR 0150H BX, 1SAL BYTE PTR 0150H BX, 1實(shí)驗(yàn)結(jié)果:(1)MOV AX,1352HAX=1
5、352H(2)MOV AX,1352HAX=26FFH(3)MOV 0150HBX,CH(11350H)= 33H ,(11351H)=3CH(4)MOV AX,0150HBPAX=5188H(5)POP AXAX= 5188H ,SP= 1352H6)ADDSI , CX(11354H)= ECH ,(11355H)= 1AHSF= 0 ,ZF= 0 ,PF= 0 ,CF= 1 ,OF= 0(7) SUB BH,0150HBXSIBH= 75H ,SF= 0 ,ZF= 0 ,PF= 0 ,CF= 1 ,OF= 0(8) INC BYTE PTR 0152HBX(11352H)=00H ,(1
6、1353H)= 26H ,CF= 0 ,(9) INC WORD PTR 0150HBX(11352H)= FFH ,11353H=26H ,CF=0(10) SAR BYTE PTR 0150HBX,1(11350H)=D2H ,CF=1 ,OF=0實(shí)用文檔(11)SAL BYTE PTR O150HBX,1(11350H)=4AH ,CF=1 ,OF=1思考題】 指出下列指令中 源操作數(shù)和目的操作數(shù) 的尋址方式: ( 一定要注意分開寫尋址方式 )1)MOV AX, 0AH (2)ADD BX, DX3)PUSH CS( 4)POP DS5)MUL BL (6)MOV D,X 1200H7)
7、 MOVSB( 8)SUB AX,5BP+DI解:( 1) SRC為立即數(shù)尋址, DEST為寄存器尋址;( 2) SRC為寄存器尋址, DEST為寄存器間接尋址;( 3) SRC為寄存器尋址, DEST為隱含堆棧指針寄存器間接尋址;( 4) SRC為隱含堆棧指針寄存器間接尋址,DEST為寄存器尋址;( 5) SRC為寄存器尋址, DEST為寄存器尋址;( 6) SRC為直接尋址, DEST為寄存器尋址;( 7) SRC為寄存器間接尋址, DEST為寄存器間接尋址;( 8) SRC為基址變址相對(duì)尋址, DEST為寄存器尋址;實(shí)驗(yàn)心得與體會(huì): 本次實(shí)驗(yàn)考察的是 8086 指令的尋址方式,我們組在實(shí)
8、驗(yàn)課的時(shí)候準(zhǔn)備不 夠充分, 導(dǎo)致當(dāng)堂實(shí)驗(yàn)效果不明顯, 不過(guò)我們?cè)谡n后有一起討論每條語(yǔ)句的意思, 并且在聽 過(guò)老師課堂上的講解后, 逐步地理解了這個(gè)實(shí)驗(yàn), 希望在下次實(shí)驗(yàn)過(guò)程中做好更充分的準(zhǔn)備, 以便在實(shí)驗(yàn)的過(guò)程中達(dá)到好的效果。實(shí)用文檔實(shí)驗(yàn)三 綜合程序設(shè)計(jì)第一組:譚浩敏、賞源、潤(rùn)強(qiáng)【實(shí)驗(yàn)?zāi)康摹?. 通過(guò)簡(jiǎn)單編程來(lái)理解 80X86 指令系統(tǒng)2. 掌握匯編語(yǔ)言程序的特點(diǎn)及格式3. 掌握定義和使用匯編語(yǔ)言的常量、標(biāo)示符和表達(dá)式4. 掌握匯編語(yǔ)言編程技巧和編程方法?!緦?shí)驗(yàn)容 一】實(shí)驗(yàn)容 1:用 MOV指令實(shí)現(xiàn)兩存字節(jié)單元容的交換代碼: MOV 2035H,01HMOV 2045H,02HMOV AX,2
9、035HMOV BX,2045HMOV 2035H,BXMOV 2045H,AX實(shí)驗(yàn)容 2:把 2060H地址開始的 40 個(gè)字節(jié)單元的容與 2080H地址開始的 40 個(gè)字節(jié) 單元容互換。代碼:DATA SEGMENTDATA ENDSSTACK SEGMENTME1 DW 80H DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS DATA,SS:STACK,ES:DATASTART: MOV AX,1000HMOV DS,AXMOV AX,2000HMOV ES,AXMOV DI,2060H ; 循環(huán)賦值,從偏移量 2060H 開始MOV BX,1
10、HMOV CX,28H ; 循環(huán)次數(shù) 40 次,28H 是 16 進(jìn)制LOOP1: MOV DI,BXINC BXINC DIDEC CXJNZ LOOP1MOV DI,2080H實(shí)用文檔MOV BX,2080HMOV CX,8TEMP: MOV DX,BX ; 此循環(huán)用來(lái)保存被覆蓋的 8 個(gè)存單元MOV ES:DI,DX ; 的數(shù)據(jù),放在 ES段中INC DIINC BXDEC CXJNZ TEMPMOV DI,2080HMOV BX,50HMOV CX,28HLOOP2: MOV DI,BXINC BXINC DIDEC CXJNZ LOOP2; 給后 40 個(gè)存單元循環(huán)賦值,; 從偏移量
11、 2080H 開始。MOV SI,00H ; 交換 40 個(gè)字節(jié)容MOV DI,00HMOV CX,28HR: MOV BL,SI+2060HMOV BH,DI+2080HMOV DI+2080H,BLMOV SI+2060H,BHINC SIINC DIDEC CXJNZ RCODE ENDSEND實(shí)驗(yàn)容 3:如果 X50,轉(zhuǎn)移到 TOO-HIGH,在 TOO-HIGH中將 X 顯示出來(lái) ; 如果帶 符號(hào)減法 XY引起溢出,則轉(zhuǎn)移到 OVERFLO,W在 OVERFLOW中將X 、Y 和 X-Y的結(jié)果顯示出來(lái) ; 否則,計(jì)算 |X-Y| , 并將結(jié)果存放在 RESULT 中 。 ( 其 中
12、, X,Y,RESULT均為字變量)代碼:DATA SEGMENTDAI DB X = : $DAI2 DB Y = : $DAI3 DB |X-Y| = : $X DW -32768Y DW 32RESULT DW 0 DATA ENDS實(shí)用文檔STACKS SEGMENTDW 128 DUP(?)STACKS ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV AX,XCMP AX , 50 ; 比較JG TOO-HIGH; 如果(X) 大于 50, 則轉(zhuǎn)向 TOO-HIGHSUB AX,YJO OVERF
13、LOW; 溢出則轉(zhuǎn)移JNS NONNEG; 無(wú)符號(hào),則轉(zhuǎn)NEG AX ;X Y為正時(shí),補(bǔ)碼為其本身,為負(fù)時(shí)取補(bǔ)碼剛好是它的相反數(shù)。NONNEG: MOV RESULT , AX ; 無(wú)溢出,取絕對(duì)值,并將結(jié)果存入 RESULT HLT ;暫停TOO-HIGH:MOV DX,OFFSET DAIMOVAH,09HINT21HMOV AX,X; CALL SHOW1 ; MOV AH,7 ; INT 21H MOV AX,4C00H ; INT 21H取存數(shù)到 AX 顯示十進(jìn)制形式 暫停退出程序SHOW1:XOR CX ,CX MOV BX ,10NX1:XOR DX,DXDIV BXOR DX,
14、0e30HINC CX PUSH DXCMP AX,0JNZ NX1NX2: POP AX INT 10H實(shí)用文檔LOOP NX2RETOVERFLOW: MOVMOVINTMOV AX,X; CALL SHOW2 ; MOV AH,7 ; INT 21H MOV AX,4C00H ; INT 21HDX,OFFSET DAIAH,09H21H取存數(shù)到 AX 顯示十進(jìn)制形式 暫停退出程序顯示 XSHOW2:XOR CX ,CX MOV BX ,10 NX3:XOR DX,DXDIV BXOR DX,0e30HINC CX PUSH DX CMP AX,0 JNZ NX3 NX4: POP AX
15、INT 10H顯示 YLOOP NX4 MOV DL,0AH MOV AH,02H INT 21HMOV DX,OFFSET DAI2MOV AH,09HINT 21HMOV AX,Y;CALL SHOW3 ;MOV AH,7 ;INT 21HMOV AX,4C00H ;INT 21H取存數(shù)到 AX 顯示十進(jìn)制形式 暫停退出程序SHOW3:實(shí)用文檔XOR CX ,CXMOV BX ,10NX5:XOR DX,DXDIV BXOR DX,0e30HINC CXPUSH DXCMP AX,0JNZ NX5NX6: POP AXINT 10HLOOP NX6MOV DL,0AHMOV AH,02HI
16、NT 21H顯示 |X-Y|MOV DX,OFFSET DAI3MOV AH,09HINT 21HMOV BX ,XSUB BX,YMOV X,BXMOV AX,X;CALL SHOW4 ;MOV AH,7 ;INT 21HMOV AX,4C00H ;INT 21HSHOW4:XOR CX ,CXMOV BX ,10NX7:XOR DX,DXDIV BXOR DX,0e30HINC CXPUSH DXCMP AX,0JNZ NX7NX8: POP AXINT 10HLOOP NX8取存數(shù)到 AX 顯示十進(jìn)制形式 暫停退出程序?qū)嵱梦臋nHLTCODE ENDSEND START【實(shí)驗(yàn)總結(jié)】容一和容
17、二相對(duì)來(lái)說(shuō)比較好理解,通過(guò)看一些實(shí)例,我們最終知道了應(yīng)該怎么做,而容三比較復(fù)雜,我們用了許多時(shí)間,不過(guò)最后經(jīng)過(guò)組的學(xué)習(xí)和討論,終于做出來(lái)了。我們都從中收獲到了許多新知識(shí)。實(shí)驗(yàn)四 存塊移動(dòng)實(shí)驗(yàn)組長(zhǎng) : 譚浩敏 組員:賞源,潤(rùn)強(qiáng)一、實(shí)驗(yàn)?zāi)康?、熟悉實(shí)驗(yàn)系統(tǒng)的編程和使用。2、了解存的移動(dòng)方法。3、加深對(duì)存儲(chǔ)器讀寫的認(rèn)識(shí)。二、實(shí)驗(yàn)容實(shí)驗(yàn)容 1:用匯編語(yǔ)言編寫程序?qū)崿F(xiàn)以下運(yùn)算, 并將最終結(jié)果顯示在屏幕上 假設(shè)變量 X、 Y、Z、 V均為有符號(hào)的 16 位二進(jìn)制。(V-(X*Y+Z-540)/X代碼:DATA SEGMENTDAI1 DB 0AH,0DH,INPUT X,Y,Z,V ORDERLY, EG
18、:+XXXX:$DAI2 DB 0AH,0DH,TYPE IN THE NUMBER:$DAI3 DB 0AH,0DH,NUMBER X,Y,Z,V ARE : $DAI4 DB 0AH,0DH,RESULT W IS:$DAI5 DB 0AH,0DH,EXTRA IS:$BUF DB 10DB 0NUM DB 200 DUP(0)實(shí)用文檔X DW 0Y DW 0Z DW 0V DW 0 W DW 2 DUP(0)DATA ENDSSTACK SEGMENT DB 200 DUP(0)STACK ENDSCODE SEGMENTASSUME DS:DATA,CS:CODE,SS:STACKSt
19、art:MOV AX,DATAMOV DS,AXMOV DX,OFFSET DAI1MOV AH,09H INT 21HINPUT: MOV CH,04H MOV DI,OFFSET XDU04: MOV DX,OFFSET DAI2 MOV AH,09H INT 21HMOV DX,OFFSET BUFMOV AH,0AHINT 21HMOV CL,BUF1DEC CLMOV AX,0MOV SI,3H1: MOV BX,10 MUL BXMOV BL,BUFSI實(shí)用文檔SUB BL,30H ADD AX,BX INC SIDEC CLJNZ H1CMP BUF2,- JNE NONEGX
20、NEG AXNONEGX: MOV DI,AXINC DIINC DIDEC CHJNZ DU04MOV DX,OFFSET DAI3MOV AH,09HINT 21HMOV AX,XCALL SHOWMOV DL,MOV AH,02HINT 21HMOV AX,YCALL SHOWMOV DL,MOV AH,02HINT 21HMOV AX,ZCALL SHOWMOV DL,MOV AH,02HINT 21HMOV AX,VCALL SHOW實(shí)用文檔MOV AX,XIMUL YMOV CX,AXMOV B X,DXMOV A X,ZCWDADD CX,AXADC BX,DXSUB CX,54
21、0SBB BX,0MOV A X,VCWDSUB AX,CX SBB DX,BXIDIV XMOV W,AXMOV W+2,DXMOV DX,OFFSET DAI4MOV AH,09HINT 21HMOV AX,WCALL SHOWMOV DX,OFFSET DAI5MOV AH,09HINT 21HMOV AX,W+2CALL SHOWMOV AH,4CHINT 21HSHOW:CMP AX,0JG LOOP1PUSH AXMOV DL,-MOV AH,02HINT 21HPOP AXNEG AX實(shí)用文檔LOOP1: XOR CX,CX MOV BX,10Q0:XOR DX,DXDIV BX
22、OR DX,0E30H PUSH DXINC CXCMP AX,0JNE Q0Q1:POP AXINT 10HLOOP Q1RETCODE ENDSEND START三、實(shí)驗(yàn)體會(huì) 這次實(shí)驗(yàn)的難點(diǎn)主要在于各個(gè)數(shù)的輸入與輸出,匯編的數(shù)字輸入要考慮很多問(wèn)題,比 如有符號(hào)數(shù)與無(wú)符號(hào)數(shù),這對(duì)于不熟悉匯編的我們相對(duì)較難。實(shí)驗(yàn)五 循環(huán)程序設(shè)計(jì)組長(zhǎng):譚浩敏 組員:賞源、潤(rùn)強(qiáng)實(shí)驗(yàn)?zāi)康摹浚?. 學(xué)會(huì)思考程序的不足,并找出改進(jìn)辦法2. 熟悉使用 DOS和 BIOS功能調(diào)用。3掌握匯編語(yǔ)言循環(huán)程序的編寫。實(shí)驗(yàn)容】:1. “第 3 章(3)匯編程序設(shè)計(jì) .ppt ”中的作業(yè)。2. 參考“第 3章( 3)匯編程序設(shè)計(jì) .
23、ppt ”關(guān)于排序的程序并完善和修改完 成如下功能程序:能通過(guò)鍵盤隨機(jī)地輸入幾個(gè)數(shù)據(jù) (16 位有符號(hào)數(shù) ) ,然后進(jìn)行 從小到大進(jìn)行排序,最后結(jié)果顯示在屏幕上。實(shí)用文檔DATA SEGMENTDAI1 DB 0AH,0DH,Please type in the number:$DAI2 DB 0AH,0DH, The sort is:,0AH,0DH,$BUF DB 10DB 0NUMDB 200 DUP(0)buf1DW 10 dup(0)N EQU 4DATA ENDSSTACK SEGMENTDB 200 DUP(0)STACK ENDSCODE SEGMENTASSUME DS:DA
24、TA,CS:CODE,SS:STACKStart:MOV AX,DATAMOV DS,AXINPUT: MOV CH,NMOV DI,OFFSET buf1DU04: MOV DX,OFFSET DAI1MOV AH,09HINT 21HMOV DX,OFFSET BUF ;鍵盤輸入四個(gè)數(shù)MOV AH,0AHINT 21HMOV CL,BUF1DEC CLMOV AX,0MOV SI,3H1: MOV BX,10MUL BXMOV BL,BUFSI實(shí)用文檔SUB BL,30HADD AX,BXINC SIDEC CLJNZ H1CMP BUF2,+JZ NONEGXNEG AXNONEGX:
25、MOV DI,AXINC DIINC DIDEC CHJNZ DU04 ;開始從小到大排序MOV CX,NDEC CXLOOP1: MOV DX,CXMOV BX,0LOOP2: MOV AX,BUF1BX CMP AX,BUF1BX+2 JLE LXCHG AX,BUF1BX+2 MOV BUF1BX,AXL: ADD BX,2 DEC CX JNE LOOP2 MOV CX,DX LOOP LOOP1; 完成排序 MOV DX,OFFSET DAI2 MOV AH,09H INT 21H MOV DI,0 MOV CX,NA:push axpush dxpush bxpush cxMOV
26、AX,BUF1DI實(shí)用文檔CALL SHOW pop cxc: MOV DL, MOV AH,2 INT 21H pop bxpop dxpop bxINC DIINC DILOOP Aexit: MOV AH,4CHINT 21HSHOW:CMP AX,0 JG L1PUSH AX MOV DL,-MOV AH,02HINT 21HPOP AXNEG AXL1: XOR CX,CXMOV BX,10Q0:XOR DX,DX DIV BX OR DX,0E30H PUSH DX INC CX CMP AX,0 JNZ Q0Q1:POP AXINT 10HLOOP Q1RETb:inc cxjm
27、p c實(shí)用文檔CODE ENDSEND START3. (選做)權(quán)限管理:通過(guò)鍵盤輸入六位數(shù)字, 要求屏幕上顯示的全都是 “* 號(hào),只有知道密碼的人才能看到剛剛輸入的六個(gè)數(shù)字。 ( 提示:該程序?qū)崿F(xiàn)的功 能類似銀行里的存折密碼管理系統(tǒng) ) 。data segmentdai1 db =please input your psssword:,$dai2 db 0ah,0dh,=your password is right!$dai3 db 0ah,0dh,=your password is wrong!$dai4 db 0ah,0dh,=please input numbers!,not word
28、s!$buf1 db 6 dup(0)password db 123456data ends stack segment dw 100 dup(0) stack ends code segmentassume cs:code,ss:stack,ds:datastart:mov ax,datamov ds,ax;= 完成密碼的輸入,將密碼存入數(shù)組 buf1=lea dx,dai1mov ah,09hint 21hmov cx,6實(shí)用文檔mov di,0a: mov ah,08h ; 循環(huán)輸入六次密碼 ,調(diào)用八號(hào)無(wú)回顯輸入功能 int 21hmov buf1di,almov dl,2ah ;顯示*
29、 號(hào)mov ah,02hint 21hinc diloop a ;= 檢查是否有出現(xiàn)非數(shù)字輸入的錯(cuò)誤 =; 只要輸入的字符的 ascii 的值不再 3039 之間就提示錯(cuò)誤 mov cx,6mov di,0c: cmp buf1di,30hjb Notnumberscmp buf1di,39hja Notnumbersinc diloop c;= 進(jìn)行數(shù)字密碼的匹對(duì) = mov cx,6mov di,0mov si,0b:mov ah,buf1simov al,passworddicmp ah,aljne wrong ; 一旦匹配錯(cuò)誤馬上提示輸入錯(cuò)誤,轉(zhuǎn)到 exit inc diinc sil
30、oop bjmp right;= 顯示錯(cuò)誤輸入錯(cuò)誤信息、以及正確信息 = wrong:lea dx,dai3mov ah,09hint 21h jmp exitright:lea dx,dai2mov ah,09hint 21h jmp exitNotnumbers:lea dx,dai4實(shí)用文檔mov ah,09h int 21h jmp exitexit:mov ah,4ch int 21hcode endsend start 初始密碼為: 123456實(shí)用文檔實(shí)驗(yàn)六存儲(chǔ)器擴(kuò)展實(shí)驗(yàn)一、實(shí)驗(yàn)要求利用 PROTEUS平臺(tái), 進(jìn)行存儲(chǔ)器擴(kuò)展。要求按照?qǐng)D 6-1 畫圖,并編寫程序,實(shí)現(xiàn)存儲(chǔ)器 的寫
31、操作和讀操作。要求從頭到未組織一遍,包括建立asm 文件,建立 DSN文件,生成 EXE文件(參閱本冊(cè)實(shí)驗(yàn)指導(dǎo) P1520 頁(yè)容)。二、實(shí)驗(yàn)?zāi)康?、熟練掌握 Proteus 軟件的使用。2、理解存儲(chǔ)器擴(kuò)展原理及編程技巧。3、加深對(duì)存儲(chǔ)器讀寫的理解。三、實(shí)驗(yàn)容【實(shí)驗(yàn)容 1】在 Proteus 環(huán)境中完成程序仿真: 程序要求把存中一數(shù)據(jù)區(qū) (稱為源數(shù)據(jù)塊) 傳送到存另一 數(shù)據(jù)區(qū)(稱為目的數(shù)據(jù)塊) 。源數(shù)據(jù)塊和目的數(shù)據(jù)塊在存貯中可能有三種情況, 如下圖所示。實(shí)用文檔當(dāng)源數(shù)據(jù)塊首址大于目的塊首址時(shí), 從數(shù)據(jù)塊首地址開始傳送數(shù)據(jù)。 當(dāng)源數(shù)據(jù)塊首址小于目 的塊首址時(shí),從數(shù)據(jù)塊末址開始傳送數(shù)據(jù)。 ( 這是為
32、什么 ?)答:當(dāng)源數(shù)據(jù)塊首址小于目的塊首址時(shí),為防止數(shù)據(jù)段過(guò)長(zhǎng),超出源數(shù)據(jù)塊首址和目 的塊首址之間的差值, 造成數(shù)據(jù)傳輸過(guò)程中使源數(shù)據(jù)端的部分?jǐn)?shù)據(jù)被改變, 所以從源數(shù)據(jù)塊 末址開始傳輸。步驟 1:存為“存塊移動(dòng) .DSN”在 Proteus 中打開一個(gè)空白設(shè)計(jì)文檔,完成如圖 6-1 的原理圖制作,保步驟 2:在 emu8086中編程,生成 exe 文件,存為 memory.exeCODE SEGMENTASSUME CS:CODESTART:MOV AX,0MOV DS,AXMOV SI,1000HMOV CX,100MOV AL,1PU_IN: MOV SI,AL ; 先存入 1000H開始
33、的 100 個(gè)字節(jié)數(shù)據(jù)為 1 到 100 INC ALINC SILOOP PU_INMOV CX,100MOV SI,1000HMOV DI,1100H ;FADR: MOV AL,SIMOV DI,ALINC SIINC DIDEC CXJNE FADRJMP $CODE ENDSEND START步驟 3: Proteus 仿真實(shí)用文檔3、實(shí)驗(yàn)報(bào)告要求:(1)說(shuō)說(shuō)程序在對(duì)那些存儲(chǔ)器單元(物理地址表示)進(jìn)行移動(dòng)數(shù)據(jù),以及 整個(gè)程序的功能是什么 ?答:程序在對(duì) 1000H-1063H 存儲(chǔ)單元進(jìn)行移動(dòng)數(shù)據(jù),整個(gè)程序的功能是 對(duì)1000H-1063H 這 100個(gè)存儲(chǔ)單元從 1 開始賦值到 1
34、00,然后把這 100個(gè) 存儲(chǔ)單元的數(shù)據(jù)移動(dòng)到 1100H 1163H 這 100 個(gè)存儲(chǔ)單元。(2)修改參考程序,完成將地址從 2300H單元開始的 1000 個(gè)存儲(chǔ)單元的數(shù) 據(jù)(數(shù)據(jù)從 100 到 1100之間從小到大順序排列。 請(qǐng)回答 ,這一千個(gè)存儲(chǔ)單元最 終存放了 100 到哪個(gè)數(shù)據(jù)之間的數(shù)據(jù)?) 移動(dòng)到 2000H單元開始的存儲(chǔ)區(qū)存放功能 答:這一千個(gè)存儲(chǔ)單元最終放了 100-255 之間的數(shù)據(jù),之后又從 0-255 從小到 大排序。因?yàn)槭且宰止?jié)定義的,一個(gè)字節(jié)最大只為 255.( 3)把這些程序放在 emu8086中去遠(yuǎn)行,會(huì)有什么效果?對(duì)比一下這兩個(gè)軟件。實(shí)用文檔可以看出,用 p
35、rotues 觀察存情況比 emu8086的圍大,而且方便?!緦?shí)驗(yàn)容 2】1. 請(qǐng)照著圖 5-1 存儲(chǔ)器奇偶存儲(chǔ)體擴(kuò)展圖畫好圖。在 8086 芯片中編程,其代碼如下:ORG 0100HMOV CX,0064H ;循環(huán) 100 次MOV DX,0000H ;置初值MOV BX,8001H ;MOV AX,0000HMOV DS,AX ;DS 置零SIM:MOV BX,DLINC DLINC BX實(shí)用文檔LOOP SIMINT 3H ; 停止在 INT 3H 運(yùn)行的截圖如下:回答如下問(wèn)題:(1)兩片 6264 的片選信號(hào)( CE和 CS)是如何產(chǎn)生的?他們的地址圍是多 少?答:CE和 CS是 62
36、64的片選端,低電平有效,當(dāng) 8086 地址總線輸入地址值符合 條件時(shí),就會(huì)使譯碼器從 Y0 輸入 CE 信號(hào),其地址圍為: 8000H0BFFFH(00000 111B(2)他們的數(shù)據(jù)線為何連接不同?答:因?yàn)?8086 在訪問(wèn)外存是有一個(gè)特性,當(dāng) AD0=0時(shí),訪問(wèn)偶地址單元,數(shù)據(jù) 從總線低八位傳輸;當(dāng) AD0=1(BHE=0時(shí)) ,訪問(wèn)奇地址單元,數(shù)據(jù)從總線的高八 位傳輸。3)地址線為何不直接與 CPU的 AD0相連?實(shí)用文檔答: AD0是片選端,作為 8086 訪問(wèn)奇偶地址單元的判別端(4)圖 5-1 中 6264 的外部地址從 8000H開始,編程時(shí)應(yīng)該怎么寫 ?此時(shí)仿 真時(shí) U4 O
37、7引腳為什么出現(xiàn)高電平代碼如下:ORG 0100HMOV CX,0064H ;循環(huán) 100 次MOV DX,0000H ;置初值MOV BX,8001H ;MOV AX,0000HMOV DS,AX ;DS 置零SIM:MOV BX,DLINC DLINC BXLOOP SIMINT 3H ; 停止在 INT 3HU4 O7端屬于使能端,當(dāng)它為高電平時(shí)才能正常工作(5)如果 6264 的外部地址從 C000H開始,圖中應(yīng)作哪些修改? 答:若外部地址從 C000H開始,則 A15A16A17A18為 1100,對(duì) CBA=111111B=7 ,所以圖中芯片 74LS138 中的輸出端口應(yīng)接在 Y
38、7.實(shí)驗(yàn)七 8255 并行 I/O 擴(kuò)展實(shí)驗(yàn)(一)一、實(shí)驗(yàn)要求利用8255 可編程并行口芯片,實(shí)現(xiàn)輸入、輸出實(shí)驗(yàn),實(shí)驗(yàn)中用 8255PA 口作讀取開關(guān)狀態(tài)輸入,8255PB 口作控制發(fā)光二極管輸出、實(shí)驗(yàn)?zāi)康?、了解 8255 芯片結(jié)構(gòu)及編程方法。2、了解 8255 輸入、輸出實(shí)驗(yàn)方法。實(shí)用文檔三、實(shí)驗(yàn)電路及連線圖 6-1 8255 并行 I/O 擴(kuò)展實(shí)驗(yàn) Proteus 實(shí)驗(yàn)電路四、實(shí)驗(yàn)說(shuō)明1、8255A 芯片簡(jiǎn)介: 8255A可編程外圍接口芯片是 INTEL 公司生產(chǎn)的通用并行接口芯片, 它具有 A、B、C三個(gè)并行接口,用 +5V 單電源供電,能在以下三種方式下工作:方式 0:基本輸入 /
39、輸出方式方式 l :選通輸入 / 輸出方式方式 2:雙向選通工作方式2、使 8255A端口 A工作在方式 0 并作為輸入口,讀取 Kl-K8 個(gè)開關(guān)量, PB口工作在方 式 0 作為輸出口。五、實(shí)驗(yàn)程序流程圖開始初始化 8255,設(shè)置工作方式讀 PA 口 置 PB 口圖 6-2 實(shí)驗(yàn)程序流程圖 其程序代碼為: CODE SEGMENTASSUME CS:CODE控制端口地址 端口 A 地址IOCON EQU 8006H IOA EQU 8000H ;實(shí)用文檔IOB EQU 8002H ; 端口 B 地址IOC EQU 8004H ; 端口 C 地址START:MOV AL,90H ; 設(shè)置 A
40、口為輸入, B口為輸出, 10010000B MOV DX,IOCONOUT DX,ALNOP ; 空指令,用于延時(shí)STAR1:NOPNOPMOV AL,0MOV DX,IOAIN AL,DX ;將 A口的狀態(tài)存入 AL 之中NOPNOPMOV DX,IOBOUT DX,AL ; 將 AL的狀態(tài)輸出到 IOB 口中JMP STAR1CODE ENDSEND START六、思考題(1) 如果使 8255 的A口為輸出, B口為輸入,應(yīng)該怎樣修改程序? 答:代碼修改:將代碼中的第 8行MOV AL,90H改為MOV AL,82H;第16行改為 MOV DX,IOB第; 20行代碼改為 MOV DX
41、,IOA即可 電路修改:將口和口的電路元件互換即可。(2) 如果修改 8255的地址為 6000H60006H,應(yīng)如何修改電路和程序? 答:電路圖修改如下:實(shí)用文檔代碼修改只需修改第 03行第06行即可,其余不用修改: 03. IOCON EQU 6006H 04. IOA EQU 6000H 05. IOB EQU 6002H06. IOC EQU 6004H(3) 如何修改程序,使得顯示燈不需要撥動(dòng),也能自動(dòng)亮滅? 其代碼如下:STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODEIOCON EQU 80
42、06HIOA EQU 8000HIOB EQU 8002HIOC EQU 8004HSTART:MOV AL,80H ; 設(shè)置 A口為輸出, B口為輸出MOV DX,IOCON ; 定義 8255工作方式OUT DX,ALMOV DX,IOBSTAR1:MOV AL,0OUT DX,ALCALL DALLYMOV AL,0FFHMOV DX,IOBOUT DX,AL ;將 AL的狀態(tài)輸出到 IOB口中JMP STAR1DALLY PROC NEAR ; 軟件延時(shí)子程序PUSH CXPUSH AXMOV CX,0FHD1: MOV AX,0FH ; 該值不能太大,否則在 proteus 中看結(jié)果
43、很慢 D2: DEC AXJNZ D2LOOP D1POP AXPOP CXRETDALLY ENDPCODE ENDEND START實(shí)用文檔(4)流水燈顯示實(shí)驗(yàn)。編寫程序,使 8255 的A 口和 B 口均為輸出,實(shí)現(xiàn) 16 位數(shù)據(jù)燈的相對(duì)循環(huán)顯示。電路圖修改如下:其代碼修改如下:IOY0 EQU 8000H ;#MY8255AEQUIOY0+00H*2;8255MY8255BEQUIOY0+01H*2;8255MY8255CEQUIOY0+02H*2;8255MY8255_MODE EQU IOY0+03H*2 ;8255對(duì)應(yīng) 8255的片選 IOY0端口地址 的A口地址 的B口地址 的
44、C口地址 的控制寄存器地址STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTLA DB 0LB DB 0DATA ENDS定義數(shù)據(jù)變量CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA實(shí)用文檔MOV DS,AXMOV DX,MY8255_MODEMOV AL,80H ;OUT DX,ALMOV DX,MY8255_AMOV AL,0FFHOUT DX,ALMOV DX,MY8255_BMOV AL,0FFHOUT DX,ALLOOP3:MOV LB,0FEHMOV CX,8LO
45、OP1:MOV AL,LBMOV DX,MY8255_BOUT DX,ALCALL DALLYROL LB,1 ;LOOP LOOP1MOV AL,0FFHMOV DX,MY8255_B OUT DX,AL ;B定義 8255工作方式工作方式 0,A口和 B口為輸出寫A口發(fā)出的起始數(shù)據(jù)寫B(tài)口發(fā)出的起始數(shù)據(jù)將 B口起始數(shù)據(jù)左移再寫入 B口全暗MOV LA,0FEHMOV CX,8LOOP2:MOV AL,LAMOV DX,MY8255_AOUT DX,ALCALL DALLYROL LA,1LOOP LOOP2 ; 跳回繼續(xù)循環(huán)全暗;AMOV AL,0FFHMOV DX,MY8255_AOUT
46、DX,ALJMP LOOP3實(shí)用文檔QUIT: MOV AX,4C00H ; 結(jié)束程序退出INT 21HDALLY PROC NEAR ; 軟件延時(shí)子程序PUSH CXPUSH AXMOV CX,0FFHD1: MOV AX,0FFH ; 該值不能太大,否則在 proteus 中看結(jié)果很慢D2: DEC AXJNZ D2LOOP D1POP AXPOP CXRETDALLY ENDPCODE ENDSEND START(5) 實(shí)驗(yàn)室檢查問(wèn)題提問(wèn): 燈為什么會(huì)亮?怎么亮的?開關(guān)開的時(shí)候?qū)?yīng) 的燈是亮還是滅?為什么 B口會(huì)隨著 A口變化而變化?答:如圖 LED燈是共陽(yáng)極的,另一端只要是低電平,燈就
47、會(huì)亮。開關(guān)開的時(shí) 候,對(duì)應(yīng)的燈是亮的。由程序可以知道, A口為輸入, B口為輸出,輸入控制 輸出,所以 B口會(huì)隨 A口變化而變化。實(shí)驗(yàn)八 8255 并口控制器應(yīng)用實(shí)驗(yàn)(二)一、實(shí)驗(yàn)要求 流水燈顯示實(shí)驗(yàn)。編寫程序,使 8255 的A 口和 B 口均為輸出,實(shí)現(xiàn) 16 位 數(shù)據(jù)燈的相對(duì)循環(huán)顯示。二、實(shí)驗(yàn)?zāi)康?1) 掌握 8255 的工作方式及應(yīng)用編程。(2) 掌握 8255 的典型應(yīng)用電路接法。三、實(shí)驗(yàn)電路及連線參考圖 6-1設(shè)置正確的連線電路圖。四、實(shí)驗(yàn)說(shuō)明及程序流程首先分別向 A 口和B 口寫入7FH 和FEH,然后分別將該數(shù)右移和左移一位, 再實(shí)用文檔送到端口上,這樣循環(huán)下去。 從而實(shí)現(xiàn)流水
48、燈的顯示。 參考實(shí)驗(yàn)程序流程如圖 7-1 所示。圖7-1 8255 并口應(yīng)用實(shí)驗(yàn) (2) 參考程序流程圖五、思考題(1)分別向 A 口和B 口寫入 7FH 和FEH,為什么要寫入這兩個(gè)數(shù),其他的數(shù)字 可以嗎?如果輸入其他的數(shù)字,會(huì)出現(xiàn)什么現(xiàn)象呢?答: A口的7FH=0111 1111,即第一個(gè)燈亮,其他燈滅, B口的FEH=1111 1110,即 最后一個(gè)燈亮,其他燈滅??梢暂斎肫渌麛?shù)字,數(shù)字不一樣,相對(duì)位置的燈亮滅 情況也不一樣。(2)如果要求兩組燈從中間開始顯示,又如何修改程序?IOY0 EQU 8000H ;#對(duì)應(yīng) 8255的片選 IOY0端口地址MY8255_AEQUIOY0+00H*
49、2;8255的A口地址MY8255_BEQUIOY0+01H*2;8255的B口地址MY8255_CEQUIOY0+02H*2;8255的C口地址MY8255_MODE EQU IOY0+03H*2 ;8255的控制寄存器地址STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDS定義數(shù)據(jù)變量DATA SEGMENTLA DB 0LB DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AX實(shí)用文檔MOV DX,MY8255_MODEMOV AL,80H ;OUT DX,ALMOV DX,MY8255_AMOV AL,0FEHOUT DX,ALMOV LA,ALMOV DX,MY8255_BMOV AL,7FHOUT DX,ALMOV LB,ALLOOP1:MOV AL,LA ;AROL AL,1MOV LA,ALMOV DX,MY8255_AOUT DX,ALMOV AL
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度交通行業(yè)勞動(dòng)合同簽訂與交通安全責(zé)任協(xié)議
- 二零二五年度土地整治與開發(fā)項(xiàng)目承包租賃合同
- 二零二五年度知名演員經(jīng)紀(jì)代理合同
- 二零二五年度企業(yè)防雷安全技術(shù)服務(wù)合同
- 二零二五年度高端雞蛋養(yǎng)殖基地合作協(xié)議模板帶
- 沈陽(yáng)正規(guī)聘用總經(jīng)理2025年度職責(zé)與待遇合同
- 二零二五年金融創(chuàng)新項(xiàng)目合作協(xié)議書
- 二零二五年度電子商務(wù)平臺(tái)電子勞動(dòng)合同簽署規(guī)范及糾紛解決機(jī)制
- 二零二五年度紅棗綠色生產(chǎn)與環(huán)保責(zé)任合同
- 二零二五年度無(wú)人機(jī)植保作業(yè)與農(nóng)業(yè)產(chǎn)業(yè)鏈合作合同
- 醫(yī)療信息共享與互聯(lián)網(wǎng)醫(yī)療管理制度
- 虛勞中醫(yī)護(hù)理方案
- 2024新版有限空間作業(yè)安全大培訓(xùn)
- 九年級(jí)語(yǔ)文下冊(cè)-【《孔乙己》課后習(xí)題參考答案】
- 【美妝產(chǎn)品的直播帶貨營(yíng)銷策略探究:以花西子彩妝為例12000字(論文)】
- 人教版高中英語(yǔ)必修二詞匯表(默寫版)
- 2024年浙江省寧波市外事服務(wù)中心招聘2人歷年(高頻重點(diǎn)復(fù)習(xí)提升訓(xùn)練)共500題附帶答案詳解
- 【基于上市公司數(shù)據(jù)的康芝藥業(yè)盈利能力探析(定量論文)11000字】
- DL-T5161.17-2018電氣裝置安裝工程質(zhì)量檢驗(yàn)及評(píng)定規(guī)程第17部分:電氣照明裝置施工質(zhì)量檢驗(yàn)
- 2024年共青團(tuán)入團(tuán)積極分子結(jié)業(yè)考試題庫(kù)及答案
- 實(shí)施醫(yī)院安全巡查管理制度
評(píng)論
0/150
提交評(píng)論