




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、哈爾濱工程大學微機原理課后題答案第一章1題(1)110=6EH=01101110B (2)1039=40FH =010*B(3)0.75D=0.11B=0.CH (4)0.15625D=0.00101000B=0.28H2題(1)129 (0001 0010 1001)BCD 注:在計算機匯編程序中BCD碼只能用16進制數(shù)表示,形式為129H (2) 5678 (0101 0110 0111 1000) BCD (3) 0.984 (0.1001 1000 0100) BCD(4) 93.745 (1001 0011.011101000101) BCD3題(1) 10101010B=0AAH=
2、170D (2)10000000B=80H=128D(3) 11000011.01B=0C3.4H=195.25 (4) 01111110B=7EH=126D4題(1)8E6H=100011100110B=2278 (2)0A42H=101001000010B=2626(3)7E.C5H=01111110.11000101B=126.769 (4)0F19.1DH=111100011001.00011101B=3865.113285題(1)1011011.101B=91.625D BCD為 (10010001.011000100101) BCD(2)1010110.001B=86.125D B
3、CD為 (10000110.000100100101) BCD6題(0010 0111 0011) BCD 表示的十進制數(shù)為 273 二進制數(shù)為100010001B(1001 0111.0010 0101) BCD 表示的十進制數(shù)為 97.25 二進制數(shù)為01100001.01B7題 (1) (2) (3) (4)1001.11B 1101.01B 1000.011B 1111B + 11.11B - 0110.11B - 1001.101B - 1101B1101.10B 0110.10B 0110.110B 0010B 8題6AH AB1 FH 12ADH 117H+ A6H + 0 E
4、FCH - 01DEH - 0ABH110H B A 1B H 10C F H 06 CH9題(1)無符號數(shù) X=01H =01D Y=0FFH=255(2)符號數(shù) X=01H =01D Y=0FFH= -1注:對于同一個數(shù)到底是符號數(shù)還是無符號數(shù)是由程序設計者根據(jù)數(shù)據(jù)實際的意義決定的,一旦定下來,在程序中采用不同的指令來區(qū)分符號數(shù)和無符號數(shù),即算數(shù)運算指令會有符號數(shù)和無符號兩套指令。10.題(1)101+31H+69H+0D5H+(5*8+7)=531(2)127.8125+189.625+253.9768+502.5390=1079.7734411題A Z ASCII碼 為 41H5AH
5、48454C4C4FHa-z ASCII碼 為 61H-7AH (2) A8 4138H12題(1) E ASCII碼 為45H 01001001B本身為奇數(shù)個1 所以偶校驗D7為1,為0C5H; 奇校驗D7為0,為45H(2) 6 ASCII碼 為36H 00110110B本身為偶數(shù)個1 所以偶校驗D7為0,為36H; 奇校驗D7為1,為0B6H13題-38=10100110B原=11011001B反 = 11011010B補 8位-38=0B原=1B反 = 0B補 16位125=01111101B原=01111101B反 = 01111101B補 8位125=1B原=1B反 = 1B補 1
6、6位-128= 10000000B補 8位 原碼和反碼不能用8位表示-128=0B原=1B反 = 0B補 16位14題+0=00000000B原=00000000B反 = 00000000B補 8位高8位補0 為16位-0=10000000B原=11111111B反 = 00000000B補 8位-0=0B原=1B反 = 0B補 16位15題 (1)X補=81H =111111111原=10000000反真值為-127(2)X補=800H=0B原=1B反 真值為-211(3)X補=79H=01111001B原=01111001B反真值為121 (4)X補=0FFFEH=0原=1反16題(1)
7、X補=1000 0000 0000 0000B 真值為 -8000H=-32768(2) X補=1111 1111 1111 1111B 真值為 -8000H=32768(3) X補=0111 1111 1111 1111B 真值為 7FFFH=32767(4) X補=0101 0101 0101 0101B 真值為 5555H=2184517題原碼反碼補碼(-1) (-127) (-1) (-127) (-1) (-128)8位負數(shù)10000001B-11111111B 11111110B-1000000B 11111111B-1000000B(+1) (+127) (+1) (+127)
8、(+1) (+127)8位正數(shù) 00000001B-01111111B 01111111B-00000000B 00000000B-01111111B+0原=000000000B +0反=00000000B +0補=00000000B-0原=100000000B -0反=11111111B -0補=00000000BN位的通式 (2N-1-1)-+(2N-1-1) (2N-1-1)-+(2N-1-1) (2N-1)-+(2N-1-1)18題(1) 不溢出 結果為15未超出8位補碼的范圍(2) 不溢出 結果為-55未超出8位補碼的范圍(3) 溢出 結果為-132超出8位補碼的范圍(4) 不溢出
9、結果為-125未超出8位補碼的范圍19題(1) 27+11 (2) 37+29 00100111B 00110111B+00010001B +00101001 B00101000B 01100000B+ 00000110B01100110B20題(1)17.5=00010001.1B 規(guī)范化表示 0.100011 25浮點原碼0 0101 0 100011B 反碼和原碼相同(2)-75.5=-01001011.1B 規(guī)范化表示 -0.100101 27(舍掉最低兩位) 原碼0 0111 1 100101 B 補碼0 011 1 1 011011 B 第二章1題 省略2題 總線:計算機系統(tǒng)各部分
10、之間傳遞地址、數(shù)據(jù)和控制信息的共同線路的集合??偩€結構的好處:物理上是同時可以掛多個設備,但是總線上某一個時刻只有一個設備傳送信息。從空間上分為四類(是從PC機角度分類的)片內(nèi)總線,片間總線(主總線,前端總線) , 系統(tǒng)總線(PCI ,ISA等標準總線) ,系統(tǒng)間通訊總線。標準總線好處:總線接口標準統(tǒng)一便于通用。總線傳遞信息分為三大類:數(shù)據(jù)總線,地址總線,控制總線。系統(tǒng)總線等也由是三大總線組成,只是根據(jù)不同的需要經(jīng)過了變換。3題 總線接口單元(BIU) :1)形成訪問內(nèi)存或者I/O端口的物理地址;2)從內(nèi)存的代碼段中取指令送到隊列緩沖器中;3)讀取操作數(shù)參加EU運算或則存放運算結果到指定地址。
11、執(zhí)行單元(EU) 1) 從BIU的指令隊列緩沖器中去指令進行譯碼、執(zhí)行;2) 負責所有的算術,邏輯運算及16位偏移地址計算;3) 像BIU提供指令的執(zhí)行結果和16位偏移地址。二者同步進行操作,相當兩級流水線,提高了效率。4題 省略5題 T1時刻是地址信息,用ALE信號鎖存。注:凡是有ALE信號的CPU的某些管腳都具有分時復用的功能。(如51單片機,AVR單片機等)。T3時刻數(shù)據(jù)信息送出。通過地址鎖存器保持地址信息。數(shù)據(jù)放大器(驅動器),加強總線的帶載能力。6題略7題 7825H+ 5A1FHD244H CF=0; OF=1; ZF=0; PF=1; AF=1; SF=1;7825H-5A1FH
12、1E06H CF=0; OF=0; ZF=0; PF=1; AF=1; SF=0;8 題最大模式:除了8086/8088處理器外還有協(xié)處理器最小模式:系統(tǒng)只有8086/8088處理器9 題訪問存儲器使用到哪些信號: WR RD M/IO ALE AD0-AD15 A16/S3-A19/S6等10題一個指令周期至少包含一個總線周期(即:取指令讀存取器的所花的總線周期),一個總線周期包含4個時鐘周,可會在T3后插入的等待周期。11題 省略12題 主要點為以下三點,有以下原因的前兩點還會引申出來的其他區(qū)別,如執(zhí)行指令的效率。但是二者的程序是完全兼容的。8086 8088外部總線16位 外部總線8位隊
13、列緩沖字節(jié)6個 隊列緩沖字節(jié)4個M/IO IO/M13題 分時復用的信號,在總線周期前面出現(xiàn)的信號只要在后面的時鐘周期還要維持其原來信號穩(wěn)定不變就都要進行鎖存。14題 指令隊列緩沖區(qū)使得CPU可以取指和執(zhí)行指令并行進行。 8086復位后 ,CS=0FFFFH,其他寄存器為0, 復位后程序指針指向了物理地址的FFFF0H的位置,一般在此處都是一條跳轉指令,由此處跳到用戶的自己的監(jiān)控程序的入口處(開始的地方)。此特性具有通用性15題實際地址(物理地址)是20位的,而內(nèi)部數(shù)據(jù)總線是16位的,只能通過段加偏移的辦法段起始地址最低4位為0。16題地址線為N,則尋址存儲單位(字節(jié))多少的關系為: 2N 。
14、也可能為4位, 16位 等 。17題 邏輯地址表示為 段地址:偏移地址 ,是在編程時使用,計算機也是利用他們二者來找到實際地址的。實際地址(物理地址)=段地址*16+偏移地址段地址只是段起始地址(是一個段開始的物理地址,為20位)的高16位。18 題 二者都是1117AH,同一物理地址可以寫成不同邏輯地址的形式,但在實際中一般不會出現(xiàn)。19題代碼段的尋址就是通過 CS*16+IP ,所以指令存放的第一個字節(jié)單元的物理地址A7B00H+2B50H=AA650H20題 100字 200字節(jié) 200=C8H 偏移從2300H開始,21題字節(jié)數(shù)據(jù) 123D4H=78H 123D6H=34H 字數(shù)據(jù) 1
15、23D4H=5678H 123D6H=0E634H 22題 CS=1000H , DS=1100H ,SS=1180H23題 偶地址開始存放的字數(shù)據(jù)為規(guī)則字,奇地址開始存放的字數(shù)據(jù)為非規(guī)則字。第四章41(1)目的操作數(shù):寄存器尋址,源操作數(shù):立即尋址(2)目的操作數(shù):寄存器尋址,源操作數(shù):直接尋址(3)目的操作數(shù):寄存器間接尋址,源操作數(shù):寄存器尋址(4)目的操作數(shù):寄存器尋址,源操作數(shù):相對基址變址尋址(5)目的操作數(shù):寄存器尋址,源操作數(shù):基址變址尋址(6)目的操作數(shù):寄存器尋址,源操作數(shù):寄存器尋址(7)目的操作數(shù):寄存器間接尋址 (SP寄存器指向的內(nèi)存單元),源操作數(shù):寄存器尋址(8)
16、目的操作數(shù):寄存器尋址,源操作數(shù):寄存器尋址(9)目的操作數(shù):寄存器尋址,源操作數(shù):直接端口尋址(10)目的操作數(shù):間接端口尋址(端口的寄存器間接尋址),源操作數(shù):寄存器尋址(11)寄存器尋址(12)目的操作數(shù):相對寄存器尋址42(1)(2)(3)(4)(5)(6)(7)(8)43(1)類型不匹配(寄存器長度不一致)(2)CS不能作目的操作數(shù)(3)IP不能作操作數(shù)(4)立即數(shù)不能作目的操作數(shù)(5)乘數(shù)不能是立即數(shù)(6)兩個存儲器單元間不能用MOV指令直接交換數(shù)據(jù)(7)數(shù)據(jù)類型不確定(字節(jié)還是字操作不清楚)(8)CUP和I/O間數(shù)據(jù)交換,只能用AX(AL)存放數(shù)據(jù)(9)立即數(shù)不能直接賦值給段寄存
17、器(10)循環(huán)次數(shù)大于1放在CL寄存器(11)CX不能作寄存器間接尋址的寄存器(12)立即數(shù)不能做入棧操作44(1)AX=1200H(2)AX=647AH(3)(10050H)=7DH,(10051H)=B7H, ZF=0,SF=1,CF=0,OF=0(4)(12AD0H)=F7H,CF=0,OF=0(5)(12BD0H)=31H,CH=31H(6)BH=C9H,ZF=0,SF=1,CF=1.OF=0(7) (12A80H)=2BH,(12A81H)=89H,CF=145 (1) LEA BX , BUF(或MOV BX ,OFFSET BUF)ADD BX, 8MOV CX , BX(2)
18、MOV BX ,OFFSET BUF(或LEA BX , BUF)MOV CX , BX+8MOV BX ,8MOV CX , BUF BX(3) MOV BX ,OFFSET BUF(或LEA BX , BUF)MOV SI, 8MOV CX , BX+SI46 SP=100EH,AX=2468H,BX=2468H47 (1)MOV AX , 0(2)AND AX , 0(3)XOR AX , AX(4)SUB AX , AX48 AX=0ABCHAX=0ABBHAX=0ABBHCL=0004HAX=ABB0H CL=0004HCL=B0HCL=28HAX=ABB0HAX=ABB0H49 A
19、L=FFH BL不變 CF=0410 AX=3520H411 兩條指令的區(qū)別是指令執(zhí)行后是否保留運算結果,前條指令執(zhí)行后AL的值改變后條指令中的AL的值不變。 SF=1,CF=1,ZF=0,OF=0 4-12 以下程序中的WORD PTR都可以省略,因為變量的屬性就是字。(1)無符號數(shù):MOV AX , AMUL WORD PTR C ; X*YDX,AX ;MOV CX , ZMOV BX , 0 ;直接加0,拓展無符號數(shù)Z的高16位SUB CX , AXSBB BX , DXMOV W , CXMOV W+2 , BX有符號數(shù):MOV AX , AIMUL WORD PTR C ; X*Y
20、DX,AX ;MOV CX , AX ;暫存X*YBX,CX ;MOV BX , DXMOV AX , Z ;16符號數(shù)Z符號位拓展,必須放在AX,拓展完放在DX,AXCWD SUB AX , CXSBB DX , BXMOV W , AXMOV W+2 , DX(2) 無符號數(shù):MOV AX , DADD AX , BMUL WORD PTR ADIV WORD PTR CMOV W , AXMOV W+2 , DX有符號數(shù):MOV AX , DADD AX , BIMUL WORD PTR AIDIV WORD PTR CMOV W , AXMOV W+2 , DX(3)無符號數(shù):MOV
21、AX , DMOV DX , 0DIV WORD PTR AADD AX , BMOV W , AX有符號數(shù):MOV AX , DCWDIDIV WORD PTR AADD AX , BMOV W , AX4-13 用指令TEST CX , 0400H 執(zhí)行指令后,如果ZF=1,則D10 為0,否則不為04-14 指令AND BYTE PTR 1000H , 04-15 同時改變CS和IP 的有段間的跳轉(直接和間接)、段間調(diào)用子程序以及段間中斷服務程序,段內(nèi)只改變IP。4-16. 先行IP為2102H (1)轉移的目標地址IP=2102+0038H=213AH(2) 轉移的目標地址IP=21
22、02+FFD8H=213AH=20DAH4-17. (1)L1 (2)L2 (3)L5 (4)L5 4-18 (1)CMP DX, CX JA L1 (2)CMP BX, AX JG L2 (3)CMP CX, 0JE L3 (4)CMP BX, AX JO L4(5)CMP BX, AX JLE L5(6)CMP DX, CX JBE L64-19 (1) BE ,AE,LE,GE (2) A , AE, L,LE (3)L, LE,G, GE (4) B ,BE,G,GE (5) B ,BE,L,LE (6) A, AE,G, GE 4-20 調(diào)用過程(子程序)時,斷點要入棧,當調(diào)用子程序
23、返回時,按照斷點IP開始執(zhí)行程序。此處為段內(nèi)跳轉,所以只有IP入棧。入棧的不是CALL 指令的IP,而是它后面的指令的IP地址,段內(nèi)短跳轉的CALL 指令為3字節(jié),所以壓棧的斷點IP地址為365BH 第五章第五章參考答案5-1(1) STAD DB 78,-40,0D6H,49H(2)ARRAY DB 45H, 12H,64H,00H,0D2H,04H,0C7H,00H(3)ALPHA DB 12H,0FCH,0E4H,65H(4)BETA DB 4 DUP(8),6 DUP(S),20 DUP( ),10 DUP(1,3)(5)STRING DB THIS IS A EXAMPE(6) TO
24、TAL EQU 780TOTAL= 7805-25-3COUNT 的值為42*2+4 表示變量X2和X3共占用的字節(jié)存儲單元數(shù)5-4注:SA3不占用內(nèi)存5-53000H為字數(shù)據(jù)的偏移地址為0030H5-6(1) MOV BX ,OFFSET BUF1 或 LEA BX, BUF1(2) MOV CL ,BYTE PTR BUF2+3 (3) MOV BUF3+7,0C6H(4)CNT EQU BUF4-BUF2(5)MOV AL,BUF4+3MOV AH,0ADD AX,BUF2+1MOV WORD PTR BUF3,AX5-7(1) 7CH (2)6752H (3)C0H (4)31H (5
25、)04H5-8DA2=0D5B3H CF=05-9第二個AND為偽指令,在匯編時給出值。第一個AND 為指令,可改寫成AND AX,06H5-10DATA SEGMENT BCD1 DB 31H,32H ; 十進制數(shù)1和2的ASCII BCD2 DB ? ;最終的結果應為21HDATA ENDS CODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AL,BCD1SUB AL,30HMOV AH,AL;低4位暫存AHMOV AL,BCD1+1SUB AL,30HMOV CL,4SHL AL,CL ;高4位的左移4位O
26、R AL,AHMOV BCD2,ALMOV AH,4CHINT 21H CODE ENDSEND START 5-11采用左移指令或者用:MOV BX,AX MOV BX,AXSHL BX,1 ;乘2 MOV CL,3MOV DX,AX SHL AX, CL MOV CL,2 SUB AX,BXSHL AX ,CL ;乘4ADD AX,BX ;3倍ADD AX,DX ;7倍5-123228H5-13(1) AL=00 (2)AL=01H (3)AL=FFH5-14編程思路有兩種方法:1.將給出的BCD碼首先轉換成二進制數(shù)(十六進制數(shù)),按二進制的算術運算,將最終結果再轉換為BCD碼。2.按照B
27、CD碼進行運算,其中2*A按壓縮BCD的加法(A+A)。此題用方法2比較簡單DATA SEGMENT BUFF DB 34H ; BCD碼數(shù)據(jù)為十進制34DES DB ? ;最終的結果應為21HDATA ENDS CODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV AL, BUFFCMP AL,20H ; 十進制20HJB ADDSELFCMP AL, 60HJB SUB20HMOV DES, 80HJMP NEXTSUB20H: MOV AL,BUFFSUB AL,20HDASJMP OUTTADDSELF:
28、 MOV AL,BUFF ADD AL,BUFF ;自加代替乘2DAAOUTT: MOV DES,ALNEXT:MOV AH,4CHINT 21H CODE ENDSEND START 5-15DATA SEGMENTBUFER DW 1200H,1200H,1200HFLAG DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE ,DS: DATASTART: MOV AX, DATA MOV DS, AXMOV AX,BUFERCMP AX,BUFER+2 ;判斷1和2是否相等JZ TEST1EQU3 CMP AX,BUFER+4 ;判斷1和3是否相等JZ TWO
29、EQUMOV AX,BUFER+2 CMP AX,BUFER+4JZ TWOEQUMOV FLAG, 0JMP OUTTTEST1EQU3:CMP AX,BUFER+4JZ ALLEQUTWOEQU: MOV FLAG,01H ;兩個數(shù)相等JMP OUTTALLEQU: MOV FLAG,02H ;三個數(shù)相等OUTT: MOV AH, 4CH INT 21HCODE ENDSEND START5-16(1) AX=55H CX=0(2) 5,6,7,8,95-17DATTA SEGMENTDATA DW 5, 7, 1900h, 2300h, 0a0h, 000BH, ,- 1NUM EQU
30、($-BUF)/2MAX DW ?MIN DW ?DATTA ENDSCODE SEGMENTASSUME DS:DATTA, CS:CODESTART: MOV AX, DATTAMOV DS, AXMOV CX, NUM ;序列數(shù)據(jù)個數(shù)MOV SI, 0 MOV DX, DATA ;大數(shù)存于DX中MOV BX, DATA ;小數(shù)存于BX中MOV CX, NUM-1MOV SI, 2LOP: CMP DX, DATASIJL BIG_CHG CMP BX, DATASI JG LITTLE_CHGJMP OUTTBIG_CHG: MOV DX, DATASIJMP OUTTLITTLE_CH
31、G: MOV BX, DATASIOUTT: INC SIINC SILOOP LOPMOV MAX, DXMOV MIN , BXMOV AH, 4CH INT 21HCODE ENDSEND START5-18DATTA SEGMENTNUMBER DB 5, 7, 19h, 23h, 0a0h, 0BH, ,- 1CNT EQU $-BUFPLUS DB CNT DUP(?)DATTA ENDSCODE SEGMENTASSUME DS:DATTA, CS:CODESTART: MOV AX, DATTAMOV DS, AXMOV CX, CNT ;序列數(shù)據(jù)個數(shù)MOV SI, OFFSE
32、T NUMBERLEA DI, PLUS LOP: MOV AL, SICMP AL ,0 JG PUT_PLUSJMP OUTTPUT_PLUS: MOV DI,ALINC DI OUTT: INC SILOOP LOPMOV AH, 4CH INT 21HCODE ENDSEND START5-19DATA SEGMENTMARK DB 98, 23, 90 ,77, 68 ,78 ,84 ,78, 79 ,98COUNT EQU $-MARKA_MARK DB 0 ;90分B_MARK DB 0C_MARK DB 0D_MARK DB 0E_MARK DB 0 ;不及格AVERAGE D
33、B 0DATA ENDSCODE SEGMENTASSUME CS:CODE ,DS: DATASTART: MOV AX, DATA MOV DS, AXMOV CX, COUNTMOV SI, OFFSET MARKXOR AX, AX ;成績和清零LOP: CMP BYTE PTR SI, 60 JAE MARK_60 INC E_MARK ;低于60分JMP OUTTMARK_60: CMP BYTE PTR SI, 70JAE MARK_70INC D_MARK ;低于70分JMP OUTTMARK_70: CMP BYTE PTR SI, 80JAE MARK_80INC C_MA
34、RKJMP OUTTMARK_80: CMP BYTE PTR SI, 90JAE MARK_90INC B_MARKJMP OUTTMARK_90: INC A_MARKOUTT: ADD AL, SI ADC AH, 0INC SILOOP LOPMOV BL, COUNTDIV BL ;求平均值MOV AVERAGE, ALMOV AH, 4CHINT 21HCODE ENDSEND START5-20;1)通過INT21的01H功能輸入一個字符,大小寫的ASCII碼相差20H;2)顯示過程中注意回車換行,或者采用空格,否則后出現(xiàn)在屏幕的字符會覆蓋前面的字符DATA SEGMENTSTR
35、ING DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE ,DS: DATASTART: MOV AX, DATA MOV DS, AXLOP: MOV AH,01HINT 21H ;輸入字符并回顯在屏幕CMP AL,*JZ OUTT ;為結束符退出循環(huán)MOV STRING,AL ;將輸入字符的ASCII碼存入內(nèi)存單元MOV DL ,0DH ;顯示回車字符MOV AH ,02HINT 21HMOV DL ,0AH ;顯示換行字符MOV AH ,02HINT 21HMOV AL ,STRING SUB AL,20H ;輸入字符為小寫,減20H為大寫 MOV DL ,
36、ALMOV AH ,02HINT 21HMOV DL ,0DH ;顯示回車字符 MOV AH ,02HINT 21HMOV DL ,0AH ;顯示換行字符MOV AH ,02H INT 21HJMP LOP ;死循環(huán) OUTT: MOV AH, 4CHINT 21HCODE ENDSEND START5-21DATA SEGMENTPKK DB adgdggdaad#ghg#uiooCNT EQU $-PKK ;題目要求是100個字符,此處自己定義非100,CUT DB ?NUM_OFFSET DW 0 ;存放和PKK的距離,100個字符,實際字節(jié)數(shù)據(jù)就可以表示距離值DATA ENDSCODE
37、 SEGMENTASSUME CS: CODE ,DS: DATASTART: MOV AX, DATA MOV DS, AXMOV CX,CNTMOV CUT,0MOV BX,0 ;采用相對寄存器間接尋址AGAIN: CMP PKKBX ,#JNZ NEXTINC CUTMOV NUM_OFFSET,BX ;和首個字符的距離值NEXT: INC BXLOOP AGAINOUTT: MOV AH, 4CHINT 21HCODE ENDSEND START5-22;程序中沒有考慮大小寫混合的情況,只考慮單一情況;排序采用冒泡法,具體思路參考教材上的191-193頁DATA SEGMENTSTRI
38、NG DB DKSNTEYERTY,0DH,0AH,$; 0DH為回車字符,0AH為換行字符,; $顯示到此結束CNT EQU $-STRING-3 ;去掉最后三個字符 CHAGE_STRING DB CNT DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE ,DS: DATASTART: MOV AX, DATA MOV DS, AXLEA DX,STRINGMOV AH,09H INT 21HMOV DX,CNT-1 LOP: MOV CX,DXMOV SI,0MOV AH,0AGAIN: MOV AL ,STRINGSICMP AL,STRINGSI+1
39、JLE NEXTXCHG AL ,STRINGSI+1XCHG AL,STRINGSIMOV AH,01HNEXT: INC SILOOP AGAINDEC DXOR AH ,AHJNZ LOP LEA DX,STRINGMOV AH,09H INT 21HJMP $ MOV AH, 4CH ;為了長時間顯示,可采用 JMP $ 代替返回DOSINT 21HCODE ENDSEND START5-231)基本功能完成從SOURCE開始的地址100個字節(jié)傳送到DST開始的空間。子程序中采用了串指令(未講),可以不用管。2)子程序的輸入?yún)?shù)是通過堆棧傳遞的,調(diào)用子程序前壓棧三次,占用了6個字節(jié),此
40、處子程序屬于段間調(diào)用,斷點(CS和IP)都要壓棧保護,由CPU完成。3)子程序調(diào)用結束后,沒有出棧,所有會浪費堆棧的6個字節(jié)(在子程序中進行了三次壓棧操作)。修改的方法:調(diào)用子程序結束后將堆棧指針加6,或采用RET 6 返回,或者不采用堆棧傳遞而通過寄存器傳遞輸入?yún)?shù)。5-24;題意不太明確DATA SEGMENTDATA1 DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H, 41H,42H,43H,44H,45H,46H;0-9,A-F的ACII碼DATA2 DB 5 ;待查十六進制個位數(shù)DATA3 DB ? ;查表結果DATA ENDSCODE SEGMENTASSUME CS:CODE ,DS: DATASTART: MOV AX, DATA MOV DS, AX.CALL HEX_ASCIIMOV AH ,4CH INT 21HHEX_ASCII:PUSH AXPUSH BXMOV AL ,DATA2MOV BX,OFFSET DATA1XLATMOV DATA3,ALPOP BXPOP AXRETCODE ENDSEND START5-25;采用INT21的01H功能輸入一個字符,只考慮了0-9(ASCII碼和數(shù)字間相差30H),未考慮A-F(ASCII碼和數(shù)字間相差37
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年螺旋脫氣閥項目投資可行性研究分析報告
- 2025年度新材料研發(fā)股份合作協(xié)議書模板
- 2025年度企業(yè)員工私車公用服務協(xié)議書
- 中藥柜合同范本
- 二零二五年度電子商務營業(yè)執(zhí)照轉讓與平臺運營合同
- 2025年度商業(yè)地產(chǎn)面積補差及租賃條件補充協(xié)議
- 個人砌墻合同范本
- 2025年度學生校車安全乘車服務滿意度調(diào)查與提升合同
- 八年級數(shù)學蘇科版下冊第十二單元《12.2二次根式的乘除》教學設計教案
- 商業(yè)用途用地居間協(xié)議模板
- St完整版本.-Mary's-醫(yī)院睡眠問卷
- 《化妝品穩(wěn)定性試驗規(guī)范》
- 《社區(qū)康復》課件-第四章 腦血管疾病患者的社區(qū)康復實踐
- 生活化教學在小學道德與法治課堂實踐 論文
- 2024年江蘇農(nóng)林職業(yè)技術學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 腰脊神經(jīng)后支痛課件
- 《商務數(shù)據(jù)分析》 課件 項目一 商務數(shù)據(jù)分析認知
- 加強鍛煉預防疾病主題
- 心衰合并胸腔積液的護理Ppt
- 2023學年、2024學年臨平區(qū)公辦學校校方責任險投保采購項目招標文件
- 物流風險管理與應對策略
評論
0/150
提交評論