匯編語言實(shí)驗(yàn)4涉及壓縮BCD碼數(shù)據(jù)的轉(zhuǎn)換程序及DEBUG練習(xí)_第1頁
匯編語言實(shí)驗(yàn)4涉及壓縮BCD碼數(shù)據(jù)的轉(zhuǎn)換程序及DEBUG練習(xí)_第2頁
匯編語言實(shí)驗(yàn)4涉及壓縮BCD碼數(shù)據(jù)的轉(zhuǎn)換程序及DEBUG練習(xí)_第3頁
匯編語言實(shí)驗(yàn)4涉及壓縮BCD碼數(shù)據(jù)的轉(zhuǎn)換程序及DEBUG練習(xí)_第4頁
匯編語言實(shí)驗(yàn)4涉及壓縮BCD碼數(shù)據(jù)的轉(zhuǎn)換程序及DEBUG練習(xí)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、ASCII碼與BCD碼之間的轉(zhuǎn)換1)字符的ASCII碼表示計(jì)算機(jī)中存儲(chǔ)的信息很多,其中一部分是用于數(shù)學(xué)計(jì)算的數(shù)據(jù),另一部分則是表示某種含 義的字符或字符串。由于從鍵盤輸入的或屏幕顯示的信息,都是用字符串的形式表示的。因 此,微機(jī)中必須能夠存儲(chǔ)和處理字符和字符串。計(jì)算機(jī)中使用的字符包括有如下4類:字母:A、B、C、Y、Z、a、b、c、y 和 z。數(shù)字:0、1、2、3、9。專用符號(hào):!、+、一、*、/、控制字符:BEL (響鈴)、LF (換行)、CR (回車)這些字符在計(jì)算機(jī)內(nèi)部都由特定的二進(jìn)制數(shù)表示。目前在微機(jī)中,最常用的字符表示法 是 ASCII 碼(American Standard Cod

2、e for Information Interchange,美國標(biāo)準(zhǔn)信息交換 碼)。在這種表示法中,每一個(gè)字符可以表示為一個(gè)8位的二進(jìn)制數(shù),即一個(gè)字節(jié)。其中。低 7位用于表示該字符的ASCII值,最高位未定義,一般可用作奇偶校驗(yàn)位。常用字符的ASCII碼表見表1.2。2)、十進(jìn)制數(shù)的BCD碼表示BCD碼(Binary Code Decimal),又稱“二進(jìn)制表示的十進(jìn)制數(shù)”,是一種非常適合數(shù)據(jù) 輸出的編碼。一般而言,它可分為如下兩種:、壓縮型BCD碼:它用4位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù)。即采用二進(jìn)制數(shù)0000 1001分別表示十進(jìn)制數(shù)中的09,而另6種組合10101111在BCD中則不允許出現(xiàn);

3、、非壓縮型BCD碼:它用8位二進(jìn)制數(shù),即一個(gè)字節(jié)表示一位十進(jìn)制數(shù)。其高4位 固定為0,而低4位采用二進(jìn)制數(shù)00001001分別表示十進(jìn)制數(shù)中的09。亦即用000000000000 1001分別表示十進(jìn)制數(shù)中的09。而其余組合則不允許出現(xiàn)。表1列出了十進(jìn)制數(shù)與BCD編碼的對(duì)應(yīng)關(guān)系。表1 BCD編碼表BCD編碼十進(jìn)制數(shù)BCD編碼十進(jìn)制數(shù)00000100080001110019001021010這六種001131011情況在010041100BCD碼010151101中不允011061110許出現(xiàn)011171111實(shí)驗(yàn)程序按如下步驟操作,了解DEBUG命令及其使用方法。打DEBUG進(jìn)入DEBUG控制

4、,顯示提示符_ 。 用命令F100 10F A將A的ASCII碼填入內(nèi)存。用命令D100 10F 觀察內(nèi)存中的16進(jìn)制碼及屏幕右邊的ASCII字符。再用命令D100 觀察內(nèi)存情況,之后接用二個(gè)命令D觀察內(nèi)存情況。再用命令D100:10F觀察內(nèi)存區(qū)的情況,說明這次與上次內(nèi)存區(qū)各個(gè)段地址是什么,為什么?口 |x年C:IND0TSsyste*32cd. exe debugAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 4L.4141414141414141-4141414141414141_M- -M- -M- -M- -M- _M- -M- -M- -M- -M-_M -M- -

