匯編已整理By大蝸牛_第1頁(yè)
匯編已整理By大蝸牛_第2頁(yè)
匯編已整理By大蝸牛_第3頁(yè)
匯編已整理By大蝸牛_第4頁(yè)
匯編已整理By大蝸牛_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、填空題:  1.循環(huán)程序可由循環(huán)初始化、循環(huán)體、循環(huán)控制三部分組成。  2.當(dāng)標(biāo)志位CF=1時(shí)表示無(wú)符號(hào)數(shù)運(yùn)算產(chǎn)生進(jìn)位,而當(dāng)標(biāo)志位OF=1是表示帶符號(hào)數(shù)運(yùn)算產(chǎn)生溢出。  3.外中斷有兩種類型,分別是可屏蔽中斷和非屏蔽中斷。  4.8086/8088寄存器組可以分為四類,它們分別是數(shù)據(jù)寄存器、指針及變址寄存器、段寄存器、控制寄存器。  5.有指令MOV  CL,N完成將一個(gè)有符號(hào)數(shù)送入CL,要使該指令合法,則N的最大值是+127,最小值是-128。(用十進(jìn)制數(shù)表示)  6.在1M字節(jié)的存儲(chǔ)器中,每個(gè)存儲(chǔ)單元都有一個(gè)唯一的20位

2、地址,稱為該物理單元的物理地址。  7.在DEBUG環(huán)境下,可以對(duì)源程序進(jìn)行匯編、修改和執(zhí)行。  8.定義宏指令的偽指令是MACRO和ENDM   9.CPU要訪問(wèn)的某一存儲(chǔ)單元的實(shí)際地址稱為物理地址 10.8086中通用寄存器中,AX:累加器,BX:基址寄存器,CX:計(jì)數(shù)器,DX:數(shù)據(jù)寄存器,     SP:堆棧指針寄存器,BP:基址指針寄存器,SI:源變址寄存器,DI:目的變址寄存器  11.8086微處理器的功能結(jié)構(gòu)分哪兩大部件。      總線接口單元BIU

3、和執(zhí)行單元EU;BIU負(fù)責(zé)與存儲(chǔ)器接口,EU部分負(fù)責(zé)指令的執(zhí)行。  12.微機(jī)的總線按功能分為哪三大總線。   地址總線AB、數(shù)據(jù)總線DB、控制總線CB    13.8086微機(jī)內(nèi)存是分段管理的,這樣存儲(chǔ)器單元的邏輯地址分為哪兩個(gè)兩部分,計(jì)算為物理地址公式是什么?         邏輯地址分為段基址和偏移量; 物理地址=10H*段基址+偏移量   14.編程的基本結(jié)構(gòu):順序結(jié)構(gòu)   分支結(jié)構(gòu)  循

4、環(huán)結(jié)構(gòu) 15.如JMP指令采用段間間接尋址,那么由四個(gè)相鄰字節(jié)單元中存放有轉(zhuǎn)移地址,其中前兩個(gè)字節(jié)存放的是:IP,而后兩個(gè)字節(jié)存放的是:CS 16.在串操作程序中,通常在重復(fù)前綴指令 REPZ 或 REPNZ 后,選用的串操作指令是_STOS_或_CMP_ 才有實(shí)際意義。17.假設(shè)(SS)=2250H,(SP)=0140H,如果在堆棧中存入 5 個(gè)數(shù)據(jù),則堆棧的物理地址為22636H18.指令 MOV AX,VARBX屬于 寄存器相對(duì) 尋址。 選擇題:  1.匯編語(yǔ)言源程序每個(gè)語(yǔ)句可以由四項(xiàng)組成,如果語(yǔ)句要完成一定功能,那么該語(yǔ)句中不可省略的項(xiàng)是操作項(xiàng)(也稱為助記符)  2

