




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、1第第4章章 匯編語言程序設計匯編語言程序設計4.1請分別用DB 、DW 、DD偽指令寫出在DATA開始的連續(xù)8個單元中依次存放數(shù)據(jù)11H 、22H 、33H 、44H 、55H 、66H 、77H 、88H的數(shù)據(jù)定義語句. 解:DB,DW,DD偽指令分別表示定義的數(shù)據(jù)為字節(jié)類型、字類型及雙字型.其定義形式為: DATA DB 11H,22H,33H,44H,55H,66H,77H,88H DATA DW 2211H,4433H,6655H,8877H DATA DD 44332211H,88776655H4.2若程序的數(shù)據(jù)段定義如下,寫出各指令語句獨立執(zhí)行后的結果:DSEG SEGMENTD
2、ATA1 DB 10H,20H,30HDATA2 DW 10 DUP(?)STRING DB 123DSEG ENDS(1) MOV AL,DATA1(2) MOV BX,OFFSET DATA2(3) LEA SI,STRINGADD DI,SI解:取變量DATA1的值. 指令執(zhí)行后,(AL)=10H.變量DATA2的偏移地址. 指令執(zhí)行后,(BX)=0003H.2(3)先取變量STRING的偏移地址送寄存器SI,之后送SI的內(nèi)容與DI的內(nèi)容相加并將結果送DI.指令執(zhí)行后,(SI)=0017H;(DI)=(DI)+0017H.4.3 試編寫求兩個無符號雙子長數(shù)之和的程序. 兩數(shù)分別在MEM1
3、和MEM2單元中,和放在SUM單元.解:DSEG SEGMENTMEM1 DW 1122H,3344HMEM2 DW 5566H,7788HSUM DW 2 DUP(?)DSEG ENDSCSEG SEGMENT ASSUME CS:CSEG,DS:DSEGSTART: MOV AX,DSEG MOV DS,AX LEA BX,MEM1 LEA SI,MEM2LEA DI,SUMMOV CL,2CLCAGAIN: MOV AX,BX3ADC AX,SIMOV DI,AXADD BX,2ADD SI,2ADD DI,2LOOP AGAINHLTCSEG ENDSEND START4.4試編寫程序
4、,測試AL寄存器的第4位(bit4)是否為0?解: 測試寄存器AL中某一位是否為0,可使用TEST指令、AND指令、移位指令等幾種方法實現(xiàn)。如:TEST AL,10H JZ NEXT.NEXT:或者: MOV CL,4 SHL AL,CL JNC NEXT.NEXT:44.5 試編寫程序,將BUFFER中的一個8位二進制數(shù)轉換為ASCII碼,并按位數(shù)高低順序存放在ANSWER開始的內(nèi)存單元中。解:DSEG SEGMENTBUFFER DB ?ANSWER DB 3 DUP(?)DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART:MOVAX,DSEG
5、MOV DS,AXMOV CX,3;最多不超過3為十進制數(shù)(255)LEA DI, ANSWER;DI指向結果存放單元XOR AX,AXMOV AL,BUFFER;取要轉換的二進制數(shù)MOV BL,0AH;基數(shù)10AGAIN:DIV BL;用除10取余的方法轉換ADD AH,30H;十進制數(shù)轉換成ASCII碼MOV DI, AH;保存當前的結果INC DI;指向下一個位保存單元5AND AL,AL ;商為0?(轉換結束?)JZ STO;若結束,退出MOV AH,0LOOP AGAIN;否則循環(huán)繼續(xù)STO:MOV AX,4C00HINT 21H;返回DOSCSEGENDSEND START4.6
6、假設數(shù)據(jù)項定義如下:DATA1 DB HELLO!GOOD MORNING!DATA2 DB 20 DUP(?)用串操作指令編寫程序段,使其分別完成以下功能:(1)從左到右將DATA1中的字符串傳送到DATA2中。(2)傳送完后,比較DATA1和DATA2中的內(nèi)容是否相同。(3)把DATA1中的第3和第4個字節(jié)裝入AX。(4)將AX的內(nèi)容存入DATA2+5開始的字節(jié)單元中。解:(1)MOV AX,SEG DATA1MOV DS,AXMOV AX,SEG DATA26MOV ES,AXLEA SI,DATA1LEA DI,DATA2MOV CX,20CLDREP MOVSB(2)LEA SI,D
7、ATA1LEA DI,DATA2MOV CX,20CLD REPE CMPSB。(3)LEA SI,DATA1ADD SI,2LODSW(4)LEA DI,DATA2 ADD DI,5 STOSW74.7執(zhí)行下列指令后,AX寄存器的內(nèi)容是多少?TABLE DW 10,20,30,40,50ENTRY DW 3.MOV BX,OFFSET TABLEADD BX,ENTRYMOV AX,BX解:(AX)=1E00H4.8 編寫程序段,將STRING1中的最后20個字符移到STRING2中(順序不變)。解:首先確定STRING1中字符串的長度,因為字符串的定義要求以$符號結尾,可通過檢測$符確定出
8、字符串的長度,設串長度為COUNT,則程序如下:LEA SI,STRING1LEA DI,STRING2ADD SI,COUNT-20MOV CX,20CLDREP MOVSB84.9 假設一個48位數(shù)存放在DX:AX:BX中,試編寫程序段,將該48位數(shù)乘以2.解: 可使用移位指令來實現(xiàn)。首先將BX內(nèi)容邏輯左移一位,其最高位移入進位位CF,之后AX內(nèi)容帶進位位循環(huán)左移,使AX的最高位移入CF,而原CF中的內(nèi)容(即BX的最高位)移入AX的最低位,最后再將DX內(nèi)容帶進位位循環(huán)左移一位,從而實現(xiàn)AX的最低位移入DX的最低位。SHL BX,1RCL AX,1RCL DX,14.10 試編寫程序,比較A
9、X,BX,CX中帶符號數(shù)的大小,并將最大的數(shù)放在AX中。解:比較帶符號數(shù)的大小可使用符號數(shù)比較指令JG等。CMP AX,BXJG NEXT1XCHG AX,BXNEXT1:CMP AX,CXJG STOMOV AX,CX STO:HLT4.11 若接口03F8H的第1位(b1)和第3位(B3)同時為1,表示接口03FBH有準備好的8位數(shù)據(jù),當CPU將數(shù)據(jù)取走后,b1和b3就不再同時為1了。僅當又有數(shù)據(jù)準備好時才再同時為1。試編寫程序,從上述接口讀入200字節(jié)的數(shù)據(jù),并順序放在DATA開始的地址中。9解:即當從輸入接口03F8H讀入的數(shù)據(jù)滿足11B時可以從接口03FBH輸入數(shù)據(jù)。LEA SI,D
10、ATAMOV CX,200NEXT: MOV DX,03F8HWAIT: IN AL,DXAND AL,0AH;判斷b1和b3位是否同時為1CMP AL,0AHJNZ WAIT;b1和b3位同時為1則讀數(shù)據(jù),否則等待MOV DX,03FBHIN AL,DXMOV SI,ALINC SILOOP NEXTHLT4.12 畫圖說明下列語句分配的存儲空間及初始化的數(shù)據(jù)值。(1)DATA1 DB BYTE,12,12H,2 DUP(0,?,3)(2)DATA2 DW 4 DUP(0,1,2),?,-5,256H解: (1) 存儲空間分配情況如圖(a)所示。 (2) 存儲空間分配情況如圖(b)所示。1003H?00H03H?00H12H0
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 創(chuàng)業(yè)合伙人分紅合同范本
- 農(nóng)村燃氣安裝合同范本
- 企業(yè)常用合同范本庫
- 別墅精裝修包工合同范本
- 勞動合同范本(社保)
- 勞動保密合同范例
- 北辰區(qū)勞務派遣合同范本
- 農(nóng)村鄰里土地糾紛合同范本
- 加工定做設備合同范本
- 勞動咨詢合同范本
- 《中國古代文學史及作品選II》教學大綱
- 代工生產(chǎn)合同范本
- 瑜伽課程合同轉讓協(xié)議書范本
- 個人經(jīng)營性貸款合同模板
- 人教版英語2025七年級下冊 Unit1Animal Friends教師版 語法講解+練習
- DeepSeek新手入門教程
- 課件:《教育強國建設規(guī)劃綱要(2024-2035年)》學習宣講
- 2025年山東化工職業(yè)學院高職單招職業(yè)適應性測試近5年??及鎱⒖碱}庫含答案解析
- 2025年全國幼兒園教師資格證考試教育理論知識押題試題庫及答案(共九套)
- 2024年鄭州電力高等??茖W校高職單招職業(yè)適應性測試歷年參考題庫含答案解析
- 產(chǎn)品試產(chǎn)流程
評論
0/150
提交評論