5、M- -M- -M- -M- -M- -M- _M -M- -M- -M- -M- -M- -M- -M-_M -M- -M- -M- -M- -K- -M- -M- _M -M- -M- -M- -M- -K- -M- -M-14000000 41000000 1E000000 45000000 10000000 4IS 0 14000000 43000000 10000000 4 0 0 0 0 0 1-0000000 -M- _M- _M- _M- _M- _M- _M- 10000000 4IS _M- _M- _M- _M-0 10000000 4* 3 0 -M- 0 0 -M-

6、0_M- _M -M- _M _M- _M0 -M- 0 0 0 0 -M- 0 0 -M- _M- -M- _M _M- _M- _M _M- -M- 0 0 0 0 -M- 0 0 -M- 0 0 0 0 -M- 0 0 _M- _M -M- _M _M- _M0 -M- _M- -M- _M- _M- _M- _M- _M- -M- _M- -M- _M _M- _M- _M _M- _M- _M -M- _M _M- _M0 0 0 0 0 0 0 -M- 0 0 0 0 -M- 0 0 -M- _M- -M- _M- _M- _M- _M- _M- -M- 0 0 0 0 -M- 0

7、 0 _M- _M -M- _M _M- _M0 _M- _M -M- _M _M- _M0 -M- 0 0 0 0 -M- 0 0_M- -M- _u -M- -M- _M- -M- -M- -M- -M-_M- -M- -M- -M- -M0 0 0 0 0_M- -M- -M- -M- -M- _M- -M- -M- -M- -M-_M- -M- -M- -M- -M- _M- -M- -M- -M- -M-_M- -M- -M- -M- -M0 0 0 0 010-0-0-0-0-0-04 0 0 -M- 0 0 -M- 0 1-0000000 4IS _M- _M- _M- _M-0

8、 10000000_M- _M- _M- 10000000 4* 3 0 -M- 0 0 -M- 0 1-0000000 -M- _M- _M- _M- _M- _M- _M- 10000000 4IS _M- _M- _M _M- _M-0 10000000 0 0 -M- 0 0 -M- 0 10000000 4 0 0 -M- 0 0 -M- 0-M- _M- -M- _M _M- _M- _M _M- -M- 0 0 0 0 -M- 0 0 -M- 0 0 0 0 -M- 0 0 _M- _M -M- _M _M- _M0 -M- _M- -M- _M- _M- _M- _M- _M-

9、 -M- _M- -M- _M _M- _M- _M _M- _M- _M -M- _M _M- _M0 -M- 0 0 0 0 -M- 0 0 -M- 0 0 0 0 -M- 0 0 -M- _M- -M- _M- _M- _M- _M- _M- -M- 0 0 0 0 -M- 0 0 _M- _M -M- _M _M- _M0 -M- _M- -M- _M- _M- _M- _M- _M- -M- 0 0 0 0 _M 0 0 -M- _M- -M- _M _M- _M- _M _M- -M- 0 0 0 0 -M- 0 000IS00IS00 _M -M- -M- -M- -M- -M-

10、 -M- -M-_M -M- -M- -M- -M- -M- -M- -M0 0 0 0 0 0 0 0_M -M- -M- -M- -M- -M- -M- -M- _M -M- -M- -M- -M- -M- -M- -M-000000 _M -M- -M- -M- -M- -M- -M- -M-_M -M- -M- -M- -M- -M- -M- -M0 0 0 0 0 0 0 00IS00-K-00IS _M -M- -M- -M- -K- -M- -M- -K-_M -M- -M- -M- -K- -M- -M- -K- 0 0 0 0 0 0 0 0_M -M- -M- -M- -K