5、.若(SP)=0FFFFH,則指令POP  AX執(zhí)行后,(SP)= 0001H。  3.n位補(bǔ)碼的表數(shù)范圍為:2n-1N2n-1-1。  4.指令MOV  AX,SEG BUF的執(zhí)行,是把BUF所在的段地址送到AX中。  5.已知DS=29A0H,某數(shù)據(jù)的物理地址是2A400H,則當(dāng)DS=6700H時(shí),該數(shù)據(jù)的物理地址是67A00H。  6.要從一個(gè)字符串中找出一個(gè) AL 中指定的字符,可選用SCASB指令實(shí)現(xiàn)。  7.中斷服務(wù)程序入口地址占用4個(gè)字節(jié)。  8.用REPE SCASB指令對(duì)字符串進(jìn)行掃描,

6、如CX>0時(shí),掃描結(jié)束,那么表示在字符串中遇上第一個(gè)了不是AL中指令的字符  9.若AX= - 15要得到AX=15應(yīng)執(zhí)行的指令是NEG  AX 10.8088/8086存儲(chǔ)器分段,每個(gè)段不超過(guò)64KB。 11.指令MOV  AL,42H中,源操作數(shù)42H存放在代碼段中判斷題:1,BX是累加器、DX是計(jì)數(shù)器。×2,假設(shè)存儲(chǔ)器中從7462H單元開(kāi)始的四個(gè)相鄰字節(jié)單元中的內(nèi)容依次是32H,46H,52H,0FEH,則存放字?jǐn)?shù)據(jù)0FE52H的字地址是7465H。 ×3,MOV AX,BP的源操作數(shù)的物理地址為16*(DS)+

7、(BP)。 ×4,MOV指令不影響標(biāo)志位。 5,無(wú)條件轉(zhuǎn)移指令對(duì)標(biāo)志位無(wú)影響,而條件轉(zhuǎn)移指令對(duì)標(biāo)志位有影響。×                        6,指令I(lǐng)N AL,DX是合法的指令。 7,當(dāng)運(yùn)算結(jié)果的低8位中有偶數(shù)個(gè)1 時(shí), 奇偶標(biāo)志位PF被置為1。×     &#

8、160;                   8,匯編語(yǔ)言源程序不一定包含數(shù)據(jù)段、堆棧段,但必須包含代碼段。9,可以將一個(gè)存儲(chǔ)器操作數(shù)與另一個(gè)存儲(chǔ)器操作數(shù)相加。 ×10,在“IN  AL,端口地址”指令中,端口地址指定了某個(gè)外部設(shè)備接口的I/O地址,它實(shí)際上是一個(gè)立即數(shù),其范圍為065535。 ×11,匯編程序和匯編語(yǔ)言源程序是不用的概念。12,相對(duì)于某起始地址的偏移量稱為偏移地址。13

9、,只能使用PUSH,POP類的指令對(duì)堆棧段內(nèi)的內(nèi)容進(jìn)行操作。×14,立即數(shù)尋址方式不能用于目的操作數(shù)字段。15,BP是堆棧棧頂指針寄存器。×16,內(nèi)存中字單元的地址必須是偶數(shù)地址。×17,PUSH AL ×18,在匯編語(yǔ)言源程序中,偽指令語(yǔ)句必須放在數(shù)據(jù)段中。×19,SHR AX,CX ×20,匯編程序就是用匯編語(yǔ)言編寫(xiě)的匯編語(yǔ)言源程序 ×21, 4300:3865H對(duì)應(yīng)的物理地址是7B65H。×22,不能給段寄存器進(jìn)行立即數(shù)方式賦值。23,串操作指令一般用CX存放長(zhǎng)度。24,因?yàn)橛卸渭拇嫫?,所以存?chǔ)器要分段。&#

10、215;25,邏輯右移1位和算術(shù)右移1位的效果是一樣的。×26,在變量定義是,可以通過(guò)使用ORG偽指令指定變量在段中存儲(chǔ)時(shí)的偏移量。27,指令SHR AX,4可以將AX的內(nèi)容邏輯右移4位。×28.CMP AX,BX執(zhí)行的操作時(shí)(AX)-(BX),但結(jié)果不保存,只改變標(biāo)志寄存器中標(biāo)志位的值29,ASCII DW ABCD ×30,MOV SI,SI 31,常量不占用存儲(chǔ)空間。 32,PUSH,POP 指令的操作數(shù)必須是字操作數(shù)。33,存儲(chǔ)器的有效地址不是唯一的。34,指令MOV AL,255是合法的數(shù)據(jù)傳送指令 35,采用LOOP循環(huán)時(shí),必須用CX計(jì)數(shù)。36,SP=

