




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、ASCII碼與BCD碼之間的轉(zhuǎn)換1)字符的ASCII碼表示計算機(jī)中存儲的信息很多,其中一部分是用于數(shù)學(xué)計算的數(shù)據(jù),另一部分則是表示某種含義的字符或字符串。由于從鍵盤輸入的或屏幕顯示的信息,都是用字符串的形式表示的。因此,微機(jī)中必須能夠存儲和處理字符和字符串。計算機(jī)中使用的字符包括有如下4類:·字母:A、B、C、Y、Z、a、b、c、y和z。·數(shù)字:0、1、2、3、9。·專用符號:!、 ·控制字符:BEL(響鈴)、LF(換行)、CR(回車) 這些字符在計算機(jī)內(nèi)部都由特定的二進(jìn)制數(shù)表示。目前在微機(jī)中,最常用的字符表示法是ASCII碼(American Stan
2、dard Code for Information Interchange,美國標(biāo)準(zhǔn)信息交換碼)。在這種表示法中,每一個字符可以表示為一個8位的二進(jìn)制數(shù),即一個字節(jié)。其中。低7位用于表示該字符的ASCII值,最高位未定義,一般可用作奇偶校驗位。常用字符的ASCII碼表見表1.2。2)、十進(jìn)制數(shù)的BCD碼表示BCD碼(Binary Code Decimal),又稱“二進(jìn)制表示的十進(jìn)制數(shù)”,是一種非常適合數(shù)據(jù)輸出的編碼。一般而言,它可分為如下兩種:(1)、壓縮型BCD碼:它用4位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù)。即采用二進(jìn)制數(shù)00001001分別表示十進(jìn)制數(shù)中的09,而另6種組合10101111在BCD中
3、則不允許出現(xiàn);(2)、非壓縮型BCD碼:它用8位二進(jìn)制數(shù),即一個字節(jié)表示一位十進(jìn)制數(shù)。其高4位固定為0,而低4位采用二進(jìn)制數(shù)00001001分別表示十進(jìn)制數(shù)中的09。亦即用0000 00000000 1001分別表示十進(jìn)制數(shù)中的09。而其余組合則不允許出現(xiàn)。表1列出了十進(jìn)制數(shù)與BCD編碼的對應(yīng)關(guān)系。表1 BCD編碼表BCD編碼十進(jìn)制數(shù)BCD編碼十進(jìn)制數(shù)00000001001000110100010101100111012345671000100110101011110011011110111189這六種情況在BCD碼中不允許出現(xiàn)實驗程序1.按如下步驟操作,了解 DEBUG 命令及其使用方法。
4、(1)打 DEBUG 進(jìn)入 DEBUG 控制,顯示提示符 '_ '。(2)用命令 F100 10F 'A' 將'A'的ASCII碼填入內(nèi)存。(3)用命令 D100 10F 觀察內(nèi)存中的16進(jìn)制碼及屏幕右邊的ASCII字符。再用命令 D100 觀察內(nèi)存情況,之后接用二個命令D 觀察內(nèi)存情況。再用命令D100:10F 觀察內(nèi)存區(qū)的情況,說明這次與上次內(nèi)存區(qū)各個段地址是什么,為什么?(4)用命令 F110:11F 'A' 重復(fù)上二項實驗,設(shè)法用D命令找到并觀察結(jié)果,進(jìn)行比較。(5)用命令 E100 30 31 32 3F將30H-3FH
5、寫入地址為100開始的內(nèi)存單元中,再用D命令觀察結(jié)果,看鍵入的16進(jìn)制數(shù)是什么字符的ASCII碼? (6)用H命令檢查下列各組16進(jìn)制數(shù)加減結(jié)果并和你的手算結(jié)果比較: 34H,22H56H,78HA5,79H1284H,5678HA758,347FH 例如: H 34 22(7)用R 命令檢查各寄存器內(nèi)容,特別注意AX,BX,CX,DX,IP及標(biāo)志位中ZF,CF 和AF的內(nèi)容。 (8)用R命令將AX,BX內(nèi)容改寫為1050H及23A8H。(9)用A命令在內(nèi)存100H處鍵入下列內(nèi)容: MOV BX, 8275HMOV AX,3412HADD BX,92A5HADC AX,2F65HADD BX,
6、EAE6HADC AX,9C88H 用U命令檢查鍵入的程序并記錄,特別注意左邊的機(jī)器碼。 用T命令逐條運(yùn)行這些指令,每運(yùn)行一行檢查并記錄有關(guān)寄存器及IP的變化情況。并注意標(biāo)志位有無變化。標(biāo)志位顯示10 CF CYNC ZF ZRNZ SF NGPL AF ACNA OF OVNV PF PEPO DF DNUP IF EIDI(1)對照書本中關(guān)于 debug操作的介紹對以上實驗內(nèi)容進(jìn)行總結(jié)。(2)G命令的功能是什么?有那幾種格式?(3)D命令的功能是什么?有那幾種格式?(4)用P命令逐條運(yùn)行上述指令,與T命令進(jìn)行比較,閱看書本中關(guān)于這二個命令的說明,它們之間有什么不同,在本實驗中為什么沒有體現(xiàn)
7、?本試驗未體現(xiàn)2.在編譯與連接生成執(zhí)行程序之后利用DEBUG調(diào)試該程序,了解不同變量數(shù)據(jù)存儲情況,了解變量的三種含義及用法,了解加法、乘法運(yùn)算方法及對標(biāo)志位的影響。(在某些句后給出了單步執(zhí)行該句后需要思考與記錄的問題)。DATA SEGMENT A DW 35H,9AC9H DB 34H B DW 4CBEH,8872H DB 34H C DD 8A607H DB 34H D DD 98AB457H DB 34H E DB -48HDATA ENDSSTACK SEGMENT STACK DB 200 DUP(0)STACK ENDSCODE SEGMENT ASSUME DS:DATA,SS
8、:STACK,CS:CODESTART:MOV AX,DATA ;數(shù)據(jù)段在那里?怎樣看數(shù)據(jù)段中的內(nèi)容? MOV DS,AX;在執(zhí)行一次單步后查看數(shù)據(jù)區(qū),記錄數(shù)據(jù)是怎樣存放的。;對以下每句運(yùn)行后分析:這一句的意義是什么?; 如果是加法,相加的數(shù)據(jù)是什么?在存儲區(qū)什么位置?; 處理的結(jié)果在那里?; 對標(biāo)志位的影響如何?; 觀察一下,如果去掉“WORD PTR ”編譯時會如何? MOV AX,OFFSET A+2 ;AX中值是多少?意義是什么? LEA AX,A+2 ; AX中值是多少?意義是什么? MOV AX,A+2 ADD AX,B+2 ;多少加多少,結(jié)果在那里?等于多少?有沒有標(biāo)志改變? M
9、OV BX,A ADC BX,B ;多少加多少,結(jié)果在那里?等于多少?有沒有標(biāo)志改變? MOV AX,WORD PTR C ADD AX,WORD PTR D ;多少加多少 MOV AX,WORD PTR C+2 ADC AX,WORD PTR D+2 ;多少加多少;對以下每句分析:數(shù)據(jù)是如何存放的?; 相乘結(jié)果在那里?; 對CF與OF的影響如何?特別注意進(jìn)位與符號擴(kuò)展并不完全對應(yīng) MOV AL,E MOV BL,-3 MUL BL ;多少乘多少,結(jié)果在那里?等于多少?有沒有標(biāo)志改變?為什么? MOV AL,E MOV BL,3 MUL BL ;多少乘多少,結(jié)果在那里?等于多少?有沒有標(biāo)志改變
10、?為什么? MOV AL,E MOV BL,-3 IMUL BL ;多少乘多少,結(jié)果在那里?等于多少?有沒有標(biāo)志改變?為什么? MOV AL,E MOV BL,-1 IMUL BL ;多少乘多少,結(jié)果在那里?等于多少?有沒有標(biāo)志改變?為什么? MOV AL,E MOV BL,3 IMUL BL ;多少乘多少,結(jié)果在那里?等于多少?有沒有標(biāo)志改變?為什么? MOV BL,-1 MUL BL ;-1=ffh,cf=1。為什么? MOV AL,58h MOV BL,-1 iMUL BL ;-1,cf=0,高位全1。為什么? MOV AL,90h MOV BL,-1 MUL BL ;-1=ffh,cf
11、=1。為什么? MOV AL,90h MOV BL,-1 IMUL BL ;-1,cf=0,高位全0。為什么? MOV AL,58h MOV BL,1 MUL BL ;*1,cf=0,高位全0。為什么? MOV AL,58h MOV BL,1 iMUL BL ;*1,cf=0,高位全0。為什么? MOV AL,90h MOV BL,1 MUL BL ;*1,cf=0,高位全0。為什么? MOV AL,90h MOV BL,1 IMUL BL ;*1,cf=0,高位全1。為什么? MOV AH,4CH INT 21HCODE ENDS END START(1)乘法運(yùn)算時使CF與OF為0的情況其實
12、不多見,你能否總結(jié)一下大致在什么情況下會出現(xiàn)它們?yōu)?的情況?(2)如果要看到數(shù)據(jù)中數(shù)據(jù)的存放情況,一種方法是用D<段地址> <偏移地址>,另一種方法是用DDS:< 偏移地址>。你用什么方法得到段地址?試用這二種方法觀察數(shù)據(jù)區(qū)中數(shù)據(jù)存放情況,A、B、C、D、E的地址各是多少,為什么?3.檢查下面那些指令是錯誤的,說明原因并改正。(用MASM對該程序進(jìn)行編譯,觀察那些語句報錯,報的是什么錯?再看語句,根據(jù)語法與句法分析實際是什么錯,在語句后加簡單注釋,說明錯誤原因,嘗試進(jìn)行修改,要求盡量使修改結(jié)果符合原設(shè)計意圖。最終要求全部修改后能通過編譯。)DATA SEGM
13、ENT BUF DB 3 DA1 DB ? C DB 'B',0DH,0AH,'$' COUNT EQU $-CDATA ENDSSTACK SEGMENT STACK DB 200 DUP(0)STACK ENDSCODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODESTART:MOV AX,DATA MOV DS,AXMOV DL,255H INC COUNT MOV CS,DX CMP 280,BL PUSH DX LEA AL,C MOV BX,DA1DX SUB DI,SI ADD DX,BX MOV 80H,AX M
14、OV DA1,AX ADD DI,10H MOV BX,OFFSET DA1 MOV SI+DI,BX INC CS MOV ES,DSPOP AHROL AX,2MOV BX,DA1DI MOV AH,4CH INT 21HCODE ENDS END STARTASCII碼與壓縮型BCD碼的相互轉(zhuǎn)換4.十進(jìn)制數(shù)的ASCII碼轉(zhuǎn)換為壓縮型BCD碼令數(shù)據(jù)段中自ASC_BUF開始的緩沖區(qū)內(nèi)存放著若干個ASCII碼表示的十進(jìn)制數(shù)(每個單元存放一位十進(jìn)制數(shù)),要求將這些ASCII碼表示的十進(jìn)制數(shù)轉(zhuǎn)換為BCD碼,并把兩個相鄰單元的BCD碼合并在一個存儲單元(若ASCII碼的個數(shù)為奇數(shù),則將首地址單元的十
15、進(jìn)制數(shù)對應(yīng)的BCD碼單獨(dú)存放一個單元,其余的按統(tǒng)一的方法處理)。應(yīng)用DEBUG跟蹤執(zhí)行程序,當(dāng)程序執(zhí)行到語句MOV AH,4CH 時,查看數(shù)據(jù)區(qū)的內(nèi)容,分析運(yùn)行結(jié)果。通過執(zhí)行過程深入理解內(nèi)存儲器分段的概念。本程序中因有的位置使用了中文符號,在編譯時會報錯,觀察是如何報錯的?檢查問題出現(xiàn)在什么地方,將之改正后重新編譯直到通過。 DATA SEGMENT ASC_BUF DB 71542185 COUNT EQU $-ASC_BUF BCDBUF DB 10 DUP(?) DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV
16、AX,DATA MOV DS,AX MOV SI,OFFSET ASC_BUF MOV DI,OFFSET BCDBUF MOV CX,COUNT MOV BX,CX SHR BX,1 ;BX右移一位,等效于除2 JNC EVEN1 ;(CF)=0,則CX為偶數(shù) MOV BL,SI ;對首位單獨(dú)進(jìn)行處理 AND BL,0FH MOV DI,BL DEC CX INC SI INC DIEVEN1: MOV AL,SI AND AL,0FH ;清高4位為0 MOV BL,SI+1 AND BL,0FH ;清高4位為0 MOV DL,16 MUL DL ADD AL,BL MOV DI,AL AD
17、D SI,2 INC DI DEC CX JNZ EVEN1 MOV AH,4CH INT 21HCODE ENDS END START(1)畫出本程序程序流程圖。(2)將71542185改為471542185,觀察結(jié)果有何不同,分析程序中判斷數(shù)字個數(shù)奇偶并“對首位單獨(dú)進(jìn)行處理”的意義與程序設(shè)計方法。(3)總結(jié)將二個十六進(jìn)制字符拼成一個八位二進(jìn)制數(shù)的程序設(shè)計方法。5.壓縮BCD碼轉(zhuǎn)換為十進(jìn)制數(shù)的ASCII碼將數(shù)據(jù)段中字節(jié)變量BCD_BUF為首地址的緩沖區(qū)中一個八位十進(jìn)制數(shù)對應(yīng)的壓縮BCD碼轉(zhuǎn)換為ASCII碼,并顯示。DATA SEGMENTBCD_BUF DB 34H,25H,12H,97H
18、;十進(jìn)制數(shù)97122534DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATAMAIN PROC NEAR PUSH DS SUB AX,AXMOV AX,DATAMOV DS,AXMOV CX,4MOV SI,OFFSET BCD_BUFADD SI,3MOV DH,0CHG_OUT1: PUSH CXMOV AL,SI ;取壓縮BCD碼DEC SI ;修改指針MOV BL,AL ;保存ALMOV CL,4ROR AL,CLAND AL,0FH ;取高半字節(jié)BCD碼ADD AL,30H ;生成ASCII碼MOV DL,ALMOV AH,2INT 21H
19、;標(biāo)準(zhǔn)設(shè)備輸出MOV AL,BL ;從BL所保存的AL恢復(fù)ALAND AL,0FH ;取低半字節(jié)BCD碼ADD AL,30H ;生成ASCII碼MOV DL,ALMOV AH,2INT 21H ;標(biāo)準(zhǔn)設(shè)備輸出 POP CX DEC CXJNZ CHG_OUT1RETMAIN ENDPCODE ENDS END (1)對本程序不用執(zhí)行執(zhí)行文件的方式,而分別用DEBUG單步跟蹤、分?jǐn)帱c運(yùn)行等二種方式操作,記錄操作過程與執(zhí)行結(jié)果。(2)總結(jié)從一個字節(jié)16進(jìn)制數(shù)據(jù)獲得其二個16進(jìn)制數(shù)碼的程序設(shè)計方法。二進(jìn)制數(shù)與BCD碼之間的轉(zhuǎn)換6.二進(jìn)制數(shù)轉(zhuǎn)換為壓縮BCD碼將DX寄存器中存放的無符號二進(jìn)制數(shù)(0655
20、35)轉(zhuǎn)換為壓縮BCD碼(在程序中自行加一條語句,將一個數(shù)保存到DX中),保存在BCD_BUF緩沖區(qū)中。應(yīng)用DEBUG跟蹤執(zhí)行程序,查看數(shù)據(jù)區(qū)的內(nèi)容,分析運(yùn)行結(jié)果DATA SEGMENTBCD_BUF DB 3 DUP(0) DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATAMAIN PROC NEAR PUSH DS SUB AX,AXMOV AX,DATAMOV DS,AXMOV DI,OFFSET BCD_BUFMOV AL,0MOV CX,5CLEAR_BUF: MOV DI,AL ;初始化緩沖區(qū)INC DIDEC CXJNZ CLEAR_BUFMOV DI,OFFSET BCD_BUFCHG_BCD1: MOV AX,DX ;轉(zhuǎn)換開始MOV DX,0MOV CX,10DIV CXMOV BL,DLMOV DX,0MOV CX,10DIV CXMOV CL,4SHL DL,
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政管理中的信息透明度試題及答案
- 水利水電工程重點考點試題及答案分享
- DB3711T 159-2024專利與標(biāo)準(zhǔn)融合工作指南企業(yè)層面
- 植樹節(jié)兒童畫教學(xué)課件
- 2024屆云南省重點中學(xué)中考數(shù)學(xué)四模試卷含解析
- 企業(yè)團(tuán)隊羽毛球聯(lián)賽組織計劃
- 醫(yī)院裝修動火作業(yè)安全措施
- 制造業(yè)師徒結(jié)對技術(shù)傳承計劃
- 小學(xué)語文教師信息化教學(xué)發(fā)展計劃
- 建筑行業(yè)不良事件報告及整改流程
- 拓?fù)鋬?yōu)化與異形結(jié)構(gòu)打印-洞察闡釋
- 【綏化】2025年黑龍江綏化市“市委書記進(jìn)校園”事業(yè)單位引進(jìn)人才287人筆試歷年典型考題及考點剖析附帶答案詳解
- 粉筆協(xié)議班電子合同
- 2025年電纜購銷合同范本9篇
- 2025-2030顯微鏡行業(yè)市場深度分析及發(fā)展策略研究報告
- 中學(xué)生學(xué)憲法班會課件
- 張家界2025年張家界市公安局招聘360名警務(wù)輔助人員筆試歷年參考題庫附帶答案詳解
- 深邃的世界:西方繪畫中的科學(xué)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024春期國開電大思政課《中國近現(xiàn)代史綱要》在線形考(專題檢測一至八)試題及答案
- 口腔與健康智慧樹知到答案章節(jié)測試2023年溫州醫(yī)科大學(xué)
- 我們是共產(chǎn)主義接班人歌詞--拼音版本
評論
0/150
提交評論