河北工業(yè)大學匯編語言程序設(shè)計實驗.doc_第1頁
河北工業(yè)大學匯編語言程序設(shè)計實驗.doc_第2頁
河北工業(yè)大學匯編語言程序設(shè)計實驗.doc_第3頁
河北工業(yè)大學匯編語言程序設(shè)計實驗.doc_第4頁
河北工業(yè)大學匯編語言程序設(shè)計實驗.doc_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第 32 頁匯編語言程序設(shè)計實驗網(wǎng)絡(luò)* *匯編語言程序設(shè)計實驗網(wǎng)絡(luò)* *實驗一 順序與分支程序設(shè)計一 、實驗目的 1) 掌握順序程序設(shè)計方法。2) 掌握分支程序的結(jié)構(gòu)及分支程序的設(shè)計,調(diào)試方法。 2) 學習數(shù)據(jù)傳送及算術(shù)和邏輯運算指令的用法。 3) 熟悉在pc機上建立、匯編、連接、調(diào)試和運行匯編語言程序的過程。 二、實驗內(nèi)容 1.實驗六 從鍵盤上接收一位十進制數(shù)x,計算y值,并以十六進制形式顯示出來,y按下列公式計算。2.實驗七實驗內(nèi)容:從鍵盤上接收兩個一位十六進制數(shù)x和y,然后再輸入一個a-d之間的一個字符,按下列要求計算。a) 當輸入字符為a,則計算x+y,并以十六進 制形式顯示出來b) 當輸入字符為b,則計算|x-y|,并以十六進制形式顯示出來c) 當輸入字符為c,則計算x*y,并以十六進制形式顯示出來d) 當輸入字符為d,則計算x/y,并以十六進制形式顯示出來3、 實驗代碼 實驗六DATE SEGMENT X DB ?DATE ENDS ;數(shù)據(jù)段CODE SEGMENT ASSUME CS:CODE,DS:DATE START:MOV AX,DATE ;代碼段 MOV DS,AX ;初始化ds寄存器 MOV AH,1 INT 21H ;讀文件到緩沖區(qū) CMP AL,33H ;比較指令 JB L0 ;AB CMP AL,36H JA L0 AND AL,0FH ;邏輯與指令 MOV X,AL ;al給x MOV AL,X CMP AL,3H JE L1 ;執(zhí)行L1命令 CMP AL,4H JE L4 ;執(zhí)行L4命令 CMP AL,5H JE L6 ;執(zhí)行L6命令 CMP AL,6H JE L7 ;執(zhí)行L7命令 L1:MUL AL ADD AL,X ;al+x L5:MOV BL,AL MOV CL,4 SHR AL,CL ;移位指令 CMP AL,9 JLE L2 ;轉(zhuǎn)移指令。小于或等于,或者不大于則轉(zhuǎn)移 ADD AL,7 L2:ADD AL,30H ;寄存器al加0x30 MOV DL,AL MOV AH,2 ;把2放入ah里 INT 21H AND BL,0FH ;邏輯與運算指令 CMP BL,9 JLE L3 ADD BL,7 ;相加 L3:ADD BL,30H MOV DL,BL MOV AH,2 INT 21H JMP L0 L4:MUL AL SUB AL,X SUB AL,X JMP L5 L6:MUL AL JMP L5 L7:MUL AL SHR AL,1 JMP L5 L0:MOV AH,4CH INT 21HCODE ENDSEND START實驗七DATA SEGMENT X DB 0 Y DB 0 W DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX XOR AX,AX MOV AH,1 INT 21H CMP AL,39H JBE L1 SUB AL,07H L1:SUB AL,30H MOV X,AL MOV AH,1 INT 21H CMP AL,39H JBE L2 SUB AL,07H L2:SUB AL,30H MOV Y,AL MOV AH,1 INT 21H A:CMP AL,41H JNE B XOR AL,AL MOV AL,X ADD AL,Y MOV W,AL JMP L3 B:CMP AL,42H JNE C XOR AL,AL MOV AL,X SUB AL,Y MOV W,AL CMP AL,0 JG L3 NEG AL MOV W,AL JMP L3 C:CMP AL,43H JNE D XOR AL,AL MOV AL,X MUL Y MOV W,AL JMP L3 D:XOR AX,AX MOV AL,X DIV Y MOV W,AL L3:MOV DL,AL MOV CL,4 SHR DL,CL CMP DL,9 JNA L4 ADD DL,07H L4:ADD DL,30H MOV AH,02H INT 21H MOV DL,W AND DL,0FH CMP DL,9 JNA L5 ADD DL,07H L5:ADD DL,30H MOV AH,02H INT 21H MOV AH,4CH INT 21H CODE ENDS END START4、 實驗結(jié)果:實驗六結(jié)果實驗七結(jié)果5、 實驗心得:(1)通過實驗使我知道了和熟悉了匯編程序設(shè)計的步驟 1.建立數(shù)學模型 遇到一個題目,首先要進行全面的分析,根據(jù)問題提出的條件,特點,找出規(guī)律,找出問題的數(shù)學模型或者制定解決問題的規(guī)律。 2.繪制程序流程圖 流程圖能夠把比較抽象的問題變得而形象化,并且有助于理清楚思路,便于程序的編制,在程序的易讀性和易維護性上有很大的幫助。3.合理分配存儲空間和寄存器 匯編語言能夠直接的調(diào)用存儲器和寄存器。程序運行時,大兩量的數(shù)據(jù),中間結(jié)果或最后的結(jié)果都存放在存儲器中,且運行的程序目標代碼在存儲器中,節(jié)約空間是一個好的程序應該注意的問題。 4.編制程序 根據(jù)語法指令編制程序 5.人工檢查 用人工的方式檢查程序是否有錯,并及時的改正。6.上機調(diào)試 只有通過上機才能驗證程序是否正確,經(jīng)過反復的運行調(diào)試,才能得到正確的程序。(2)掌握了分支程序的結(jié)構(gòu)及分支程序的設(shè)計,調(diào)試方法和數(shù)據(jù)傳送及算術(shù)和邏輯運算指令的用法。匯編語言程序設(shè)計實驗網(wǎng)絡(luò)* *實驗二 循環(huán)與子程序程序設(shè)計一、 實驗目的1) 加深對循環(huán)結(jié)構(gòu)的理解。 2)掌握循環(huán)程序的設(shè)計方法。3)學習子程序的定義和調(diào)用方法。 4)掌握子程序、子程序的嵌套、遞歸子程序的結(jié)構(gòu)。 5) 掌握子程序設(shè)計、編制及調(diào)試。 6) 熟練掌握DEBUG的常用命令,學會用DEBUG調(diào)試程序。二、 實驗內(nèi)容1)編制在屏幕上顯示九九乘法表的程序。2)編制在屏幕上顯示用*組成的三角形的程序。3、 實驗代碼實驗一DATA SEGMENTS2 DB ?S1 DB ?X DB 1Y DB 1S DB 0AHFCH=2AHFDH=3DHFKG=20HFHH=0AHFHC=0DHDATA ENDSSTACK1 SEGMENT STACKDB 20H DUP(0)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX,DATAMOV DS,AXMOV CL,9LL1:PUSH CX ;將CL壓入堆棧段MOV CL,YLL2:CALL L1 ;調(diào)用子程序L1INC XLOOP LL2MOV X,1INC YMOV DL,FHH ;輸出換行和回車MOV AH,2INT 21HMOV DL,FHCMOV AH,2INT 21HPOP CX ;從堆棧段中取出CLLOOP LL1MOV AH,4CH ;程序結(jié)束INT 21HL1 PROC ;計算X*Y=Z并且輸出X*Y=Z的子程序MOV DL,XADD DL,30H MOV AH,2INT 21HMOV DL,FCHMOV AH,2INT 21HMOV DL,YADD DL,30HMOV AH,2INT 21HMOV DL,FDH MOV AH,2INT 21HMOV AL,XMUL YDIV SMOV S1,AHADD AL,30HMOV DL,ALMOV AH,2INT 21HADD S1,30HMOV DL,S1MOV AH,2INT 21HMOV DL,FKG ;輸出空格MOV AH,2INT 21HRETL1 ENDP ;子程序結(jié)束CODE ENDSEND START實驗二DATA SEGMENTN DB ?FCH=2AHFDH=3DHFKG=20HFHH=0AHFHC=0DHDATA ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AH,1 ;輸入一位16進制數(shù)確定輸出行數(shù) INT 21H CMP AL,39H JBE L1 SUB AL,07HL1:SUB AL,30H MOV N,ALXOR BX,BXMOV DL,FCHMOV CL,NMOV DL,FHH ;輸出換行和回車MOV AH,2INT 21HMOV DL,FHCMOV AH,2INT 21HLOP:PUSH CXINC BLMOV CL,BLMOV DL,FCHLOP2:MOV AH,02HINT 21HLOOP LOP2POP CXMOV DL,0AHMOV AH,02HINT 21HMOV DL,FHCMOV AH,02HINT 21HCMP BL,9JZ L2LOOP LOPL2:MOV AH,4CH ;程序結(jié)束INT 21HCODES ENDSEND START4、 實驗結(jié)果:實驗一結(jié)果實驗二結(jié)果5、 實驗心得5、 循環(huán)程序由初始化部分、循環(huán)部分、調(diào)整部分、控制部分組成1兩種方式,一種是先判斷在執(zhí)行,另一種是先執(zhí)行再判斷。2兩種控制循環(huán)的方式 a計數(shù)控制循環(huán)一般使用LOOP指令,要先將循環(huán)的次數(shù)放入CX中,在多重循環(huán)的計數(shù)控制中要注保存和復原上一次循環(huán)的斷點信息,在保留和復原時可以使用堆棧進行處理。自認為可以理解為一根盤繞了確定的圈數(shù)的繩子,又進入的頭,又出去的尾。 b條件控制循環(huán)一般使用JMP指令使程序跳到這一段的開頭,用CMP在循環(huán)中進行比較判斷,再根據(jù)程序要求,選擇適當?shù)霓D(zhuǎn)移條件,跳出循環(huán)。自認為可以理解為一圓形的導軌,并在導軌上設(shè)置一個初口,在符合條件時就在導軌上脫離,否則,將會在導軌上一直的轉(zhuǎn)下去。3再循環(huán)中可以同時使用兩者,當即已知循環(huán)的次數(shù)限制范圍,但又要求在符合條件時結(jié)束循環(huán)是,就要同時使用兩者。6、 子程序的使用大大的簡化了程序設(shè)計的思路,在完成一個程序時,可以簡單的把一個程序劃分為幾個完整的幾部分,使每一部分獨立的完成特定的一部分和計算任務。子程序的使用還可以大大的減小程序的體積,在一程序中,如果需要多次反復的是用某一段代碼的話,就可以將這段代碼設(shè)定為子程序,以后想使用時,只要一CALL再一RET就OK啦。我認為使用子程序的關(guān)鍵在于明白子程序的機理,明白子程序是如何保存和恢復斷點的信息的,只有真正的理解了這一點才能更好地利用好子程序。子程序的參數(shù)傳遞的方式有很多種,但是在堆棧段傳遞參數(shù)時,應該注意使用帶立即數(shù)的返回的方式,在利用寄存器BP訪問堆棧段來取得參數(shù)。匯編語言程序設(shè)計實驗網(wǎng)絡(luò)* *實驗三 算術(shù)運算與代碼轉(zhuǎn)換程序設(shè)計一、實驗目的 1)掌握算術(shù)運算程序的設(shè)計方法。2)掌握代碼轉(zhuǎn)換程序的設(shè)計方法。 3)進一步掌握各種程序結(jié)構(gòu)。 4)熟練掌握和使用用DEBUG調(diào)試程序。 二、實驗內(nèi)容1)編制兩個多字節(jié)整數(shù)加法和減法程序,并將結(jié)果按十六進制形式顯示在屏幕上。2)編寫程序計算從鍵盤輸入兩個不超過四位的十進制數(shù)的和、差、積、商,并以十進制形式輸出。3)編寫程序把從鍵盤輸入的以回車為結(jié)束符的字符串中的空格去掉并按相反的順序輸出。三 實驗代碼、實驗1DATA SEGMENTNUM1 DB 22H,33H,44H,55H,66H,77HNUM1L DB 6HNUM2 DB 22H,22H,22H,22HNUM2L DB 4HOUTCOME1 DB 10H DUP(0)OUTCOME2 DB 10H DUP(0)N DB 0HDATA ENDSSTACK1 SEGMENT PARA STACKDW 20H DUP(0)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX,DATAMOV DS,AXMOV CH,0MOV SI,OFFSET NUM1MOV DI,OFFSET NUM2MOV AH,NUM1LMOV AL,NUM2LCMP AH,ALJAE CHAXCHG SI,DIXCHG AH,ALCHA:SUB AH,ALMOV CL,ALCLCMOV BX,OFFSET OUTCOME1LOP1:MOV AL,DIPUSH CXMOV CL,SIADC CL,ALMOV BX,CLINC BXINC SIINC DIPOP CXLOOP LOP1MOV CL,AHJCXZ LOP3LOP2:PUSH CXMOV CL, BYTE PTR SIADC CL,0MOV BX,CLPOP CXINC BXINC SILOOP LOP2LOP3:MOV CH,0MOV SI,OFFSET NUM1MOV DI,OFFSET NUM2MOV AH,NUM1LMOV AL,NUM2LCMP AH,ALJAE CHA1XCHG SI,DIXCHG AH,ALCHA1:SUB AH,ALMOV CL,ALCLCMOV BX,OFFSET OUTCOME2LOP11:MOV AL,DIPUSH CXMOV CL,SISBB CL,ALMOV BX,CLINC BXINC SIINC DIPOP CXLOOP LOP11MOV CL,AHJCXZ LOP7LOP21:PUSH CXMOV CL, BYTE PTR SISBB CL,0MOV BX,CLPOP CXINC BXINC SILOOP LOP21LOP7:MOV DI,OFFSET OUTCOME1ADD DI,10HMOV CX,11HLOP4: MOV DL,DIDEC DICMP N,0HJNE LOP5CMP DL,0HJE LOP9LOP5:PUSH DXPUSH CXMOV CL,4HSHR DL,CLPOP CXCMP DL,9HJBE LOP6ADD DL,7HLOP6:ADD DL,30HMOV AH,2INT 21HMOV N,1HPOP DXAND DX,0FHCMP DL,9HJBE LOP8ADD DL,7HLOP8:ADD DL,30HMOV AH,2INT 21HMOV DL,HMOV AH,2INT 21HLOP9:LOOP LOP4MOV N,0MOV DI,OFFSET OUTCOME2ADD DI,10HMOV CX,11HLOP14: MOV DL,DIDEC DICMP N,0HJNE LOP15CMP DL,0HJE LOP19LOP15:PUSH DXPUSH CXMOV CL,4HSHR DL,CLPOP CXCMP DL,9HJBE LOP16ADD DL,7HLOP16:ADD DL,30HMOV AH,2INT 21HMOV N,1HPOP DXAND DX,0FHCMP DL,9HJBE LOP18ADD DL,7HLOP18:ADD DL,30HMOV AH,2INT 21HMOV DL,HMOV AH,2INT 21HLOP19:LOOP LOP14MOV AH,4CHINT 21HCODE ENDSEND START實驗2DATA SEGMENTTISHI1 DB Please enter the first number:,$TISHI2 DB Please enter the second number:,$JIA DB +,$JIAN DB -,$CHENG DB *,$CHU DB /,$DENG DB =,$YU DB .,$A DB 10B DW 10C DW 10000F DW 0HNUM1 DW 0HNUM2 DW 0HN DB 0HN1 DB 4HDATA ENDSSTACK1 SEGMENT STACKDW 30H DUP(0)STACK1 ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET TISHI1MOV AH,09HINT 21HLOOP2:MOV AX,NUM1MUL BMOV BX,AXMOV AH,1INT 21HCMP AL,0DHJE LOP1MOV NUM1,BXMOV AH,0SUB AL,30HADD NUM1,AXJMP LOOP2LOP1:MOV DL,0AH ;輸出換行和回車MOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HMOV DX,OFFSET TISHI2MOV AH,09HINT 21HLOOP1:MOV AX,NUM2MUL BMOV BX,AXMOV AH,1INT 21HCMP AL,0DHJE LOP3MOV NUM2,BXMOV AH,0SUB AL,30HADD NUM2,AXJMP LOOP1LOP3:MOV DL,0AH ;輸出換行和回車MOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HMOV N,0MOV DX,NUM1MOV F,DX LOP6:MOV DX,0HMOV AX,FDIV BPUSH DXINC NCMP AX,0HJE LOP7MOV F,AXJMP LOP6LOP7:MOV CL,NMOV CH,0LOP16:POP DXADD DX,30HMOV AH,2INT 21HLOOP LOP16MOV DX,NUM2MOV F,DXMOV N,0MOV DX,OFFSET JIAMOV AH,09HINT 21H LOOOP6:MOV DX,0HMOV AX,FDIV BPUSH DXINC NCMP AX,0HJE LOOOP7MOV F,AXJMP LOOOP6LOOOP7:MOV CL,NMOV CH,0LOOOP16:POP DXADD DX,30HMOV AH,2INT 21HLOOP LOOOP16MOV DX,OFFSET DENGMOV AH,09HINT 21HMOV N,0LOOP3:MOV AX,NUM1ADD AX,NUM2MOV F,AXLOOP4:MOV DX,0HMOV AX,FDIV BPUSH DXINC NCMP AX,0HJE LOOP5MOV F,AXJMP LOOP4LOOP5:MOV CL,NMOV CH,0LOOP0:POP DXADD DX,30HMOV AH,2INT 21HLOOP LOOP0MOV DL,0AH ;輸出換行和回車MOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HMOV N,0MOV DX,NUM1MOV F,DX LOP61:MOV DX,0HMOV AX,FDIV BPUSH DXINC NCMP AX,0HJE LOP71MOV F,AXJMP LOP61LOP71:MOV CL,NMOV CH,0LOP161:POP DXADD DX,30HMOV AH,2INT 21HLOOP LOP161MOV DX,NUM2MOV F,DXMOV N,0MOV DX,OFFSET JIANMOV AH,09HINT 21H LOOOP61:MOV DX,0HMOV AX,FDIV BPUSH DXINC NCMP AX,0HJE LOOOP71MOV F,AXJMP LOOOP61LOOOP71:MOV CL,NMOV CH,0LOOOP161:POP DXADD DX,30HMOV AH,2INT 21HLOOP LOOOP161MOV DX,OFFSET DENGMOV AH,09HINT 21HMOV N,0MOV N,0MOV AX,NUM1SUB AX,NUM2MOV F,AXAND AX,10000000BCMP AX,10000000BJNE LOOP6NEG FLOOP6:MOV DX,0MOV AX,FDIV BPUSH DXINC NCMP AX,0HJE LOOP7MOV F,AXJMP LOOP6LOOP7:MOV CL,NMOV CH,0LOOP16:POP DXADD DX,30HMOV AH,2INT 21HLOOP LOOP16MOV DL,0AH ;輸出換行和回車MOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HMOV N,0MOV DX,NUM1MOV F,DX LOP62:MOV DX,0HMOV AX,FDIV BPUSH DXINC NCMP AX,0HJE LOP72MOV F,AXJMP LOP62LOP72:MOV CL,NMOV CH,0LOP162:POP DXADD DX,30HMOV AH,2INT 21HLOOP LOP162MOV DX,NUM2MOV F,DXMOV N,0MOV DX,OFFSET CHENGMOV AH,09HINT 21H LOOOP62:MOV DX,0HMOV AX,FDIV BPUSH DXINC NCMP AX,0HJE LOOOP72MOV F,AXJMP LOOOP62LOOOP72:MOV CL,NMOV CH,0LOOOP162:POP DXADD DX,30HMOV AH,2INT 21HLOOP LOOOP162MOV DX,OFFSET DENGMOV AH,09HINT 21HMOV N,0MOV AX,NUM1MUL NUM2DIV CPUSH DXMOV F,AXMOV N,0LOOP8:MOV DX,0MOV AX,FDIV B PUSH DXINC NCMP AX,0HJE LOOP9MOV F,AXJMP LOOP8LOOP9:MOV CL,NMOV CH,0LOOP17:POP DXADD DX,30HMOV AH,2INT 21HLOOP LOOP17MOV N,0POP FLOOP10:MOV DX,0HMOV AX,FDIV BPUSH DXINC NCMP AX,0HJE LOOP11MOV F,AXJMP LOOP10LOOP11:MOV AL,NCMP AL,4HJE LOOP20MOV AL,4HSUB AL,NMOV CL,ALMOV CH,0LOOP19:MOV DX,0MOV AH,2INT 21HLOOP LOOP19LOOP20:MOV CL,NMOV CH,0LOOP18:POP DXADD DX,30HMOV AH,2INT 21HLOOP LOOP18MOV DL,0AH ;輸出換行和回車MOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HMOV N,0MOV DX,NUM1MOV F,DX LOP64:MOV DX,0HMOV AX,FDIV BPUSH DXINC NCMP AX,0HJE LOP74MOV F,AXJMP LOP64LOP74:MOV CL,NMOV CH,0LOP164:POP DXADD DX,30HMOV AH,2INT 21HLOOP LOP164MOV DX,NUM2MOV F,DXMOV N,0MOV DX,OFFSET chuMOV AH,09HINT 21H LOOOP64:MOV DX,0HMOV AX,FDIV BPUSH DXINC NCMP AX,0HJE LOOOP74MOV F,AXJMP LOOOP64LOOOP74:MOV CL,NMOV CH,0LOOOP164:POP DXADD DX,30HMOV AH,2INT 21HLOOP LOOOP164MOV DX,OFFSET DENGMOV AH,09HINT 21HMOV N,0MOV AX,NUM1MOV DX,0DIV NUM2PUSH DXMOV F,AXMOV N,0LOOP15:MOV DX,0MOV AX,FDIV BPUSH DXINC NCMP AX,0HJE LOOP12MOV F,AXJMP LOOP15LOOP12:MOV CL,NMOV CH,0LOOP21:POP DXADD DX,30HMOV AH,2INT 21HLOOP LOOP21MOV DX,OFFSET YUMOV AH,09HINT 21HPOP FMOV N,0LOOP13:MOV DX,0MOV AX,FDIV BPUSH DXINC NCMP AX,0HJE LOOP14MOV F,AXJMP LOOP13LOOP14:MOV CL,NMOV CH,0HLOOP22:POP DXADD DX,30HMOV AH,2INT 21HLOOP LOOP22MOV AH,4CHINT 21HCODES ENDSEND START實驗3DATA SEGMENTLENG DW 0HDATA ENDSSTACK1 SEGMENT PARA STACKDW 30H DUP(0)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX,DATAMOV DS,AXLOOP1:MOV AH,1INT 21HCMP AL,20HJE LOOP1INC LENGMOV AH,0PUSH AXCMP AL,0DHJNE LOOP1MOV DL,0AH ;輸出換行和回車MOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HPOP DXDEC LENGMOV CX,LENGLOOP2:POP DXMOV AH,2INT 21HLOOP LOOP2MOV AH,4CHINT 21HCODE ENDSEND START四 實驗結(jié)果實驗1結(jié)果實驗2結(jié)果實驗3結(jié)果五 實驗心得1. 計算機中處理的信息不全是數(shù),有時需要處理字符或字符串,因此,計算機中必須能表示字符。這些字符在計算機中用二進制表示,最常用的是ask值表示1當我們利用指令MOV AH,1HINT 21H輸入數(shù)字時,所得到存放在AL中的并不數(shù)字本身,而是相對應的ask值,因此,在輸入后需要對字符進行深加工后才能夠使用,有時還需要通過判斷來決定對字符串的處理方式。2當程序運行得到結(jié)果時,我們在輸出結(jié)果時,依然要得到相對應的ask值之后才能輸出,在轉(zhuǎn)換為相對應的ask值時,依然要通過判斷來決定處理的方式,例如,在以十六進制輸出結(jié)果時,就要判斷是加上30H還是加上37H。然后將ask值放DL中,再利用MOV AH,2HINT 21H輸出。3.將輸入的一段字符串反序輸出時,我認為堆棧是最好的選擇,因為堆棧是先進后出的原則,所以最先輸入的最后輸出。匯編語言程序設(shè)計實驗網(wǎng)絡(luò)* *實驗五 輸入輸出程序設(shè)計一、實驗目的 1) 掌握輸入輸出程序的編寫方法。 2) 熟悉系統(tǒng)功能調(diào)用的方法。 3) 熟悉動畫程序的編寫方法。 二、實驗內(nèi)容 1)編制字母下落一行的子程序,調(diào)用該子程序使字母從屏幕頂部下落到底部。2)編寫程序?qū)⑵聊环指畛筛駹?,每一格涂上不同顏色,格?shù)從鍵盤輸入。三、實驗代碼實驗一DATA SEGMENTTIMER DW 18COLOR DB 00000100BSTR1 DB NICE TO MEET YOU!DATA ENDSSTACK1 SEGMENT STACKDW 100 DUP(?)STACK1 ENDSCODE SEGMENTASSUME DS:DATA,CS:CODE,SS:STACK1,ES:DATASTART:MOV AX,DATAMOV DS,AXMOV ES,AXMOV AH,0FHINT 10HPUSH AX MOV AL,03HMOV AH,00HINT 10HMOV AH,13HMOV AL,00HMOV BL,COLORMOV BP,OFFSET STR1MOV DH,10MOV DL,20MOV CX,5INT 10HMOV CX,25LOP1:PUSH CXCALL DOWN1MOV AH,1 MOV CX,0 MOV DX,0 INT 1AHDELAY: MOV AH,0 INT 1AH CMP DX,TIME

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論