11、1190H,執(zhí)行了PUSH指令后,SP=1192H。 ×37,MOV DS,2000H ×38,指令中目的操作數(shù)一般是不能為立即數(shù)的。 39,IP是指令指針寄存器,可以作為操作數(shù)參加運(yùn)算。×40,CF位可以用來(lái)表示無(wú)符號(hào)數(shù)的溢出。41,指令TEST AL,0執(zhí)行后AL的內(nèi)容一定是全零。×42,ADD SI,BX  ×43,8086/8088標(biāo)志寄存器共有16位,每一位都有含義。×44,在指令中一個(gè)地址代表一個(gè)字節(jié)單元。×45,AND與TEST、SUB與CMP的功能相同。 ×46,符號(hào)定義語(yǔ)句不占內(nèi)存單元,

12、變量定義語(yǔ)句占內(nèi)存單元。 47,10010110與01011011異或的結(jié)果為11001101。 48,指令XCHG BX,ES可以將寄存器BX和ES的內(nèi)容互換。 ×49,偽指令語(yǔ)句與指令語(yǔ)句只是不同的語(yǔ)句種類,沒(méi)有什么本質(zhì)區(qū)別。 ×50,CS,DS,ES和SS段都可以存放數(shù)據(jù)。 51,CBW可以將BL的數(shù)據(jù)擴(kuò)展為BX。 ×簡(jiǎn)答題:  1.變量和標(biāo)號(hào)有什么屬性?     標(biāo)號(hào)和變量擁有2類三種屬性。第1類屬性是地址屬性,其中包含了兩種屬性:即段地址屬性和偏移地址屬性。這類兩種屬性指示出相應(yīng)的變量或者標(biāo)號(hào)對(duì)應(yīng)存儲(chǔ)單元的段地址和

13、偏移地址。第2類是類型屬性。這類屬性表明了變量和標(biāo)號(hào)的類型,對(duì)于變量,其類型可以是字節(jié)變量,或是字變量,或者是雙字變量等等;對(duì)于標(biāo)號(hào),其類型可以是近或者是遠(yuǎn),分別表示段內(nèi)和段間。  2.宏指令與子程序有什么不同之處?     宏指令實(shí)際上就代表了它對(duì)應(yīng)的一組指令。對(duì)程序中出現(xiàn)的宏指令進(jìn)行匯編時(shí),這條宏指令被它對(duì)應(yīng)的一組指令所代替。如果程序中多次使用宏指令,就等于多次重復(fù)拷貝了這個(gè)指令組,占用的內(nèi)存隨之增加。調(diào)用子程序通過(guò)執(zhí)行CALL指令實(shí)現(xiàn),存在“主程序”與“子程序”之間的兩次控制轉(zhuǎn)移。使用宏指令不存在控制轉(zhuǎn)移的過(guò)程。使用子程序和宏指令都可以提高編程效率

14、。子程序占用固定大小的存儲(chǔ)空間,被主程序調(diào)用時(shí),空間不會(huì)隨調(diào)用次數(shù)而增加。但是,宏指令占用存儲(chǔ)空間會(huì)隨著使用次數(shù)的增加而增加。3. 求出以下各十六進(jìn)制數(shù)與十六進(jìn)制數(shù)62A0之和,并根據(jù)結(jié)果設(shè)置標(biāo)志位SF、ZF、CF和OF的值。   (1)4321 (2)9D60  (3) 1234  (4) CFA0 答:   (1)   A5C1H    SF=1 ZF=0 CF=0 OF=1    (2)   0000H   