11、- -M- -M- -K- _M -M- -M- -M- -K- -M- -M- -K-00000 _M -M- -M- -M- -K- -M- -M- -K-_M -M- -M- -M- -K- -M- -M- -K- 0 0 0 0 0 0 0 0-F100 10F -D 100 10F 146F:0100 -D 100 146F:0100 146F:0110 146F:0120 14GF:0130 146F:0140 146F:0150 14GF:01G0 146F:0170-D14GF:0180146F:0190146F:01A0146F:01B0146F:01C0146F:01D01

12、46F:01E0146F:01F0g C:INDOSsystem32cmd. exe 一 debug_M- -M- -M- -M- -M- _M- -M- -M- -M- -M-_M -M- -M- -M- -M- -M- -M- -M- _M -M- -M- -M- -M- -M- -M- -M-_M -M- -M- -M- -K- -M- -M- -K- _M -M- -M- -M- -K- -M- -M- -K-_M- -M- -M- -M- -M- _M- -M- -M- -M- -M-_M- -M- -M- -M- -M0 0 0 0 0_M- -M- -M- -M- -M- _M-

13、 -M- -M- -M- -M-_M- -M- -M- -M- -M- _M- -M- -M- -M- -M-_M- -M- -M- -M- -M0 0 0 0 0_M- -M- -M- -M- -M- _M- -M- -M- -M- -M-_M- -M- -M- -M- -M- _M- -M- -M- -M- -M-_M- -M- -M- -M- -M0 0 0 0 0_M- -M- -M- -M- -M- _M- -M- -M- -M- -M-_M- -M- -M- -M- -M3 4 5 6 7 11111 0 0 0 0 0FFFFF000000 _M -M- -M- -M- -M-

14、-M- -M- -M-00000 _M -M- -M- -M- -K- -M- -M- -K-_M -M- -M- -M- -M- -M- -M- -M0 0 0 0 0 0 0 0_M -M- -M- -M- -K- -M- -M- -K- 0 0 0 0 0 0 0 0_M -M- -M- -M- -M- -M- -M- -M- _M -M- -M- -M- -M- -M- -M- -M-_M -M- -M- -M- -K- -M- -M- -K- _M -M- -M- -M- -K- -M- -M- -K-_M -M- -M- -M- -M- -M- -M- -M- _M -M- -M-

15、 -M- -M- -M- -M- -M-_M -M- -M- -M- -K- -M- -M- -K- _M -M- -M- -M- -K- -M- -M- -K-_M -M- -M- -M- -M- -M- -M- -M0 0 0 0 0 0 0 0_M -M- -M- -M- -K- -M- -M- -K- 0 0 0 0 0 0 0 0_M -M- -M- -M- -M- -M- -M- -M- _M -M- -M- -M- -M- -M- -M- -M-_M -M- -M- -M- -K- -M- -M- -K- _M -M- -M- -M- -K- -M- -M- -K-_M -M-

16、-M- -M- -M- -M- -M- -M- _M -M- -M- -M- -M- -M- -M- -M-_M -M- -M- -M- -K- -M- -M- -K- _M -M- -M- -M- -K- -M- -M- -K-_M -M- -M- -M- -M- -M- -M- -M0 0 0 0 0 0 0 0_M -M- -M- -M- -K- -M- -M- -K- 0 0 0 0 0 0 0 0_M -M- -M- -M- -M- -M- -M- -M- _M -M- -M- -M- -M- -M- -M- -M-_M -M- -M- -M- -K- -M- -M- -K- _M

17、-M- -M- -M- -K- -M- -M- -K-F _M -M- -M- -M- -M- -M- -M- -M- -M- -M- -M- -M- -M- -M- _u -M- -M- -K- 89ABCDEF10123456780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 _M_ 0 FFFFFFFF100000000(4)用命令F110:11F A重復(fù)上二項(xiàng)實(shí)驗(yàn),設(shè)法用D命令找到并觀察結(jié)果,進(jìn)行比較。00 00 00 00 00-00 00 00 00 3400 5E 1400 00 0000 00 00 00 00-00 00 00 00 00440 0 0 0

