匯編語言程序設計_第1頁
匯編語言程序設計_第2頁
匯編語言程序設計_第3頁
匯編語言程序設計_第4頁
匯編語言程序設計_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、匯編語言程序設計(2) 無 88 石光一 實驗目的1 掌握子程序的編程方法2 掌握宏指令與宏指令調用的編程方法3 掌握C語言與匯編語言的混合編程方法二 實驗內(nèi)容1 編寫一個程序,將用戶從鍵盤輸入的十進制數(shù)(不超過65535)轉換成十六進制數(shù)并顯示。* 程序清單 *D SEGMENT OUTPUT DBENTER A DECIMAL NUMBER(65535):,0DH,0AH,$NUM DB 8 DB ? DB 8 DUP(?)EEQQ DW 0ASCII DB ABCDEFEO DB 0DH,0AH,INPUT ERROR!,0DH,0AH,$RE1 DB 0RE2 DB 0RE3 DB 0

2、RE4 DB 0RESULT1 DB 0DH,0AH,THE CONVERTED HEHADECIMAL NUMBER IS:$RESULT2 DB HD ENDS;定義數(shù)據(jù)段CEG SEGMENTASSUME CS:CEG,DS:D;定義代碼段START : MOV AX,DMOV DS,AX;給數(shù)據(jù)段賦初值LEADX,OUTPUTMOV AH,9INT 21HLEA DX,NUM ;顯示輸入提示字符串MOV AH,0AHINT 21H;讀取字符串CALL CHECK;調用第一個子程序,檢查字符串是否正確CALL DTOH ;調用第二個子程序,將十進制數(shù)ASCII串轉換成十六進制數(shù)CALL

3、HTOA;調用第三個子程序,將十六進制數(shù)轉換成ASCII串LEA DX,RESULT1MOV AH,9INT 21H ;顯示輸出提示字符串LEA SI,RE4MOV DL,SIMOV AH,2INT 21HLEA SI,RE3MOV DL,SIMOV AH,2INT 21HLEA SI,RE2MOV DL,SIMOV AH,2INT 21HLEA SI,RE1MOV DL,SIMOV AH,2INT 21HLEA SI,RESULT2;分別輸出四位MOV DL,SIMOV AH,2INT 21HLAST: MOV AH,4CH;返回DOS狀態(tài)INT 21HCHECK PROC ;定義子程序LE

4、A DI,NUM;DI保存數(shù)據(jù)地址INC DI;DI指向下一位MOV CL,DI;CL保存數(shù)據(jù)位數(shù)AND CX,000FHINC DI;DI指向下一位AG:MOV AL,DICMP AL,9 JA EERRCMP AL,0JB EERRINC DILOOP AGJMP RE;若輸入的字符串中含有非09的字符,顯示出錯信息EERR: LEA DX,EOMOV AH,9INT 21H JMP LASTRE:RETCHECK ENDP DTOH PROC ;定義子程序LEA DI,NUM;DI保存數(shù)據(jù)地址INC DI;DI指向下一位MOVCL,DI ;CL保存數(shù)據(jù)位數(shù)AND CX,000FHMOV

5、AX,0MOV BX,0;清空AX,BXMOV SI,10;SI賦十AD:MUL SIINC DIMOV BL,DIAND BL,0FHADC AX,BXLOOP ADMOV EEQQ,AX;循環(huán)累加RETDTOH ENDPHTOA PROC ;定義子程序MOV AX,EEQQ;讀取數(shù)據(jù)AND AL,0FHLEA BX,ASCIIXLAT ASCIIMOV RE1,AL;將十六進制數(shù)轉換成ASCII碼并保存MOV DL,ALMOV AX,EEQQMOV AH,0AND AL,0F0HMOV CL,4SHR AL,CLLEA BX,ASCIIXLAT ASCIIMOV RE2,AL;將十六進制數(shù)

6、轉換成ASCII碼并保存MOV DL,ALMOV AX,EEQQAND AH,0FHMOV AL,AHLEA BX,ASCIIXLAT ASCIIMOV RE3,AL;將十六進制數(shù)轉換成ASCII碼并保存MOV DL,ALMOV AX,EEQQMOV AH,0AND AL,0F0HMOV CL,4SHR AL,CLMOV AL,AHLEA BX,ASCIIXLAT ASCIIMOV RE4,AL;將十六進制數(shù)轉換成ASCII碼并保存RETHTOA ENDPCEG ENDS END START2 編寫一個程序,對鍵盤輸入的兩個字符串進行比較,輸入的字符串長度不超過80。* 程序清單 *D SEG

7、MENT ;定義代碼段STRING1 DB Enter the first string(NUMBER80):,0DH,0AH,$STRING2DB 0DH,0AH,Enter the second string (NUMBER24)&0xff; month=(int)date2; /* 月份是最高8位,須將變量右移24位,并強制轉化為字符型 */ date2=date1; date2=(date216)&0xff; day=(int)date2; /* 日期是次高8位,須將變量右移16位,并強制轉化為字符型 */ date2=date1; date2=date2&0x0000ffff; ye

8、ar=(int)date2; /* 年份是后16位 */ time2=(time224)&0xff; sec=(int)time2; /* 秒是最高8位,須將變量右移24位,并強制轉化為字符型 */ time2=time1; time2=(time216)&0xff; psec=(int)time2; /* 百分秒是次高8位,須將變量右移24位,并強制轉化為字符型 */ time2=time1; time2=(time28)&0xff; hour=(int)time2; /* 小時是ax高8位,須將變量右移8位,并強制轉化為字符型 */ time2=time1; time2=time2&0xff; min=(int)time2; /* 分是ax低8位,強制轉化為字符型即可 */ printf(nCurren

溫馨提示

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

評論

0/150

提交評論