15、SF=0 ZF=1 CF=1 OF=0    (3)   74D4H    SF=0 ZF=0 CF=0 OF=0    (4)   3240H    SF=0 ZF=0 CF=1 OF=0  4.在80X86系列計(jì)算機(jī)中,I/O設(shè)備有哪些數(shù)據(jù)傳送方式?    有程序直接控制I/O 方式(查詢方式)、中斷方式和DMA方式(直接存儲(chǔ)器存取方式/成組傳送方式)三種。  5. 簡(jiǎn)述CPU的組成部分及各部分的主要作

16、用。    CPU由ALU、控制器和寄存器組成。ALU用來(lái)進(jìn)行算術(shù)邏輯運(yùn)算;控制器負(fù)責(zé)對(duì)全機(jī)的控制工作;寄存器用來(lái)存放計(jì)算過(guò)程中所需要的或所得到的各種信息。  6.指出下列指令源操作數(shù)的尋址方式     MOV AX,ARRAYSI      寄存器相對(duì)尋址     MOV AX,ES:BX        寄存器間接尋址     MOV AX,BX         &

17、#160;  寄存器尋址     MOV AX,BX+DI       基址變址尋址     MOV AX,ARRAY          直接尋址   7.常用DOS功能調(diào)用中,1號(hào) 2號(hào) 9號(hào) A號(hào)功能調(diào)用完成的操作分別是什么?     1號(hào):鍵盤(pán)輸入并回顯     2號(hào):顯示輸出     9號(hào):顯示字符串    &

18、#160;A號(hào):鍵盤(pán)輸入到緩沖區(qū)  8. 請(qǐng)簡(jiǎn)述匯編語(yǔ)言的上機(jī)過(guò)程     1- 用文本編輯軟件編輯源程序,以.asm擴(kuò)展名保存文件     2- 用匯編程序?qū)υ闯绦虮M興匯編得到目標(biāo)程序,擴(kuò)展名為.obj 3- 用鏈接程序?qū)δ繕?biāo)程序進(jìn)行鏈接得到可執(zhí)行程序。擴(kuò)展名為.EXE或.COM。     4- 運(yùn)行調(diào)試  9.匯編程序的功能是什么?     檢查源程序,給出出錯(cuò)信息     產(chǎn)生目標(biāo)文件.obj和列表文件.lst

19、     展開(kāi)宏指令  10.機(jī)器語(yǔ)言的定義:用二進(jìn)制代碼組成的計(jì)算機(jī)能直接識(shí)別的語(yǔ)言。     匯編語(yǔ)言的定義:用機(jī)器指令的助記符以及偽指令,宏指令標(biāo)識(shí)的一種面向機(jī)器的語(yǔ)言,     用該語(yǔ)言編寫(xiě)的,程序需要經(jīng)過(guò)匯編程序的翻譯,成為計(jì)算機(jī)能直接識(shí)別并執(zhí)行的程序。 11常用的DOS功能調(diào)用中,1號(hào)、2號(hào)、9號(hào)、A號(hào)功能調(diào)用完成的操作分別是什么?1號(hào):鍵盤(pán)輸入并回顯;2號(hào):顯示輸出;9號(hào):顯示字符串;A號(hào):鍵盤(pán)輸入到緩沖區(qū) 12. 編程的三種基本結(jié)構(gòu)有哪些?順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu) 13. 某

20、外設(shè)能否得到CPU的中斷服務(wù)取決于什么控制條件?從外設(shè)發(fā)出中斷請(qǐng)求到CPU響應(yīng)中斷,有兩個(gè)控制條件是起決定性作用的:(1) 該外設(shè)的中斷請(qǐng)求是否屏蔽,這個(gè)條件由8259A的中斷屏蔽寄存器控制;(2) CPU是否允許響應(yīng)中斷,這由標(biāo)志寄存器(FLAG)中的中斷允許位IF控制。程序分析: 1.     MOV  AX,DX     NOT  AX     ADD  AX,DX     INC  AX    &#

21、160;試回答:(AX)= 0,(ZF)=1。 2.   BUFDW 0000H LEABX,BUF STC RCRWORDPTRBX,1   (帶進(jìn)位右移,把最低位給CF,CF再給最高位) MOVCL,3    SARWORDPTRBX,CL   問(wèn):該程序段執(zhí)行后,存儲(chǔ)單元BUF的內(nèi)容為?。1000H 3.      DA1   DB  01234      DA2   DB

