資源描述:
《匯編語言32位乘法》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、assumecs:code,ds:datadatasegmentNAdw0F321H,09AFCHNBdw08818H,0301DH;-------第一個(gè)字是等待相乘的數(shù)的高16位,第二個(gè)是低十六位T1dw0,0,0T2dw0,0,0;-------32位數(shù)乘以16位數(shù)不可能大于48位,所以分配3個(gè)字Rdw0,0,0,0;-------32位數(shù)乘以32位數(shù)不可能大于64位,所以為結(jié)果分配4個(gè)字dataendscodesegmentstart:movax,datamovds,ax;-------初始化段寄存器Step1:movax,NA+2
2、movbx,NB+2mulbxmovT1+4,axmovcx,dx;-------NumberA的低16位乘以NumberB的低十六位,結(jié)果存入T1+4;進(jìn)位存入CXmovax,NAmovbx,NB+2mulbxmovT1+2,axaddT1+2,cxadcT1,dx;-------NumberA的高16位乘以NumberB的低十六位,結(jié)果存入T1+4;結(jié)果存入T1+2,將T1+2與上一次相乘的進(jìn)位相加存入T1+2;將第二次相乘的進(jìn)位帶符號相加入T1(前一位的相加可能產(chǎn)生進(jìn)位)Step2:movax,NA+2movbx,NBmulbxmo
3、vT2+4,axmovcx,dx;-------同理movax,NAmovbx,NBmulbxmovT2+2,axaddT2+2,cxadcT2,dx;-------同理SUM:movax,T1+4movR+6,axmovax,T2+4addT1+2,axmovax,T1+2movR+4,axmovax,T2+2adcT1,axmovax,T1movR+2,axmovax,T2adcR,ax;-------錯(cuò)位相加movax,4C00Hint21Hcodeendsendstart原理圖:NANA+2×NBNB+2—————————————
4、—————T1T1+2T1+4+T2T2+2T2+4——————————————————RR+2R+4R+6編寫一個(gè)程序,從鍵盤上連續(xù)輸入多個(gè)字符,遇到“$”時(shí)終止,然后以與輸入相反的順序?qū)⒃撟址源髮懙男问皆谄聊簧巷@示出來要求:用“先進(jìn)后出”的設(shè)計(jì)思路,使用堆棧技術(shù),結(jié)合DOS的中斷調(diào)用,實(shí)現(xiàn)輸入字符串的倒序顯示CODESEGMENT;作業(yè)ASSUMECS:CODE,ds:codeorg100hSTART:pushcspopdscldleadx,msgmovah,9int21h;提示xorcx,cxt0:movah,1int21h;接
5、收數(shù)據(jù)cmpal,'$';'$'結(jié)束程序jzshowcmpal,'a'jby1cmpal,'z'jay1subal,20h;小寫轉(zhuǎn)大寫y1:inccxpushaxjmpt0jcxzquitshow:moval,0dhinccxpushaxmoval,0ahinccxpushax;字符串倒序輸出movcx,cxnext:popdxmovah,2int21hloopnextquit:movah,1int21h;等待MOVAX,4C00HINT21Hmsgdb09,'Inputastring...',0dh,0ah,'$'CODEENDSEND
6、START