18、 0 0 0 0_M _M- -M- _M- _M _M0 -M- _M- _M- -M- _M- _M _M- _M- 0 0 0 0 -M- 0 0 0 0 0 0 0 -M- 0 0 0 -M- _M- _M- -M- _M- _M _M- _M- 0 0 0 0 -M- 0 0 0 -M- _M- _M- -M- _M- _M- _M-0 0_M _M- -M- _M- _M _M0 0 0 0 0 0 0 00 0 0 0 0 0 0 0_M _M- -M- _M- _M _M0 -M- _M- _M- -M- _M- _M _M- _M- 0 0 0 0 -M- 0 0 0 -M-

19、 _M- _M- -M- _M- _M- _M-0 -M- _M- _M- -M- _M- _M _M- _M- 0 0 0 0 -M- 0 0 0 -M- _M- _M- -M- _M- _M- _M-0 0_M _M- -M- _M- _M _M0 0 0 0 0 0 0 04 0 0 IS 0 0 0 30000000 -M- _M- _M- _M- _M- _M _M- _M- 0 0 0 -M- _M- 0 0 0 0 0 0 -M- _M- 0 0 0 -M- _M- _M- _M- _M- _M _M- _M- 0 0 0 _M _M- 0 0 0 -M- _M- _M- _M-

20、 _M- _M- _M- _M- 0_M _M- _M- _M _M0 0 0 0 IS 0 0 00 0 0 IS 0 0 0 0_M _M- _M- _M _M0 -M- _M- _M- _M- _M- _M _M- _M- 0 0 0 -M- _M- 0 0 0 -M- _M- _M- _M- _M- _M- _M- _M- -M- _M- _M- _M- _M- _M _M- _M- 0 0 0 _M _M- 0 0 0 -M- _M- _M- _M- _M- _M- _M- _M- 0_M _M- _M- _M _M0 0 0 0 IS 0 0 00 0 0 0 -M- 0 0 0

21、-M- _M- _M- -M- _M- _M _M- _M- 0 0 0 0 -M- 0 0 0 -M- _M- _M- -M- _M- _M- _M-0 0_M _M- -M- _M- _M _M0 0 0 0 0 -M- 0 0 0dx 0 0 -M- _M- 0 0 0 10000000 E0000000 50000000 0_M _M- _M- _M _M0 0 0 0 -M- -M- 0 0 00 0 0 0 0 0 0 0_M _M- -M- _M- _M _M0 -M- _M- _M- -M- _M- _M _M- _M- 0 0 0 0 -M- 0 0 0 _M _M- -M-