22、0; 5 DUP(0)            MOV  SI,0            MOV  CX,5      LOP: MOV  AL,DA1SI            ADD

23、60; AL,11H            OR  AL,01H            MOV  DA2SI,AL            INC  SI       &#

24、160;    LOOP  LOP   程序段執(zhí)行后,DA2各字節(jié)中的數(shù)據(jù)。41H,43H,43H,45H,45H 4.           AT   DB 0AH,0BH,0CH,0DH,0EH,0FH,00H        MOV BX,0   LOP:MOV  DL,ATBX     

25、0;   CMP  DL,0            JZ  DONE            ADD  DL,37H         MOV  AH,2       INT  21H 

26、0;       INC  BX          JMP  LOP    DONE:上述程序段執(zhí)行后在屏幕上顯示的內(nèi)容依次是:ABCDEF執(zhí)行后BX=6 5.   MOV  BX,1      XOR  AX,AX=0      MOV  CX,5NEXT:ADD  AX,BX 

27、;     INC  BX        LOOP  NEXT上述程序段執(zhí)行后AX=15H;BX=06H;CX=0 6.下列程序完成的是在3個(gè)數(shù)中找出最小的數(shù)放于AL中,請(qǐng)?jiān)诔绦蛑械目崭裉幪钊胍粭l適當(dāng)?shù)闹噶钍蛊渫暾?#160;                   MOV    AL,X 

28、                         MOV    BL,Y                                MOV    CL,Z 

29、                                  CMP    AL,BL                      &#

30、160;             JLE    NEXT1                                     XCHG   AL,BL      &

31、#160;    NEXT1:      CMP    AL,CL                              JLE    NEXT2          

32、                    XCHG   AL,CL          NEXT2:      RET 7.a、b 是雙精度數(shù),分別存于 X,X2 及 Y,Y2 中,試編寫(xiě)一個(gè)指令序列,完成如下功能:當(dāng) a > b 時(shí)轉(zhuǎn) L1 ,否則轉(zhuǎn) L2     MOV   

33、; AX,X     MOV    DX,X2     CMP    DX,Y2     JG          L1     JL          L2     CMP   

34、AX,Y     JA          L1(無(wú)符號(hào)大于跳轉(zhuǎn))     L2:                L1:     8.測(cè)試AL寄存器的X和Y位,若同時(shí)為0,程序轉(zhuǎn)向某語(yǔ)句標(biāo)號(hào),執(zhí)行AX加(或減)BX;否則將AL清零,同時(shí)清CF和OF標(biāo)志。  &#

35、160;       TEST  AL,XXXX,XXXXB          JZ        (語(yǔ)句標(biāo)號(hào)1)          將AL清零,同時(shí)清CF和OF(可以考慮用SUB或XOR等指令,另外,用MOV指令可行否?)    

36、0;     JMP  語(yǔ)句標(biāo)號(hào)2根據(jù)題意指示確定語(yǔ)句標(biāo)號(hào)1: ADD AX,BX     (SUB   AX,BX)定義一個(gè)語(yǔ)句標(biāo)號(hào)2:     答:         假如 X=0,Y=1     TEST AL,03H     JZ   MY1     X

37、OR AL,AL     JMP  MY2     MY1:ADD AX,BX(或者SUB AX,BX)MY2:9. 已知(AX)=0FF70H,(CF)=1MOV BX,100XOR BH,0FFHSBB AX,BX執(zhí)行上述指令序列后,(AX)=000CH,(CF)=0。10. 有兩個(gè)16位數(shù)1000H和ABCDH分別存放在內(nèi)存10000H和10004H單元中,試用圖表示他們?cè)趦?nèi)存中的存放情況。11.從鍵盤(pán)逐一輸入字符,并從顯示器輸出,當(dāng)輸入到字符$時(shí),則程序退出返回。請(qǐng)?jiān)谙铝谐绦蛑械目崭裉幪钊脒m當(dāng)指令使其完整。NEXT:

