




已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
實驗一 簡單程序編制和上機(jī)過程一實驗?zāi)康? 掌握計算機(jī)常用代碼的軟件轉(zhuǎn)換技術(shù)。2 熟悉DEBUG軟件的使用。3 掌握簡單程序的編程方法。二實驗內(nèi)容 代碼轉(zhuǎn)換是計算機(jī)和I/O設(shè)備進(jìn)行信息交換的重要技術(shù)之一。各種I/O設(shè)備所提供和接收的數(shù)據(jù)編碼不盡相同。為了處理這些信息,計算機(jī)必須將各種不同編碼形式的信息轉(zhuǎn)換成別種適當(dāng)?shù)臄?shù)據(jù)形式。例如,鍵盤輸入的數(shù)據(jù)均為ASC碼形式存儲在內(nèi)存中,通常要求將其轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)形式。一般實現(xiàn)代碼轉(zhuǎn)換有兩種方法:1軟件法 利用CPU的算術(shù)邏輯運算功能,通過運算或查表實現(xiàn)各種數(shù)據(jù)代碼間的轉(zhuǎn)換。該方法經(jīng)濟(jì)但速度慢。2硬件法 利用專用代碼轉(zhuǎn)換集成電路進(jìn)行轉(zhuǎn)換。如74LS74可把BCD碼轉(zhuǎn)換為七段代碼。這種方法需要硬件費用,但速度快。本實驗要求掌握軟件編碼轉(zhuǎn)換技術(shù)。計算機(jī)常用的代碼有二進(jìn)制、八進(jìn)制、十六進(jìn)制、BCD碼、ASC碼、七段碼等,它們之間的相互關(guān)系如下表所示。常用數(shù)值對照表16進(jìn)制數(shù)二進(jìn)制碼八進(jìn)制碼BCD碼16進(jìn)制碼ASCII碼七段碼共陽共陰000000000000030H40H3FH110010001000131H79H06H20100010001032H24H5BH30110011001133H30H4FH41000100010034H 19H66H51010101010135H12H6DH61100110011036H02H7DH71110111011137H78H07H81000100038H00H7FH91001100139H18H67HA101041H08H77HB101142H03H7CHC110043H46H39HD110144H21H5EHE111045H06H79HF111146H0EH71H本次試驗的內(nèi)容是ASC碼轉(zhuǎn)換為未組合BCD碼設(shè)從鍵盤輸入十進(jìn)制數(shù)的ASC碼已存放在起始地址CS :150H的單元中,把它轉(zhuǎn)換成未組合BCD碼后,再分別存入起始地址為CS:15AH的單元中。若輸入的不是十進(jìn)制數(shù)的ASC碼,則相應(yīng)存放結(jié)果單元的內(nèi)容為“FF”。提示:1組合BCD碼是一位十進(jìn)制數(shù)字占一個字節(jié),高半字節(jié)為0,低半字節(jié)為該十進(jìn)制數(shù)字的BCD碼。ASC碼轉(zhuǎn)換為未組合BCD碼只需減30H。2程序框圖如下圖所示。3程序執(zhí)行前,需要在CS:150H內(nèi)存緩沖區(qū)寫入待轉(zhuǎn)換的ASC碼。方法如下:方法一:用A命令-ACS:150 DB 35,39,30,41,32CS:155 C方法二:用E 命令-ECS:150,35,39,30,41,32方法三:用F命令-FCS:150 L5 35,39,30,41,321 執(zhí)行程序后檢查執(zhí)行結(jié)果可用D命令:-DCS:15ACS:15A 05,09,00,F(xiàn)F,02開始給循環(huán)計數(shù)器CX賦轉(zhuǎn)換代碼長度ASCII碼首地址送DI錯誤標(biāo)志“FF”送BLASCII碼送AL BCD碼送BL減30HCF=1?CX1=0?結(jié)束轉(zhuǎn)換結(jié)果送起始地址為15AH的存儲區(qū)錯誤標(biāo)志“FF”送AL是9的ASCII碼?ASC碼轉(zhuǎn)換為未組合BCD碼的程序流程圖參考程序如下:ORG 100HMOV CX,0005HMOV DI,150HBB: MOV BL,0FFHMOV A,DICMP AL,3AHJNB DONESUB AL,30HJB DONEMOV BL,ALDONE: MOV AL,BLMOV DI+0AH,ALINC DILOOP BBINT 20HORG 150HDB 35H,39H,30H,41H,32H實驗二 順序結(jié)構(gòu)的程序設(shè)計一實驗?zāi)康?掌握計算機(jī)常用代碼的軟件轉(zhuǎn)換技術(shù)。2進(jìn)一步首席DEBUG軟件的使用。3掌握簡單順序結(jié)構(gòu)程序的編程方法。二實驗內(nèi)容本次實驗的內(nèi)容延續(xù)上一次實驗內(nèi)容,將16進(jìn)制數(shù)轉(zhuǎn)換為ASC碼,相關(guān)內(nèi)容參看上一次實驗的表格。設(shè)經(jīng)過CPU運算后的4位16進(jìn)制數(shù)已存放在CS:150H字單元中,把它轉(zhuǎn)換為ASC碼后分別存入CS:15AH為起始地址的4個單元中,低位數(shù)存在低地址的字節(jié)中。提示:1十六進(jìn)制數(shù)0-9H加30H即可得到ASC碼,而A-FH則需要加37H,也就是加7H后再加30H,才能完成轉(zhuǎn)換。因此對每一位十六進(jìn)制數(shù)應(yīng)先判斷是0-9H的數(shù)還是AFH的數(shù),再分別加30H和37H即可完成轉(zhuǎn)換。24位數(shù)的轉(zhuǎn)換需用循環(huán)程序結(jié)構(gòu)。用CX作為計數(shù)器,DI作為地址指針,指向150H單元,則DI+0AH就指向結(jié)果存放單元。用邏輯右移指令使高位逐個地移至個位,用AND指令可以將個位從4位數(shù)中分離出來進(jìn)行轉(zhuǎn)換。MOV CL,04HSHR DX,CL兩條指令使DX中的數(shù)右移4位,由于CX已用做循環(huán)控制計數(shù)器,因此右移前應(yīng)將CX壓棧保護(hù),移位后再出?;謴?fù)CX。3程序流程圖如下圖所示。開始CX4取4位數(shù)送DXDI指向150H加07H分離個位DXAXDI1DI存放結(jié)果加30HDX右移4位結(jié)束是09之間的數(shù)?4位轉(zhuǎn)換完否?NYNY 16進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼程序流程圖參考程序如下:ORG 100HMOV CX,0004H ;給循環(huán)計數(shù)器賦轉(zhuǎn)換代碼長度MOV DI,0150H ;16進(jìn)制數(shù)首地址送DIMOV DX,DI ;16進(jìn)制數(shù)送DXAA: MOV AX,DXAND AX,000FH ;取低四位值CMP AL,0AH ;判別是否為“0-9”數(shù)JB ASC ;是“0-9”數(shù)轉(zhuǎn)ASCADD AL,07H ;是“A-F”數(shù)加7ASC ADD L,30H ;轉(zhuǎn)換為ASCII碼MOV DI+0AH,AL ;ASCII碼送15AH單元INC DIPUSH CX ;保護(hù)循環(huán)計數(shù)器內(nèi)容MOV CL,04H ;置移位次數(shù)SHR DX,CL ;16進(jìn)制數(shù)右移4位POP CX ;循環(huán)計數(shù)器內(nèi)容出棧LOOP AA ;(CX)0,轉(zhuǎn)AAINT 20HORG 150HDW 45A7H實驗三 分支結(jié)構(gòu)的程序設(shè)計一實驗?zāi)康? 掌握計算機(jī)常用代碼的軟件轉(zhuǎn)換技術(shù)。2 熟悉DEBUG軟件的使用。3 掌握分支結(jié)構(gòu)程序的編程方法。二實驗內(nèi)容本次實驗的內(nèi)容延續(xù)第一次實驗內(nèi)容,將BCD碼轉(zhuǎn)換為二進(jìn)制碼,相關(guān)內(nèi)容參看第一次實驗中的表格。在各種智能儀器和信息處理中,人們總習(xí)慣于十進(jìn)制數(shù)來表示信息。但是絕大多數(shù)計算機(jī)沒有十進(jìn)制運算指令(僅有十進(jìn)制調(diào)整指令)。這是因為實現(xiàn)十進(jìn)制算術(shù)運算的硬件電路要比采用二進(jìn)制算術(shù)運算的硬件電路復(fù)雜得多。例如,當(dāng)兩個整數(shù)進(jìn)行算術(shù)運算時,對一個N進(jìn)制的數(shù)需記住N(N+1)/2個“積”與“和”,當(dāng)N=10時,需記住55個“積”與“和”;而當(dāng)N=2時,只需記住3個。從占用存儲空間來看,采用二進(jìn)制數(shù)比采用十進(jìn)制數(shù)要節(jié)省得多。例如,8bit表示十進(jìn)制數(shù),其數(shù)值范圍為0-99,而8bit表示的二進(jìn)制數(shù)則為0-255(均指無符號數(shù))。所以,常規(guī)的方法是將輸入的十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)后,再進(jìn)行各種數(shù)據(jù)處理。BCD碼分別為組合BCD碼和未組合BCD碼。組合BCD碼每字節(jié)存放兩位BCD數(shù),未組合BCD碼每字節(jié)只存放一位BCD數(shù),高半字節(jié)為0。組合BCD碼加、減后必須用DAA和DAS指令進(jìn)行調(diào)整(乘法或除法沒有調(diào)整指令)。未組合BCD碼則可進(jìn)行加、減、乘、除四則運算,其調(diào)整指令分別為AAA、AAS、AAM和AAD。組合BCD碼轉(zhuǎn)換位二進(jìn)制數(shù)的算法通過實例說明于下。一個組合BCD碼表示的數(shù)可以用其按權(quán)展開式表示。例如 2497=2*1000+4*100+9*10+7*1 =2*3E8H+4*64H+9*0AH+7*1H由此,逐位轉(zhuǎn)換后相加便可得到結(jié)果。改用另一種表示方法,可以寫成 2497=(2*10)+4)*10)+9)*10)+7而10=8+2,于是便可以采用循環(huán)結(jié)構(gòu)程序來完成轉(zhuǎn)換。本實驗是要把兩位未組合BCD碼數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)。設(shè)未組合BCD碼已存放在起始地址為CS:150H的區(qū)域,把它們轉(zhuǎn)換為二進(jìn)制數(shù)后,再分別存入起始地址為CS:165H的區(qū)域。例如ORG 150HDB 03H,06H,08H,09H,06H,05H,02H,09H則轉(zhuǎn)換后CS:165H開始的單元的內(nèi)容為:CS:165H 24H,00H,59H,00H,41H,00H,1DH,00H提示:1 算法是十位*10+個位。其中的*10可以用10=8+2來實現(xiàn)。2 程序流程圖如下圖所示。開始CX設(shè)置循環(huán)次數(shù)DI指向150H十位10取BCD碼十位送AL結(jié)束存放結(jié)果加上個位循環(huán)次數(shù)-10? BCD碼轉(zhuǎn)換為二進(jìn)制碼程序流程圖參考程序如下:ORG 100HSTART: MOV CX,0004H ;給循環(huán)計數(shù)器賦轉(zhuǎn)換代碼長度MOV DI,150H ;BCD碼首址送DIAA: MOV AL,DI ;BCD碼十位數(shù)值賦ALADD AL,AL ;*2MOV BL,ALADD AL,AL ;*4ADD AL,AL ;*8ADD AL,BL ;*10INC DIMOV AH,OOHADD AL,DI ;BCD碼十位和個位相加,轉(zhuǎn)換結(jié)束MOV DI+14H,AX ;轉(zhuǎn)換結(jié)果存起始地址165H單元INC DILOOP AA ;(CX)0INT 20HORG 150HDB 03H,06H,08H,09H,06H,05H,02H,09H 實驗四 循環(huán)結(jié)構(gòu)的程序設(shè)計一實驗?zāi)康?學(xué)習(xí)并掌握數(shù)據(jù)傳送指令和算術(shù)運算指令的用法。2熟悉PC機(jī)上建立、匯編、鏈接和運行8088匯編語言程序的過程。3掌握循環(huán)結(jié)構(gòu)程序的編寫方法。二實驗內(nèi)容將兩個多位十進(jìn)制數(shù)相加,并在屏幕上顯示加數(shù)、被加數(shù)以及和。已知被加數(shù)和加數(shù)均以ASCII碼的形式存放在DATA1和DATA2為首的單元中(低位位于低地址),結(jié)果送回DATA1處。編程提示1因被加數(shù)和加數(shù)均以ASCII碼形式存放,所以在相加必須轉(zhuǎn)化為BCD碼,此時用未組合BCD碼最適宜。未組合BCD碼相加要用到AAA加法調(diào)整指令。2顯示數(shù)據(jù)可用2號DOS功能調(diào)用。3 程序流程圖如下圖所示。顯示被加數(shù)和加數(shù)ASCII16進(jìn)制數(shù)計數(shù)值CX清除最低位進(jìn)位執(zhí)行帶進(jìn)位加ADCAAA調(diào)整結(jié)果送被加數(shù)區(qū)調(diào)整偏移量CX-1=0?16進(jìn)制結(jié)果ASCII碼顯示結(jié)果結(jié)束YN 多位十進(jìn)制數(shù)相加程序流程圖參考程序如下:CRLF MACR0 ;建立宏指令CRLF MOV DL,0DH MOV AH,02H INT 21H MOV DL,0AH MOV AH,02H INT 21H ENDMDATA SEGMENTDATA1 DB 33H,39H,31H,37H,34HCOUNT EQU $-DATA1DATA2 DB 36H,35H,30H,38H,32HDATA ENDSSTACK SEGMENT STACD STACK DB 20 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOV AX,DATA MOV DS,AX MOV SI,OFFSET DATA2MOV BX,COUTNCALL DISPL ;顯示被加數(shù)CRLFMOV SI,OFFSET DATA1MOV BX,COUNT ;顯示加數(shù)CALL DISPLCRLFMOV DI,OFFSET DATA2CALL ADDA ;加法運算MOV SI,OFFSET DATA1MOV BX,COUNTCALL DISPL ;顯示結(jié)果CRLFMOV AX,4C00HINT 21HDISPL PROC NEAR ;顯示子程序DIS: MOV AH,02H MOV DL,SI+BX-1 ;顯示字符串中一字符INC 21H DEC BX ;修改偏移量JNZ DS1RETDISPL ENDPADDA PROC NEAR MOV DX,SIMOV BP,DIMOV BX,COUNTAD1: SUB BYTE PTRSI+BX-1,30H SUB BYTE PTRDI+BX-1,30HDEC BX ;將ASCII碼數(shù)字串轉(zhuǎn)化為十進(jìn)制色數(shù)字串JNZ AD1MOV SI,DXMOV DI,BPMOV CX,COUNTCLCAD2: MOV AL,SI ADC AL,DIAAA ;非組合BCD碼的加法調(diào)整MOV SI,AL ;結(jié)果送被加數(shù)區(qū)INC SIINC DI ;指向下一位LOOP AD2MOV SI,DXMOV DI,BPMOV BX,COUNTAD3: ADD BYTE PTRSI+BX-1,30H ADD BYTE PTRDI+BX-1,30H ;十進(jìn)制數(shù)字串轉(zhuǎn)為ASCII碼表示的數(shù)據(jù)串DEC BXJNZ AD3RETADDA ENDPCODE ENDS END START 實驗五 子程序設(shè)計和調(diào)用一實驗?zāi)康?通過程序調(diào)試,觀察子程序調(diào)用及嵌套過程,進(jìn)一步理解CALL指令和RET指令的功能。2掌握子程序(或過程)調(diào)用時參數(shù)傳遞的方法。二實驗內(nèi)容調(diào)試程序PCS5_1.ASM,使實現(xiàn)函數(shù)y=(a+b)2(a和b均為0-65535之間的值),并在屏幕上顯示y的值(十六進(jìn)制形式)。;PCS5-1.ASM TO BE DEBUGEDDATA SEGMENTA DW 125B DW 90Y DW 2 DUP(0)Z DW 0,0DATA ENDSSTA SEGMENT STACK STACK DW 50 DUP(S) STA ENDS CODE SEGMENT ASSUME CS:CDOE,DS:DATA,SS:STA STAR PROC FAR PUSH DS ;保存PSP首地址 XOP AX,AX MOV AX,A MOV Z,AX MOV Z+2,AX CALL MLT ;求A的平方 MOV AX,B MOV Z,AX MOV Z+2,AX CALL MLT ;求B的平方 MOV AX,A MOV Z,AX MOV AX,B MOV Z+2,AX CALL MLT ;求A*B ADD Y,AX ADC Y+2,DX ;再加一個A*B ADC Y+4,0CALL DSP6 ;顯示6位數(shù)RET STAR END MLT PROC ;Z和Z+2字單元內(nèi)容相乘 MOV AX,ZMOV BX,Z+2 MUL BX ADD Y,AXADC Y+2,DXADC Y+4,0RET MLT ENDP DSP6 PROC ;顯示6字節(jié)結(jié)果LEA SI,Y ADD SI,5 MOV CX,6 L1: MOV AL,BYTE PTRRCALL DSPAL DEC SI LOOP L1RET DSP6 ENDPDSPAL PROC ;顯示ALPUSH AX ;保護(hù)寄存器PUSH BXPUSH CXPUSH DXMOV BH,AL ;暫存與BHMOV BL,2MOV CL,4SHR AL,CL G1: CMP AL,10JGE G2OR AL,30HJMP G3G2: ADD AL,37HG3: MOV DL,AL ;CRT顯示 MOV AH,2 INT 21H DEC BL JZ G4 MOV AL,BH ;再處理低4位 AND AL,0FH JMP G1G4: POP DXPOP CX POP BXPOP AXRETDSPAL ENDPCODE ENDS END程序調(diào)試通過后,在DEBUG環(huán)境下觀察CALL和RET指令執(zhí)行時堆棧指針的變化及堆棧中壓入和彈出的內(nèi)容。 實驗六 DOS功能調(diào)用一、實驗?zāi)康恼莆粘S玫腄OS功能調(diào)用。二、實驗內(nèi)容編程完成多位十進(jìn)制與一位十進(jìn)制數(shù)的乘法運算,并在屏幕上顯示乘積。已知被乘數(shù)和乘數(shù)均以ASCII碼形式存放在內(nèi)存中,并且低位數(shù)存放在低地址。三、編程提示1十進(jìn)制數(shù)的乘法,必須在乘法指令后用AAM指令進(jìn)行調(diào)整。多位十進(jìn)制數(shù)乘一位十進(jìn)制數(shù),必須把每一位乘法運算的部分積加至結(jié)果(乘積)單元,十進(jìn)制數(shù)相加還必須用AAA指令進(jìn)行調(diào)整。下面以兩位數(shù)乘一位數(shù)說明其運算過程。DATA1 DB 38H, 35H ;58(被乘數(shù))DATA2 DB 39H ;9(乘數(shù))RESULT DB 3DUP(0)先乘個位。08H09H后,AX0048H;經(jīng)AAM調(diào)整后AX=0702H。這個部分積加至乘積單元,因此RESULT單元內(nèi)容為:02H,07H,00H。再乘十位。05H09H后,AX002DH;經(jīng)AAM調(diào)整后AX=0405H。AX=0405H。AX這個部分積應(yīng)加至乘積單元的十位:05H07H,AL中得到0CH,經(jīng)AAA指令調(diào)整,AL加6并將高四位清零變成02H,AH則加1變成05H,于是AX0502H。低字節(jié)02H應(yīng)放入結(jié)果的十位,高字節(jié)05H應(yīng)送到百位。于是乘積單元內(nèi)容為02H,02H,05H,即589522,得到正確的十進(jìn)制積。2程序流程圖如下圖所示。乘數(shù)BLASCII碼16進(jìn)制數(shù)DI指向存儲結(jié)果區(qū)(預(yù)清零)SI指
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級下語文課本解析計劃
- 2025小學(xué)二年級語文上冊家校合作計劃
- 2025年呼吸科護(hù)理患者教育計劃
- 農(nóng)產(chǎn)品加工主要材料供應(yīng)及保供措施
- 初中校園足球畢業(yè)選手發(fā)展計劃
- 翻轉(zhuǎn)課堂促進(jìn)學(xué)生創(chuàng)新能力心得體會
- 土釘墻施工創(chuàng)新技術(shù)流程他
- 公路橋梁工程2025年工作總結(jié)及2025年工作計劃
- 鋼結(jié)構(gòu)工程EPC項目投資控制措施
- 2025年數(shù)學(xué)教研組課堂管理優(yōu)化計劃
- 駐唱歌手合同協(xié)議
- 燃?xì)庑袠I(yè)法律法規(guī)培訓(xùn)
- 【初中地理】七年級地理下冊全冊期末總復(fù)習(xí)(課件)-2024-2025學(xué)年七年級地理課件(人教版2024年)
- 2024年隴南市武都區(qū)佛崖鎮(zhèn)招聘專職化村文書筆試真題
- 《煙花爆竹安全》課件
- 獵頭職業(yè)技能培訓(xùn)
- 電動公交車充電設(shè)施建設(shè)與運營模式
- 2025年四川省成都市新都區(qū)特需人才引進(jìn)34人歷年高頻重點模擬試卷提升(共500題附帶答案詳解)
- 和合文化與國際傳播
- 煤礦急救知識培訓(xùn)課件
- 中國文化概論知識試題與答案版
評論
0/150
提交評論