22、 _M- _M- _M- _M- -M0 0 0 -M- 0 0 0 00 0 0 IS 0 0 0 0_M _M- _M- _M _M0 -M- _M- _M- _M- _M- _M _M- _M- 0 0 0 -M- _M- 0 0 0 _M _M- _M- _M- _M- _M- _M- -M0 0 _M _M- 0 0 0 000 00 00146F:0180 RF110:11F HdIIB 11F 146F:0110 -Dill (146F:0110 146F:0120 146F:0130 146F:0140 146F:0150 146F:0160 146F:0170 146F:01

23、80146F:0190D(146F:0190 146F:01A0 146F:01B0 146F:01C0 146F:01D0 146F:01E0 146F:01F0 146F:0200 146F:0210g C:INDO1Ssystem32cad. exe 一 debug146F 146F 146F -D 146F 146F 146F 146F 146F 146F 146F 146F 146F -D 1: 0110 0110 0110 0110 0110 0110 0110 0110 011001F0020002100210 0220 0230 0240 0250 0260 0270 0280

24、 0290 0:11F0110 0120 0130 0140 0150 0160 0170 0180 019000000000000000000000000000000000-0000-000000000000000000000000000000-M- -M- -M- _M -M- -M- -M- -M- _M- -M- _M- _M- 000_M- IS000 -M- -M- -M- _M -M- -M- -M- -M- _M- iS _M Si Si Si iS Si 00_M- IS000044-4-44444 44444444 4444-4444000_M- IS000 -M- _M-

25、 _M- -M- _M- _M- _M- _M- 000_M- IS000 000_M- IS000 -M- -M- _M- _M- _M- 000_M- IS000 -M- _M- _M- -M- _M- _M- _M- _M- -M- -M- _M- _M- _M-M- -M- -M- _M -M- -M- -M- -M- _M- -M-000_M- IS000 _M- _M- _M- -M- _M- _M- _M- _M- -M- iS _M Si Si Si iS 000_M- IS000 -M- -M- _M- _M- -M- iS _M Si Si Si iS _M- _M- _M

26、- -M- _M- _M- _M- _M- -M- -M- _M- _M- 000_M- IS000 _M- _M- _M- -M- _M- _M- _M- _M- 000_M- IS000 000_M- IS000414141414141414141414141414141414141414141414141414141414141414141-41 41-41 41-41 41-4141-41 41-41 41-41 41-414141414141414141414141414141414141414141414141414141414141414141414141414141414141

27、414141414141414141414141414141AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA(5)用命令 E100 30 31 323F將30H-3FH寫入地址為100開始的內(nèi)存單元中,再用D命令觀察結(jié)果,看鍵入的16進(jìn)制數(shù)是什么字符的ASCII碼?444-444-444444444490000000300000008000000030000000of -M- _M- _M

28、- _M- _M- _M- _M- 30000000 Lb_M 0 -M- iS 0 -M30000000 50000000 30000000_M- _M- _M- _M- _M- _M- 31000000 EE000000 35000000 D0000000 300000004444444444444444444-444-44i 1 44llulul444444444444444444444444C400000033000000iH _M-300000004C3 3B000000030000000i 1 44llulul44444444llulul4444444444444444JA -M-

29、 0 -M- _M- 0 _M- _M- 300000001 93 3300000003000000020000000300000001000000030000000 -M- _M- 0 _M- _M- 0 _M-30000000414141414141414144444444(6)用H命令檢查下列各組16進(jìn)制數(shù)加減結(jié)果并和你的手算結(jié)果比較: 34H,22H 56H,78H A5,79H 1284H,5678H A758,347FH 例如:H 34 220123456789:;?A 人-M- -M- -M- -M- -M- -M31000000 3 3 EE000000 -35000000 4

30、-4-D0000000 30000000C4000000 4C 33000000 3 3- PQ _M- _M- _M- _M- _M- _M- _M- 11 30000000 44-M- -M- -M-0000 300000003 B 90000000 3 3 3000 000011 44i i 44Lb-M- -M- -M-0000 3000000050000000300000004 _M- _M-19 30000000 -3000000011 3000000020000000 3000000008 100000003 3 3000000041413000000000000000-E 10

31、0 146F:0100 146F:0108 -D100 146F:0100 146F:0110 146F:0120 146F:0130 146F:0140 146F:0150 146F:0160 146F:01?0 -34H,22H 人 Error-H 34 0056 -H 56 00CE -H A5 011E22 0012 78 FFDE 79 002C-H 1284 5678 68FC BC0C -H A758 347F DBD7 72D9(7)用R命令檢查各寄存器內(nèi)容,特別注意AX,BX,CX,DX,IP及標(biāo)志位中ZF,CF和 AF的內(nèi)容。e C:INDOSsyste32cmd. exe

32、 一 debug46F:0100 3046F:0110 0046F:0120 0046F:0130 0046F:0140 0046F:0150 0046F:0160 0046F:0170 00P34H,22H卜 Erro r一H 34 220056 001256 7800CE FFDE-H A5 79011E 002CPH 1284 567868FC BC0C-H A758 347FDBD7 72D9100130013030000000A 0 0 0 0 0 0 0 30000000 9 0 0 0 0 0 0 0 30000000 _b -M- _M -K- -M- -M- -M- -M30

33、000000 50000000 30000000 400 0000 0 30000000 30000000 30000000 20000000 3000000000-M-031000000EE0000003500000030000000C400000033000000B0000000300000000123456789:;?AM=0000 BK=00001)S=146F ES=146F 146F:0100 3031CX =0000 DX =0000 SP=FFEE SS=146F CS=146F IP=0100XOR EBX+DI,DHBP=0000 SI=0000 DI=0000NU UP

34、El PL NZ NA PO NCDS:0000=CD(8)用R命令將AX,BX內(nèi)容改寫為1050H及23A8H。m C:INDOSsyste32cmd. exe 一 debug34 226 001256 78E FFDEPH A5 79011E 002CPH 1284 567868FC BC0C-H A758 347FDBD7 72D9BK=00001)S=146F ES=146F146F:0100 3031CX =0000 DK =0000 SP=FFEE SS=146F CS=146F IP=0100XOR EBX+DI,DHBP=0000 SI=0000 DI=0000NU UP El