38、MOV AH,1INT 21HCMP AL,$JZ EXITMOV DL,ALMOV AH,2INT 21HJMP NEXTEXIT:RET12.分析下面程序,回答指定問(wèn)題:MOV AX,DXNOT AXADD AX,DXINC AX試回答:(AX)= 0(2分),(ZF)= 1(3分)。13.依據(jù)下面程序段:ADD AL,BLJO L1JC L2CMP AH,BHJG L3JB L4JMP L5給定AX、BX值如下,說(shuō)明程序轉(zhuǎn)向。AX BX 轉(zhuǎn)向1 14C8 808DL12 D082 9F70L33 427B 60DC L24 3F23 50D0 L45 0042 FF3DL314.下列程序

39、完成的是將首地址為A的字?jǐn)?shù)組從小到大排序。請(qǐng)?jiān)诔绦蛑械目崭裉幪钊脒m當(dāng)?shù)闹噶钍蛊渫暾?。MOV CX,5DEC CXLOOP1:MOV DI,CXMOV BX,0LOOP2:MOV AX,ABXCMP AX,ABX+2JLE CONTINUEXCHG AX,ABX+2MOV ABX,AXCONTINUE:ADD BX,2LOOP LOOP2MOV CX,DILOOP LOOP115.下列程序結(jié)構(gòu)以過(guò)程的形式表示,請(qǐng)?jiān)诳崭裉幪钊脒m當(dāng)?shù)闹噶睢ODESEGMENTMAINPROCFARASSUME CS:CODE,.START:PUSH DSMOV AX,0PUSH AX處理過(guò)程RETMAINENDP

40、CODEENDSENDSTART16.試編寫(xiě)一個(gè)程序求出雙字長(zhǎng)數(shù)的絕對(duì)值。雙字長(zhǎng)數(shù)在A和A2單元中,結(jié)果存放在B和B2單元中。MOV AX,AMOV DX,A+2TEST DX,8000HJZ STORENOT DXNOT AXADD AX,1ADC DX,0STORE:MOV B,AXMOV B+2,DX17.編寫(xiě)程序段,把字符串STRING中的&用空格代替STRING DB The date is FEB&03LES DI,STRINGMOV CX,18CLDMOV AL,&REPNZ SCACBCMP CX,0JZ NEXTMOV AL,20HSUB DI,1MO

41、V DI,ALNEXT:18.在DA1數(shù)據(jù)區(qū)中有50個(gè)字節(jié)數(shù)據(jù),請(qǐng)編寫(xiě)一段匯編程序段將每個(gè)數(shù)據(jù)的低4位變反,而高4位不變,并依次存入DA2數(shù)據(jù)區(qū)中。MOV CX,50LEA SI,DA1LEA DI,DA2K1:MOV AL,SIXOR AL,00001111BMOV DI,ALINC SIINC DIDEC CXJNE K119.試分析下面的程序段完成什么功能?MOV CL,04SHL DX,CLMOV BL,AHSHL AX,CLSHR BL,CLOR DL,BL把(DX)(AX)中的雙字左移四位(乘以16)。編程題:1.假設(shè)程序中的數(shù)據(jù)定義如下:  BUF1  DB&

42、#160; 100 DUP  ('a')  BUF2  DW  1275H,567,0C5H  BUF3  DB  20 DUP (?)  BUF4  DB  7,4,6,9,8   1)用一條指令將BUF1的偏移地址送入BX.     2)將BUF2的第三字節(jié)數(shù)據(jù)送入CL   3)用一組指令寫(xiě)出BUF2的第二個(gè)數(shù)據(jù)567和BUF4的第三個(gè)數(shù)據(jù)6相加,結(jié)果(和)送入BUF3     

43、; 4)用偽指令寫(xiě)出BUF1和BUF2二者的總長(zhǎng)度(字節(jié)數(shù))        5)將0A6H送入BUF3的第10個(gè)字節(jié)單元中   答:1. LEA BX,BUF1      2. LEA BX,BUF2           MOV BYTE PTR CL,BUF2+2      3.  MOV AL,BUF4+2             

