版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
匯編語(yǔ)言各章習(xí)題答案習(xí)題一答案:無(wú)符號(hào)數(shù):11010011=211=D3H,01110111=119=77H,10000011=131=83H,00101111=47=2FH,10101010=170=AAH帶符號(hào)數(shù):11010011=-45=D3H,01110111=+119=77H,10000011=-125=83H,00101111=+47=2FH,10101010=-86=AAH5E8AH,0BE6H,3DEH,4940H00011101+00110101=01010010=52H=8201001001+11101000=00110001=31H=4910111110+01010010=00010000=10H=1610011010+11110001=10001011=8BH=-11700101001+01010011=01111100+00000110=10000010=82H=8201110011-00100100=01001111-00000110=01001001=49H=4901100110+00011000=01111110+00000110=10000100=84H=840000000100110010+01110101=0000000110100111+00000110=0000001000000111=0207H=207000020A3H,FF94H,00003456H,007FH,FFFFEC00H無(wú)符號(hào)數(shù):。?65535,OOOOH-FFFFH;帶符號(hào)數(shù):-32768?+32767,8000H?7FFFH⑴38H等于十進(jìn)制數(shù)56,是十進(jìn)制數(shù)56的補(bǔ)碼,數(shù)字8的ASCII碼,十進(jìn)制數(shù)38的壓縮BCD碼(2)FFH等于十進(jìn)制數(shù)是帶符號(hào)數(shù)的補(bǔ)碼,無(wú)符號(hào)數(shù)為2555AH等于十進(jìn)制數(shù)90,是十進(jìn)制數(shù)90的補(bǔ)碼,大寫(xiě)字母Z的ASCII碼0DH等于十進(jìn)制數(shù)13,是十進(jìn)制數(shù)13的補(bǔ)碼,回車(chē)符的ASCII碼1.8(1)108=01101100B=6CH,補(bǔ)碼01101100B,壓縮BCD碼0000000100001000,ASCII碼313038H(2)46=00101110B=2EH,補(bǔ)碼00101110B,壓縮BCD碼01000110,ASCII碼3436H(3)-15=11110001B=FlH,補(bǔ)碼11110001B,ASCII碼2D3135H(4)254=0000000011111110B=00FEH,補(bǔ)碼0000000011111110B,壓縮BCD碼0000001001010100,ASCII碼323534H(1)56+63=011101116,CF=O,SF=O,ZF=O,OF=0(2)83-45=00100110B,CF=O,SF=O,ZF=O,OF=0(3)-74+29=11010011B,CF=O,SF=1,ZF=O,OF=0(4)-92-37=01111111B,CF=1,SF=O,ZF=O,OF=1回車(chē)、換行、響鈴、ESC鍵、空格鍵、@、P、p習(xí)題二答案:最少劃分為16個(gè)邏輯段,最多劃分為65536個(gè)邏輯段(每段16個(gè)字節(jié))CS:IP,DS:BX、SKDI,ES:BX、SI、DI,SS:SP、BP字節(jié)單元保存8位數(shù),字單元保存16位數(shù)。根據(jù)源操作數(shù)的屬性確定要訪問(wèn)的是字節(jié)單元還是字單元。對(duì)于字節(jié)單元來(lái)說(shuō),偶地址和奇地址一樣:對(duì)于字單元而言,最好用偶地址保存,可減少CPU的訪存次數(shù)。首單元的物理地址=38AE8H,末單元的物理地址=38AE8H+7FFFH=40AE7H⑴物理地址=27679H (2)物理地址=20F92H ⑶物理地址=20F92H(2)和⑶的物理地址是一樣的。說(shuō)明邏輯地址不唯一,多個(gè)邏輯地址可對(duì)應(yīng)到同一個(gè)物理單元上。代碼段CS:IP的物理地址=55A84H 堆棧段SS:SP的物理地址=4DB65H數(shù)據(jù)段DS:BX的物理地址=17678H附加段ES:DI的物理地址=2BA41H當(dāng)前棧指針?biāo)竼卧奈锢淼刂肥?522CH。堆棧區(qū)中還能保存254個(gè)字。執(zhí)行E200執(zhí)行U100執(zhí)行RCX,然后輸入100執(zhí)行EDS:0'a''b'2'd'習(xí)題三答案:3.3MOVAX,BXMOVAXz1290HMOVAXJBX]MOVAX,DS:[1290MOVAX,[BP]MOV[DI][BX],AXMOVES:[SI],AX源操作數(shù)為寄存器尋址,EA無(wú),物理地址無(wú)立即尋址,EA無(wú),物理地址無(wú)寄存器間接尋址,EA=1290H,物理地址=2FBB0HH] 直接尋址,EA=1290H,物理地址=2FBB0H寄存器間接尋址,EA=6756H,物理地址=26A56H目的操作數(shù)為基址變址尋址,EA=3C06H,物理地址=32526H寄存器間接尋址,EA=348AH,物理地址=50CAAH3.7MOVAX,[CX]MOVAU1200HMOVALZBXMOV[SI][DI],AXMOVES:[DX],CX錯(cuò)。ex不能為間址寄存器錯(cuò)。立即數(shù)超出8位寄存器范圍錯(cuò)。兩個(gè)操作數(shù)不匹配錯(cuò)。兩個(gè)變址寄存器不能在一起錯(cuò)。DX不能為間址寄存器MOV[AX],VALUEMOVCOUNTISI]錯(cuò)。AX不能為間址寄存器錯(cuò)。兩個(gè)操作數(shù)不能都是存儲(chǔ)單元3.8(1)MOVAX,BX(2)MOVCL,15 (3)ADDAX,[BX](4)MOV[BX+SI]ZAL(5)MOVAXZVALUE[SI](6)SUBAX/DS:[2000H]3.9(1)ADDAXJX+3]MOVYAX(2)MOVBX,3 (3)MOVBX,3ADDAXZX[BX] MOVSIQFFSETXMOVY,AX ADDAX,[BX+SI]MOVYAX立即尋址方式中操作數(shù)(立即數(shù))和指令一起存放在代碼段中。習(xí)題四答案:(1)DATASEGMENTXDWOYDWODATAENDSSTRINGDB'Computer'COUNTDB100DUP(?)PIEQU3.14VALUELABELBYTE(1)對(duì)。(2)錯(cuò)。260超出了字節(jié)范圍。(3)錯(cuò)。X3是字節(jié)型,1234H是字型,不匹配。(4)對(duì)。(5)錯(cuò)。缺少DUP。(6)對(duì)。(1)AL=3o(2)AX=2103Ho(3)DX=TABLE的偏移地址。(4)CL=33H(5)BX=TABLE的段地址。(6)BX=lo(7)DX=TABLE的偏移地址。MOVDXz2012HMOVAX,5D68HMOVCX,1003HMOVBXZ49A6HADDAXZBX(SUBAXZBX)ADCDX,CX(SBBDX,CX)SUBAXZCXSBBDX,0MOVAX,extraMOVES,AX(1)MOVAL16ADDAL,XMOVBL,5IMULBLMOVZ,AXMOVBL,4MOVAL,XIDIVBLSUBALZYMOVZ,AXMOVAL,XMOVBL,8IMULBLMOVDX,AXMOVAH,0MOVAL,YMOVBL,16IDIVBLCBWADDDX,AXMOVAH,0MOVAL,WIMULALSUBDX,AXMOVZ,DXMOVAL,XADDAL,YMOVBL,XSUBBUYMOVAH,0IMULBLMOV乙AXMOVAL,XIDIVYCBWSUBZ,AX4.174.18Z=(5+22-15)*14=168從偽指令ENDSTART處獲知程序從START標(biāo)號(hào)開(kāi)始。4.19(1)減法:(2)加法:4.21MOVAX,8576HMOVBX,9988HSUBAX,BX結(jié)果:AX=EBEEHCF=1,OF=0,ZF=O,SF=1MOVAL,56HMOVBL,34HADDALZBLDAAMOVY1,ALMOVAXJ28HMOVBX,35HSUBAX,BXDASMOVAX,8576HMOVBX,9988HADDAXZBX結(jié)果:AX=1EFEHCF=1,OF=1,ZF=O,SF=OMOVY2,AL(3)MOVAL,68HMOVBL,23HADDALBLMOVBL,45HSUBAL,BLDASMOVY3,AL4.22 (1)MOVAXz0708HMOVBXQ406HADDALZBLADDAH,BH;不用帶進(jìn)位加AAA ;加法調(diào)整,含進(jìn)位調(diào)整MOVBX,AXXCHGAHZAL;高4位調(diào)整AAAMOVBH,ALMOVZ1,BX ;保存十位、各位,百位在CF中MOVAXz0905HMOVBXQ2O7HSUBALZBLSUBAHZBH ;不用帶借位減AAS ;減法調(diào)整MOVZ2,AXMOVAX,O1O2HMOVBXz0006HMULBX ;乘法先不用調(diào)整MOVBXQ3O3HSUBAX,BXAAS ;減法調(diào)整MOVZ3,AXMOVAXz0704HMOVBXQ108HADDALZBLADDAH,BHAAA ;加法調(diào)整MOVBL,6AAD ;除法調(diào)整DIVBLMOVBH,AH涂數(shù)保存在BHANDAX,OOOFHAAA ;商調(diào)整MOVZ4,AX ;保存商編程序。從鍵盤(pán)輸入一個(gè)數(shù)字,去掉ASCII碼后保存到BUFF單元。.modelsmall.databuffdb?.codestart:movaxz@datamovdszaxmovah,l ;鍵盤(pán)輸入int21hsubalz30h ;去掉ASCII碼movbuff,almovah,4chint21hendstart編程序。將鍵盤(pán)輸入的小寫(xiě)字母變?yōu)榇髮?xiě)字母顯示在屏幕上。.modelsmall
.codestart:movah,lint21hsubalz20hmovdl,almovah,2int21hmovah,4ch;鍵盤(pán)輸入;變?yōu)榇髮?xiě)int21hendstartX和Y都是字節(jié)型數(shù)據(jù),編寫(xiě)將兩數(shù)相加的結(jié)果顯示出來(lái)的程序段。.modelsmall.dataxdb12hydb34h.codestart:movax,@datamovdszaxmoval,xaddal,y;結(jié)果為46Hmovah,al ;AH=46Handal,Ofhmovcl,4rolahzclandah,Ofhaddaxz3030hmovbxzaxmovdl,bhmovah,2;AL=06H;AH=64H;AH=04H;AX=3436H;顯示4int21hmovdl,bl ;顯示6int21hmovahz4chint21hendstart4.26編寫(xiě)程序,建立一個(gè)。?9的平方根表,查表可得某數(shù)的平方根。datasegmentxdb'0.000';1.000'/,1.414,,'1.732,;2.000,db,2.23672.44972.64672.82873.000' ;建立字符表ydb5dup(?)udb3dataends;存放查到平方根;要查的數(shù)codesegmentassumecs:codezds:datastart:movax,datamovds,axmoval,u ;要查的數(shù)movcl,5mulcl ;u*5=15(號(hào)單元開(kāi)始)movah,Omovbx,ax ;地址保存到bxmovsi,0letl:movalx[bx] ;取出平方根數(shù)字movy[si],al ;存入yincsiincbxloopletl ;循環(huán)取出5次movah,4chint21hcodeendsendstart編寫(xiě)查表程序。建立一個(gè)班級(jí)姓名表,給出學(xué)號(hào),可顯示出其姓名。.modelsmall.dataxldb'zhangyan$';姓名為10個(gè)字符寬度x2db'lili$'x3db'wangIan$'x4db'zhaoxue$'x5db'lijiang$?udb3;要查的學(xué)號(hào).codestart:movax,@datamovds,axmoval,u;給出學(xué)號(hào)movclz10mulcl;u*10=30(號(hào)單元開(kāi)始)movah,0movdx,ax;地址保存到dxmovah,9;9號(hào)功能顯示字符串int21hmovah,4chint21hendstart編程實(shí)現(xiàn)公式計(jì)算Z=X/4+16Yo.modelsmall.dataxdb4ydb6zdb?.codestart:movax,@datamovdszaxmovalzx;movcl,2saral.cl ;X/4movcl,4movbl,ysalbl,cl ;16Yaddal,bl ;X/4+16Ymovz,almovah,4chint21hendstart編寫(xiě)程序段,將AL中的數(shù)乘以6,與CL相減后再除以3;把商保存到Y(jié)單元,余數(shù)保存到Y(jié)+1單元。.modelsmall.dataydb?,?.codestart:movaxz@datamovds,axmoval,3 ;設(shè)al=3TOC\o"1-5"\h\zmovcl,6mulcl ;al*6movcl,4 ;設(shè)cl=4subal.cl 湘減movbl,3idivbl ;/3movy,al ;商movy+1,ah ;余數(shù)movah,4chint21hendstart習(xí)題五答案:進(jìn)位標(biāo)志CF=1先把AX的值除以8等于0246H,再把高12位屏蔽為0,剩下AL=06H加上30H變?yōu)锳SCII碼顯示出來(lái)。判斷X>0,是,Z=X-Y;否則Z=X的絕對(duì)值(1)目的操作數(shù)是存儲(chǔ)單元時(shí),要用PTR偽操作指出單元的屬性。DS段寄存器使用非法(3)立即數(shù)使用非法。(4)目的操作數(shù)不允許是立即數(shù)(5)兩個(gè)操作數(shù)不允許都是存儲(chǔ)單元(6)移位次數(shù)超過(guò)1要用CL表示。ANDALz11011111B(1)AL=30H(2)AL=B7H(3)AL=C8H(4)AL=38H分支程序設(shè)計(jì)。完成如下公式的計(jì)算,請(qǐng)寫(xiě)出程序。TOC\o"1-5"\h\zr(X+3) /2 X>0Y=<0 X=0IXX4 X<0程序:DATASEGMENTXDB23YDB?DATAENDSCODESEGMENTASSUMECS:CODEZDS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,XCMPALQ正SUB2JGSUB1MOVCL,2SALAL,CLJMPSHORTSUB2SUB1:ADDAL,3SARAL,1SUB2:MOVY,ALMOVAH,4CHINT21HCODEENDSENDSTART5.28設(shè)X、Y、Z為字節(jié)單元。如果X20,Z=4X-Y/16,否則,Z=X的絕對(duì)值。編程序?qū)崿F(xiàn)。程序如下:DATASEGMENTXDB3YDB5ZDB?DATAENDSCODESEGMENTASSUMECS:CODEZDS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,XCMPAL,0JLSS1MOVCL,2SALAL,CLMOVBL,YMOVCL,4SARBL,CLSUBAL,BLJMPOUT1SSI:NEGALOUT1:MOVZ,ALMOVAH,4cHINT21HCODEENDSENDSTART字?jǐn)?shù)組M中有10個(gè)數(shù)據(jù),分類統(tǒng)計(jì)其中正數(shù)、負(fù)數(shù)、0的個(gè)數(shù),分別存入POSLNEGA、ZERO單元。程序如下:DATA1SEGMENTMDW21,-34,32,112,-324,0,76,0,48,50POSIDW?NEGADW?ZERODW?DATA1ENDSCODEISEGMENTASSUMECS:CODE^DSiDATAlSTART:MOVAX,DATA1MOVDS,AXMOVCX,10LEASI,MAGAIN:CMPWORDPTR[SI]ZO兒LOWER正EQUALINCPOSIJMPLPP1LOWER:INCNEGAJMPLPP1EQUAL:INCZEROLPP1:ADDSl,2DECCXJNZAGAINMOVAH^CHINT21HCODEIENDSENDSTART試編寫(xiě)程序,從鍵盤(pán)接收一英文單詞,以空格結(jié)束,將其存入BUF開(kāi)始的存儲(chǔ)單元中,并在最后加上字符串結(jié)束符S。主要程序部分:LEA BX,BUFLOP:MOV AH,1TOC\o"1-5"\h\zINT 21HCMPAL,20HJE NEXTMOV [BX],ALINC BXJMP LOPNEXT:MOV BYTEPTR[BX]/$Z5.31編程。將AX寄存器中的16位數(shù)分成4組,每組4位,從低到高分別放在AL,BL,CL,DL中。程序段:START:MOVAX,1234HMOVBX,AXANDALQFH ;4TOC\o"1-5"\h\zANDBLQFOH ;3ANDAH,0FHMOVCLZAH ;2ANDBHQFOHMOVDL,BH ;1習(xí)題六答案:6.11累加和TOTAL=836.12循環(huán)統(tǒng)計(jì)X中0的個(gè)數(shù)6.13(1)將BB1:RCLAL,1改為BB1:ROLAL,1(2)將BB2:CMP[BX]/rLOOPNEBB2改為:DECBXBB2:INCBXCMP[BX];TLOOPNEBB26.15計(jì)算Y=1X2+3X4+5X6+7X8+9X10的程序段答案:
M0VAL4MOVBLZ2MOVDX,0MOVCX,5AA1:MULBLADDDX,AXINCBLMOVAL,BLINCBLLOOPAA1寫(xiě)程序段。查找CATT表中的字符”@〃,找到后將SIGN單元置1,否則SIGN單元置0。cattdb'asd@ddd'signdb?movaxzextramoveszaxmovsign,0moval,回leadi,cattcldmovex,7repnzscasbjexzneemovsign,lnee:movah,4chint21h寫(xiě)程序段。在長(zhǎng)度為N的字?jǐn)?shù)組VALUE中統(tǒng)計(jì)負(fù)數(shù)的個(gè)數(shù)并保存到AX中。;元素個(gè)數(shù);取出元素;20轉(zhuǎn)letl;為負(fù)數(shù),ax加1valuedw2;元素個(gè)數(shù);取出元素;20轉(zhuǎn)letl;為負(fù)數(shù),ax加1start:movax,datamovds,axmovcx,nmovbx,0movaxzOreptl:movsi,value[bx]empsi,0jgeletlincaxletl:addbx,2loopreptl從鍵盤(pán)輸入一個(gè)數(shù)字,在屏幕上顯示出以該數(shù)字開(kāi)始10個(gè)數(shù)字串。CODESEGMENTASSUMECS:CODESTART: MOVAHJINT21HMOVCX,10MOVBL,ALREPT1:CMPBL,9JLENEXTSUBBL,10NEXT:MOVDL,BLMOVAH,2INT21HINCBLLOOPREPT1MOVAH,4CHINT21HCODEENDSENDSTART6.19編程。比較兩個(gè)字符串是否相同,統(tǒng)計(jì)并顯示出相同的字符個(gè)數(shù)和不同的字符個(gè)數(shù)。datasegmentbunchldb'stadent'bunch2db'studEnt'dataendscodesegmentassumecs:code,ds:data,es:datastart:movax,datamovds,axmoveszaxleasi,bunchlleadi,bunch2movbx,0 ;bh=相同的個(gè)數(shù),bl=不同的個(gè)數(shù)movex,7letl:movaljsi]cmpaUdi] 倆字符比較jzequl ;相同轉(zhuǎn)equlincbl ;不同bl加1jmpoutlequl:incbhoutlinesiincdiloopletlmovdl/n*movah,2h;顯示'n',代表不同int21haddbl,30hmovdlzblint21hmovdl/e'int21h;加上ASCII碼;顯示不同的個(gè)數(shù);顯示,e',代表相同addbh,30hmovdlzbhint21hmovah,4chint21hcodeendsendstart;顯示相同的個(gè)數(shù)6.21STRI單元存有10個(gè)字符的字符串,以0結(jié)尾,編程去掉其中的空格符,并將后續(xù)字符向前遞補(bǔ)。DATASEGMENTSTRDB'SDABFGHO'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADI,STRSPACE:MOVCX,10MOVAL,[DI]CMPAL,0JEOUTCMPAL,20H正DELETEJMPEXITSUBCX,DIMOVSI,DIDELETE:MOVBL,[Sl+l]MOV[SI],BLINCSILOOPDELETEEXIT:JMPSPACEOUT:MOVAH,4CHINT21HCODEENDSENDSTART6.23將內(nèi)存中用ASCII碼表示的100以內(nèi)的十進(jìn)制數(shù)轉(zhuǎn)變?yōu)槎M(jìn)制數(shù)。十進(jìn)制數(shù)不夠3位以20H(空格)補(bǔ)齊。設(shè)計(jì)思路:(1)用EQU偽指令獲得需轉(zhuǎn)換的十進(jìn)制數(shù)的個(gè)數(shù):(2) 用雙重循環(huán)。外循環(huán)控制個(gè)數(shù),用x作為中間變量;(3)內(nèi)循環(huán)將一個(gè)3位十進(jìn)制數(shù)去掉ASCII碼后按位數(shù)擴(kuò)大10倍再相加,保存后即存儲(chǔ)為二進(jìn)制數(shù);(4) 分兩個(gè)數(shù)組保存ASCII碼表示的十進(jìn)制數(shù)和轉(zhuǎn)換后的二進(jìn)制數(shù)。程序如下:;6-23.asm將內(nèi)存中用ASCII碼表示的100以內(nèi)的十進(jìn)制數(shù)轉(zhuǎn)變?yōu)槎M(jìn)制數(shù)datasegmentscoreldb36h,37h,20h,31h,30h,30h,38h,35h,20h,31h,30h,30h;即67,100,85,100xdw?;三位數(shù)nequ3numequ(x-score1)/n;十進(jìn)制數(shù)個(gè)數(shù)score2dwnumdup(0);保存轉(zhuǎn)換后的二進(jìn)制數(shù)dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovex,nummovsi,-2movbx,0reptl:pushex;保存外循環(huán)次數(shù)movex,nrept2:movaI,scorel[bx];從scorel取數(shù)empa1,30h;判斷是否0-9j1exitempa1,39hjgexitandax,OOOfh;去掉ASCI1碼xchgax,xmovdx,10;將2*中前一次形成的數(shù)擴(kuò)大10倍muIdxxchgax,xaddx,ax;相加后保存到Xexit: incbx;取下一位數(shù)Iooprept2popex;彈出外循環(huán)次數(shù)
addsi,2;轉(zhuǎn)換后的數(shù)據(jù)保存到;轉(zhuǎn)換后的數(shù)據(jù)保存到score2movscore2[si],axmovx,0loopreptlmovah,4chint21hcodeendsendstart運(yùn)行結(jié)果:-dds:00645:00000B45:運(yùn)行結(jié)果:-dds:00645:00000B45:001080300030043610300525703064360030003010306710085100..C.d.U.d 可以看到,67轉(zhuǎn)換為0043,100轉(zhuǎn)換為0064,85轉(zhuǎn)換為0055。在DEBUG下顯示的內(nèi)存單元是十六進(jìn)制表示,實(shí)際存儲(chǔ)的是二進(jìn)制數(shù)。習(xí)題七答案:功能:兩個(gè)字節(jié)數(shù)相加。X和BL相加保存到Y(jié)。功能:鍵盤(pán)輸入的字符保存到KEY單元中,直到按回車(chē)為止。功能:將X單元中的十六進(jìn)制3AH變?yōu)槭M(jìn)制入棧保存,AH中為余數(shù)。先將0008H入棧,再將0005H入棧,結(jié)果為58。寫(xiě)出子程序,從鍵盤(pán)輸入一個(gè)多位十進(jìn)制數(shù),并分別保存到BUFFER開(kāi)始的單元中。KEYJNPROCPUSHAXPUSHBXMOVBX,0LET1:MOVAH4INT21HCMPALQDH ;輸入回車(chē)退出JZEXITMOVBUFFER[BX]ZAL ;保存到BUFFERINCBXJMPLET1EXIT:POPBXPOPAXRETKEYJNENDP從鍵盤(pán)輸入多位數(shù)字,轉(zhuǎn)換成十進(jìn)制數(shù)并保存到X單元中。KEYJN_DECPROCPUSHAXPUSHBXMOVX,0MOVBXZO
MOVSI,0LET1:MOVAH,1INT21HCMPAL,ODH;輸入回車(chē)退出JZEXITMOVBUFFER[SI],AL;保存到BUFFERINCSIJMPLET1EXIT:MOVCX,SI;位數(shù)放在exMOVSI,0LET2:MOVAL,BUFFER[SI]SUBALz30HMOVAH,0XCHGAX,X;形成十進(jìn)制數(shù)MOVBXZ1OMULBXXCHGAX,XADDX,AX;保存INCSILOOPLET2POPBXPOPAXRETKEYJN_DECENDP寫(xiě)出對(duì)內(nèi)存單元X中的補(bǔ)碼求真值子程序,補(bǔ)碼保存在AX中。calcuprocpushaxpushbxpushsimovaxz0moval,xandalzaljnszznegalmovfuhao/-*movsi,0movbxz10letl:;將ax變?yōu)槭M(jìn)制數(shù)真值movdxzOincsiidivbxmovy[si]zdxempax,0;統(tǒng)計(jì)余數(shù)個(gè)數(shù);在y單元保存余數(shù)jnzletlpopsipopbxpopaxretcalcuendp7.30編制一個(gè)計(jì)算數(shù)組中所有負(fù)數(shù)之和的子程序。并利用此子程序分別計(jì)算A數(shù)組和B數(shù)組中的負(fù)數(shù)之和,結(jié)果分別放在SUM1和SUM2單元中。DATASEGMENTADB9,-8,-7,6,5BDB-8,7,6,-5,4SUMIDB2SUM2DB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,5MOVSbOFFSETACALLLADDMOVSUMI,BLMOVShOFFSETBCALLLADDMOVSUM2,BLMOVAH,4CHINT21HLADDPROCNEARPUSHCXPUSHAXPUSHSIXORBL,BLNEXT:MOVAL,[SI]ANDAL,ALJNSJJJADDBL,ALJJJ:INCSILOOPNEXTPOPSIPOPAXPOPCXRETLADDENDPCODEENDSENDSTART習(xí)題八答案:宏的作用:DOS功能調(diào)用。功能號(hào)用啞元指出。宏的作用:兩個(gè)操作數(shù)相加,結(jié)果保存在第3個(gè)數(shù)中。宏的作用:DOS的2號(hào)顯示功能。宏的作用:定義VALUE數(shù)組,數(shù)組長(zhǎng)度和初值由啞元指出。缺少標(biāo)號(hào)定義LOCALLETT1。宏的作用:兩個(gè)啞元相減,結(jié)果為負(fù)則求補(bǔ)。程序:.modeIsmaII.stack100h.codestart:input ;鍵盤(pán)輸入adda1,20h ;大寫(xiě)變?yōu)樾?xiě)outputaI ;顯示movah,4chint21hendstart程序:.modeIsmaII,dataaIphadb*Computer,,codestart:displayaIpha ;顯示字串movah,4chint21hendstart程序:.modeIsmaII.stack100h,codestart:input ;鍵盤(pán)輸入cmpaI,jnzstartnegx ;求補(bǔ)movah,4chint21hendstart8.30程序:.modeIsmaII.stack100h.codestart:input ;鍵盤(pán)輸入movbI,aIinput ;輸入第2個(gè)數(shù)addaI,bImovah,0aaa ;非壓縮BCD碼加法調(diào)整addax,3030houtputah ;顯示高位outputaI ;顯示低位movah,4chint21hendstart習(xí)題九答案:在屏幕的rowl、rankl到row2、rank2開(kāi)窗口,清窗口,設(shè)置字符顏色為color。將光標(biāo)設(shè)置在5行10列上?;剀?chē)換行宏。讀取時(shí)鐘計(jì)數(shù)器當(dāng)前計(jì)數(shù)值,ex保存高位,dx保存低位;判斷計(jì)數(shù)是否到91次(5秒),沒(méi)到,繼續(xù)循環(huán)讀取,到5秒后做下面內(nèi)容。930設(shè)置1CH號(hào)中斷的中斷向量(win.time),將其保存到中斷向量表中。編程實(shí)現(xiàn)在窗口中將鍵盤(pán)輸入的小寫(xiě)字母加密后顯示出來(lái)。程序如下:include9-3.mac ;宏庫(kù).modelsmall.dataletterdb'InputLetter:$'contdb?.codestart:movax,@datamovds,axclearsc ;清屏clearsw ;窗口清屏reptt:;置顯示光標(biāo)movah,2movdh,ll ;在11行30列顯示movdl,30movbh,0intlOh;顯示串movah,9movdx,offsetletterint21h;置輸入光標(biāo)movah,2movdh,15 ;在15行30列輸入movdl,30movbh,0intlOh;輸入小寫(xiě)字母movah,lint21haddal,20h ;加密;顯示加密后的字符movdlzalmovah,2int21h;開(kāi)窗口movah,6movalzl ;上卷1行movch,8 ;從8行30列到15行60列movcl,30movdh,15movdl,60movbh,27h ;綠底灰字intlOhinccont ;可輸入3次cmpcont,3jnerepttoutl:movah,4chint21hendstart編寫(xiě)程序,在屏幕上顯示彩色的26個(gè)英文字母。程序如下:.modelsmall.dataletterdb?n='a' ;重復(fù)匯編m=leh ;藍(lán)底黃字開(kāi)始rept26 ;26個(gè)小寫(xiě)字母dbn,mn=n+lm=m+lendm.codestart:movax,@data ;各個(gè)段都在代碼段中movds,ax;開(kāi)窗口movah,06hmovalz0movbh,37h ;白底黑字OfOh,蘭灰底灰白字37h,黃底白字0e7hmovch,3 ;從8行30列到15行60列movcl,3movdh,15movdl.60intlOh;置光標(biāo)locate:movah,2movdh,6 ;光標(biāo)在6行30列mov仇30movbh,0intlOh;顯示彩色的26個(gè)英文字母movbx,offsetletter+1movbp,bxmovbxzsegletter+1moves,bxmovah,13hmoval,3movbh,0movex,26 ;26個(gè)字母intlOhmovah,4chint21hendstart編寫(xiě)程序,在窗口中將鍵盤(pán)輸入的一串字符中的大寫(xiě)字母和小寫(xiě)字母的個(gè)數(shù)分別統(tǒng)計(jì)并顯示出來(lái)。程序如下:;宏庫(kù)include9-4.mac;宏庫(kù).modelsmall.datamessldb'input:$'mess2db29,32dup(?)daxiedb?xiaoxiedb?.codestart:movax,@datamovds,axclearsc;清屏clearsw8,30,15,60,27h;開(kāi)窗口,綠底灰白字cursor12,30;置顯示光標(biāo);顯示提示movah,9movdx.offsetmesslint21h;輸入串moval,0movah,10movdx,offsetmess2int21h;統(tǒng)計(jì)movcx,0movd,mess2+l;輸入的個(gè)數(shù)movbx,2;從第2個(gè)單元存放鍵入的字母letl:moval,mess2[bx]testal,20h;區(qū)分大小寫(xiě)jzIet2;為0,即大寫(xiě)轉(zhuǎn)incxiaoxie;小寫(xiě)加1jmpIet3Iet2:incdaxie;大寫(xiě)加1Iet3:incbxloopletlwindows8,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電氣工程師的工作總結(jié)
- 2025年度商業(yè)寫(xiě)字樓車(chē)位使用權(quán)轉(zhuǎn)讓合同模板
- 二零二五年度大型商場(chǎng)消防工程驗(yàn)收及安全評(píng)估合同3篇
- 二零二五年度個(gè)人消費(fèi)信貸合同模板8篇
- 二零二五年度青少年戶外夏令營(yíng)活動(dòng)參加協(xié)議3篇
- 二零二五版房地產(chǎn)售后服務(wù)居間合同范本
- 二零二五年度個(gè)人房產(chǎn)買(mǎi)賣(mài)合同終止協(xié)議3篇
- 二零二五年度鋼材采購(gòu)與供應(yīng)合同范本
- 二零二五年度深海探測(cè)設(shè)備制造個(gè)人工勞務(wù)分包合同4篇
- 二零二五年度離婚探望權(quán)協(xié)議范本與子女監(jiān)護(hù)權(quán)規(guī)定3篇
- 給排水科學(xué)與工程基礎(chǔ)知識(shí)單選題100道及答案解析
- 2024年土地變更調(diào)查培訓(xùn)
- 2024年全國(guó)外貿(mào)單證員鑒定理論試題庫(kù)(含答案)
- 新版中國(guó)食物成分表
- 《財(cái)務(wù)管理學(xué)(第10版)》課件 第5、6章 長(zhǎng)期籌資方式、資本結(jié)構(gòu)決策
- 房屋永久居住權(quán)合同模板
- 初中英語(yǔ)不規(guī)則動(dòng)詞表(譯林版-中英)
- 2024年3月四川省公務(wù)員考試面試題及參考答案
- 新生兒黃疸早期識(shí)別課件
- 醫(yī)藥營(yíng)銷(xiāo)團(tuán)隊(duì)建設(shè)與管理
- 二年級(jí)數(shù)學(xué)上冊(cè)口算題100道(全冊(cè)完整)
評(píng)論
0/150
提交評(píng)論