35、 PL NZ NA PO NCDS:0000=CDX00 X08 a 0 5 b 0 A r X1 r X 2 一 e一 B 二-Fpx=1050 BX=23A8PS=146F ES=146F146F:0100 3031CX =0000 DX =0000 SP=FFEE SS=146F CS=146F IP=0100XOR BX+DI,DHBP=0000 S I *000 DI =0000 NU UP El PL NZ NA PO NC DS:23A8=00(9)用A命令在內(nèi)存100H處鍵入下列內(nèi)容:MOV BX, 8275HMOV AX,3412HADD BX,92A5HADC AX,2F6

36、5HADD BX,EAE6HADC AX,9C88H用U命令檢查鍵入的程序并記錄,特別注意左邊的機(jī)器碼。用T命令逐條運(yùn)行這些指令,每運(yùn)行一行檢查并記錄有關(guān)寄存器及IP的變化情況。并 注意標(biāo)志位有無變化。 TOC o 1-5 h z 標(biāo)志位顯示10CFCYNCZFZRNZSFNGPLAFACNAOFOVNVPFPEPODFDNUPIFEIDI(1)對(duì)照書本中關(guān)于debug操作的介紹對(duì)以上實(shí)驗(yàn)內(nèi)容進(jìn)行總結(jié)。-上入 Error A 180 46F:0100 46F:0103 46F:0106 46F:010A 46F:010D 46F:0111 46F:0114 Ll 100 46F:0100 46

37、F:0103 46F:0106 46F:010A 46F:010D 46F:0111 46F:0114 46F:0116 46F:0118 46F:011A 46F:011C 46F:011E 46F:011Fnou nou add adc add adcbx.8275 ax,3412 bx,92fi5 ax,2F65 bx,EAE6 ax,9C88BB7582 B81234 81C3A592 15652F 81C3E6EA 15889C 0000 0000 0000 0000 3400 5E 1400UUDCDCDDDDRPCOODDDDDDDDOODMMAAAAAAAAXPABX.8275

38、 AX,3412 BK,92A5 AX.2F65 BX.EAE6 AX,9C88 BX+SIJ,AL BX+SI.AL BX+SI.AL BX+SIJ,AL AL.00 SI AL,00C: WINDOTSsyst e32cd. exe - debugG命令的功能是什么?有那幾種格式?D命令的功能是什么?有那幾種格式?用P命令逐條運(yùn)行上述指令,與T命令進(jìn)行比較,閱看書本中關(guān)于這二個(gè)命令的說明,它們之間有什么不同,在本實(shí)驗(yàn)中為什么沒有體現(xiàn)?本試驗(yàn)未體現(xiàn)在編譯與連接生成執(zhí)行程序之后利用DEBUG調(diào)試該程序,了解不同變量數(shù)據(jù)存儲(chǔ) 情況,了解變量的三種含義及用法,了解加法、乘法運(yùn)算方法及對(duì)標(biāo)志位的影響

39、。(在某些 句后給出了單步執(zhí)行該句后需要思考與記錄的問題)。DATA SEGMENTA DW 35H,9AC9HDB 34HB DW 4CBEH,8872HDB 34HCDD8A607HDB 34HDDD98AB457HDB 34HEDB-48HDATA ENDSSTACK SEGMENT STACKDB 200 DUP(0)STACK ENDSCODE SEGMENTASSUME DS:DATA,SS:STACK,CS:CODESTART:MOV AX,DATA;數(shù)據(jù)段在那里?怎樣看數(shù)據(jù)段中的內(nèi)容?MOV DS,AX;在執(zhí)行一次單步后查看數(shù)據(jù)區(qū),記錄數(shù)據(jù)是怎樣存放的。;對(duì)以下每句運(yùn)行后分析:

40、這一句的意義是什么?;如果是加法,相加的數(shù)據(jù)是什么?在存儲(chǔ)區(qū)什么位置?;處理的結(jié)果在那里?;對(duì)標(biāo)志位的影響如何?;觀察一下,如果去掉“WORDPTR”編譯時(shí)會(huì)如何?MOV AX,OFFSET A+2;AX中值是多少?意義是什么?LEA AX,A+2; AX中值是多少?意義是什么?MOV AX,A+2ADD AX,B+2 ;多少加多少,結(jié)果在那里?等于多少?有沒有標(biāo)志改變?MOV BX,AADC BX,B ;多少加多少,結(jié)果在那里?等于多少?有沒有標(biāo)志改變?MOV AX,WORD PTR CADD AX,WORD PTR D;多少加多少M(fèi)OV AX,WORD PTR C+2ADC AX,WORD

41、 PTR D+2;多少加多少;對(duì)以下每句分析:數(shù)據(jù)是如何存放的?;相乘結(jié)果在那里?;對(duì)CF與OF的影響如何?特別注意進(jìn)位與符號(hào)擴(kuò)展并不完全對(duì)應(yīng)MOV AL,EMOV BL,-3MUL BL ;多少乘多少,結(jié)果在那里?等于多少?有沒有標(biāo)志改變?為什么?MOV AL,EMOV BL,3MUL BL ;多少乘多少,結(jié)果在那里?等于多少?有沒有標(biāo)志改變?為什么?MOV AL,EMOV BL,-3IMUL BL ;多少乘多少,結(jié)果在那里?等于多少?有沒有標(biāo)志改變?為什么?MOV AL,EMOV BL,-1IMUL BL ;多少乘多少,結(jié)果在那里?等于多少?有沒有標(biāo)志改變?為什么?MOV AL,EMOV

42、BL,3IMUL BL ;多少乘多少,結(jié)果在那里?等于多少?有沒有標(biāo)志改變?為什么?MOV BL,-1MUL BL;-1=ffh,cf=1。為什么?MOV AL,58hMOV BL,-1iMUL BL ;-1,cf=0,高位全1。為什么?MOV AL,90hMOV BL,-1MUL BL;-1=ffh,cf=1。為什么?MOV AL,90hMOV BL,-1IMUL BL ;-1,cf=0,高位全0。為什么?MOV AL,58hMOV BL,1MUL BL ;*1,cf=0,高位全0。為什么?MOV AL,58hMOV BL,1iMUL BL ;*1,cf=0,高位全0。為什么?MOV AL,

43、90hMOV BL,1MUL BL ;*1,cf=0,高位全0。為什么?MOV AL,90hMOV BL,1IMUL BL ;*1,cf=0,高位全1。為什么?MOV AH,4CHINT 21HCODE ENDSEND START(1)乘法運(yùn)算時(shí)使CF與OF為0的情況其實(shí)不多見,你能否總結(jié)一下大致在什么情況下會(huì) 出現(xiàn)它們?yōu)?的情況?(2)如果要看到數(shù)據(jù)中數(shù)據(jù)的存放情況,一種方法是用D段地址偏移地址,另一種方 法是用DDS:偏移地址。你用什么方法得到段地址?試用這二種方法觀察數(shù)據(jù)區(qū)中數(shù)據(jù)存 放情況,A、B、C、D、E的地址各是多少,為什么?3.檢查下面那些指令是錯(cuò)誤的,說明原因并改正。(用MAS

44、M對(duì)該程序進(jìn)行編譯,觀察 那些語句報(bào)錯(cuò),報(bào)的是什么錯(cuò)?再看語句,根據(jù)語法與句法分析實(shí)際是什么錯(cuò),在語句后加 簡單注釋,說明錯(cuò)誤原因,嘗試進(jìn)行修改,要求盡量使修改結(jié)果符合原設(shè)計(jì)意圖。最終要求 全部修改后能通過編譯。)DATA SEGMENTBUFDB 3DA1DB ?C DB B,0DH,0AH,$COUNT EQU $-CDATA ENDSSTACK SEGMENT STACKDB 200 DUP(0)STACK ENDSCODE SEGMENTASSUME DS:DATA,SS:STACK,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV DL,255HINC COU