44、      MOV AH,0                    ADD AX,BUF2+2                    MOV BUF3,AX           4.L1_2 EQU BUF3-BUF1          5

45、.MOV BYTE PTR BUF3+9,0A6H  2.將首地址為BUF的數(shù)組中的每個(gè)元素賦值為20H。DATA             SEGMENT       BUF DB 100 DUP(?)DATA             ENDSCODE 

46、60;           SEGMENT       ASSUME CS:CODE,DS:DATASTART:             MOV   AX,DATA           &#

47、160; MOV   DS,AX                MOV   BX,OFFSET BUF              MOV   CX,64H LP:      MOV   BYTE PTRBX ,20H &

48、#160;             INC   BX                      LOOP  LP                

49、60;      MOV   AH,4CH                INT   21HCODE     ENDS            END   START 3.統(tǒng)計(jì)AX中1的個(gè)數(shù)。       XOR 

50、;   DL,DL A:    CMP    AX,0           JZ     BYE             SHL    AX,1            &

51、#160;JNC    B               INC    DL B:    JMP    A BYE:  答:      CODE SEGMENT ASSUME CS:CODE START: MOV AX,7234H MOV BL,0 MOV CX,16 LOOP1:

52、 TEST AX,8000H JZ LOOP2 INC BL LOOP2: SHL AX,1 LOOP LOOP1 MOV DL,BL ADD DL,30H MOV AH,02H INT 21H MOV AH,4CH INT 21H CODE ENDS END START 4.比較AX,BX,CX中帶符號(hào)數(shù)的大小,將最大的數(shù)放在AX中,試編寫(xiě)此程序段。        CMP  AX,BX       JNL  NEXT 

53、60;     XCHG AX,BXNEXT:CMP  AX,CX       JNL  DONE       XCHG AX,CXDONE:.附:        DATA  SEGMENT           X  DB

54、0;       7           Y  DB        9           Z  DB        5     

55、      W  DB        ?        DATA  ENDS     PROGRAM  SEGMENT              ASSUME    CS:PROG

56、RAM,DS:DATA        MAIN  PROC      FAR              PUSH      DS              XO

57、R       AX,AX              PUSH      AX              MOV       AX,DATA  

58、60;           MOV       DS,AX              MOV       DL,X           &#

59、160;  CMP       DL,Y              JAE       COMPAREXZ              MOV      

60、; DL,Y              CMP       DL,Z              JAE       DISP        

61、      MOV       DL,Z              JMP       DISP  COMPAREXZ:              CMP

62、60;      DL,Z              JAE       DISP              MOV       DL,Z  

63、0;    DISP:              ADD       DL,30H              MOV       AH,2    &#

64、160;         INT       21H              RET        MAIN  ENDP     PROGRAM  ENDS   

65、60;          END       MAIN  5. 設(shè)AX、BX、CX中的數(shù)是帶符號(hào)數(shù),下列程序求AX、BX、CX中的最小值,結(jié)果在AX中CMP AX,BXJLE      NEXT  (JLE  ;有符號(hào)小于等于則跳轉(zhuǎn))XCHG     AX,BXNEXT:     

66、;  CMP  CX,AXJGE      EXITXCHG     AX,CXEXIT:附:        DATA  SEGMENT           X  DB        7   

67、0;       Y  DB        9           Z  DB        5           W  DB   

68、60;    ?        DATA  ENDS     PROGRAM  SEGMENT              ASSUME    CS:PROGRAM,DS:DATA        MAIN

69、0; PROC      FAR              PUSH      DS              XOR       AX,AX   &

70、#160;          PUSH      AX              MOV       AX,DATA             

71、; MOV       DS,AX              MOV       DL,X              CMP       DL,Y &

72、#160;            JLE        COMPAREXZ              MOV       DL,Y        &#

73、160;     CMP        DL,Z              JLE         DISP              MOV

74、0;      DL,Z              JMP       DISP  COMPAREXZ:              CMP       DL,Z

75、              JLE       DISP              MOV       DL,Z       DISP:  

76、            ADD       DL,30H              MOV       AH,2          

77、0;   INT       21H              RET        MAIN  ENDP     PROGRAM  ENDS          

78、;    END       MAIN  6.兩字符串比較,相同顯示Match,否則顯示No MatchSTART:MOV  AX,DATAMOV  DS,AXMOV  ES,AXLEA   SI,其中一個(gè)字符串的首地址LEA   DI,另一字符串的首地址CLDMOV  CX,字符串的長(zhǎng)度REPZ  CMPSBJZ  MATCHLEA  DX,“No Match”字符串的首地址

79、JMP  SHORT  DISPMATCH:LEA  DX,“Match”字符串的首地址DISP: MOV  AH,09INT  21H 附:DATA  SEGMENT     STRING1  DB        'MOVE THE CURSOR BACKWARD.'     STRING2  DB   

80、60;    'MOVE THE CURSOR BACKWARD.'       MESS1  DB        'MATCH.',13,10,'$'       MESS2  DB        'NO MATCH!',1

81、3,10,'$'        DATA  ENDS        PROG  SEGMENT              ASSUME    CS:PROG,DS:DATA,ES:DATA      START:&

82、#160; MOV       AX,DATA              MOV       DS,AX              MOV       ES,A

83、X              LEA       SI,STRING1              LEA       DI,STRING2       

84、;       CLD              MOV       CX,25      REPZ1:  CMPSB              JZ 

85、;       MATCH              LEA       DX,MESS2              JMP       SHORT 

86、 DISP      MATCH:  LEA       DX,MESS1       DISP:  MOV       AH,09              INT    

87、60;  21H              MOV       AH,4CH              INT       21H      

88、0; PROG  ENDS              END       START     7.有數(shù)組 x(x1,x2,x10) 和 y(y1,y2,y10),試編寫(xiě)一程序段,計(jì)算 z(z1,z2,z10),其中有: 例如如果:以1表示-以0表示+則邏輯尺則為:0000,0001,1000,1001B即0189Hz2 = x2(或) y2; &#

89、160;         z3 = x3(或) y3;           z4 = x4(或) y4;           z5 = x5(或)y5;            z6 = x6(或)y6;        

90、   z7 = x7(或)y7;            z8 = x8(或) y8;           z9 = x9(或)y9;            z10= x10(或)y10。          解題方法:定義一邏輯尺logic_rule。     

91、   mov   bx, 0        mov   cx, 10        mov   dx, logic_rulenext:    mov   ax, xbx        shr   dx, 1   

92、;     jc    subtract        add   ax, ybx        jmp   short  result    subtract:  sub   ax, ybxresult:   mov   zbx

93、, ax        add   bx, 2        loop  next        附:datarea segment        x   dw x1,x2,x3,x4,x5,x6,x7,x8,x9,x10    

94、    y   dw y1,y2,y3,y4,y5,y6,y7,y8,y9,y10        z   dw z1,z2,z3,z4,z5,z6,z7,z8,z9,z10   logic_rule dw 00dchdatarea endsprognam segment  main proc farassume cs:prognam,ds:datarea  start:push dssub ax,axpush axm

95、ov ax,datareamov ds,axmov bx,0mov cx,10mov dx,logic_rulenext: mov ax,xbxshr dx,1jc subtractadd ax,ybxjmp short resultsubtract:     sub ax,ybxresult:mov zbx,axadd bx,2loop nextmain endp  prognam ends    end start8.計(jì)算S12×33×4N×(N1),直到N×(N1)項(xiàng)剛

96、大于200為止(MUL乘法指令,字節(jié)操作數(shù):AX=AL*SRC根據(jù) INTEL 匯編指令集:            MOV DX,1            MOV BL,2REPEAT:            MOV AL,BL   

97、60;        INC BL            MUL BL            ADD DX,AX            CMP AX,200   

98、0;        JNA REPEAT(JNA:jump if not above,如果不大于等于200,則跳轉(zhuǎn),JB則是小于,缺少等于這層含義) 9.顯示字符串      MOV  DX,OFFSET  字符串的首地址      MOV  AH,09H      INT   21H附:    DATA  SEGMENT        STRING1  DB        'big snail1$'    DATA  ENDS      &#

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論