45、NTMOV CS,DXCMP 280,BLPUSH DXLEA AL,CMOV BX,DA1DXSUBDI,SIADDDX,BXMOV80H,AXMOVDA1,AXADDDI,10HMOVBX,OFFSET DA1MOVSI+DI,BXINC CSMOVES,DSPOPAHROLAX,2MOVBX,DA1DIMOV AH,4CHINT 21HCODE ENDSEND STARTASCII碼與壓縮型BCD碼的相互轉(zhuǎn)換4.十進(jìn)制數(shù)的ASCII碼轉(zhuǎn)換為壓縮型BCD碼令數(shù)據(jù)段中自ASC_BUF開始的緩沖區(qū)內(nèi)存放著若干個(gè)ASCII碼表示的十進(jìn)制數(shù)(每個(gè) 單元存放一位十進(jìn)制數(shù)),要求將這些ASCII碼表示

46、的十進(jìn)制數(shù)轉(zhuǎn)換為BCD碼,并把兩個(gè)相 鄰單元的BCD碼合并在一個(gè)存儲(chǔ)單元(若ASCII碼的個(gè)數(shù)為奇數(shù),則將首地址單元的十進(jìn)制 數(shù)對(duì)應(yīng)的BCD碼單獨(dú)存放一個(gè)單元,其余的按統(tǒng)一的方法處理)。應(yīng)用DEBUG跟蹤執(zhí)行程序, 當(dāng)程序執(zhí)行到語句MOVAH,4CH時(shí),查看數(shù)據(jù)區(qū)的內(nèi)容,分析運(yùn)行結(jié)果。通過執(zhí)行過程深入理解內(nèi)存儲(chǔ)器分段的概念。本程序中因有的位置使用了中文符號(hào),在編譯時(shí)會(huì)報(bào)錯(cuò),觀察是如何報(bào)錯(cuò)的?檢查問 題出現(xiàn)在什么地方,將之改正后重新編譯直到通過。DATASEGMENTASCJBUF DB 71542185COUNT EQU $-ASC_BUFBCDBUF DB 10 DUP(?)DATAENDS

47、CODESEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART:MOV AX,DATAMOV DS,AXMOV SI,OFFSET ASC_BUFMOV DI,OFFSET BCDBUFMOV CX,COUNTMOV BX,CXSHR BX,1;BX右移一位,等效于除2JNC EVEN1;(CF)=0,則 CX 為偶數(shù)MOV BL,SI;對(duì)首位單獨(dú)進(jìn)行處理AND BL,0FHMOV DI,BLDEC CXINC SIINC DIEVEN1:MOV AL,SIAND AL,0FH;清高4位為0MOV BL,SI+1AND BL,0FH;清高4位為0MOV DL,16MUL DLADD AL,BLMOV DI,ALADD SI,2INC DIDEC CXJNZ EVEN1MOV AH,4CHINT 21HCODEENDSEND START(1)畫出本程序程序流程圖。(2)將71542185改為471542185,觀察結(jié)果有何不同,分析程序中判斷數(shù)字個(gè)數(shù)奇偶并“對(duì)首位單獨(dú)進(jìn)行處理”的意義與程序設(shè)計(jì)方法。(3)總結(jié)將二個(gè)十六進(jìn)制字符拼成一個(gè)八位二進(jìn)制數(shù)的程序設(shè)計(jì)方法。5,壓縮BCD碼轉(zhuǎn)換為十進(jìn)制數(shù)的ASCII碼將數(shù)據(jù)段中字節(jié)變量BCDjBUF為首地址的緩沖區(qū)中一個(gè)八位十進(jìn)制數(shù)對(duì)應(yīng)的壓縮BCD碼轉(zhuǎn)換為ASCI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論