freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

匯編語言全書習(xí)題答案(參考版)

2025-04-12 02:34本頁面
  

【正文】 返回目錄《 制作:江家寶第 21 頁 共 93 頁第五章: 循環(huán)與分支程序設(shè)計 試編寫一個匯編語言程序,要求對鍵盤輸入的小寫字母用大寫字母顯示出來。它們在源程序中應(yīng)如何表示?答:表示程序結(jié)束的微操作是指示匯編程序 MASM 結(jié)束匯編的標(biāo)志,在源程序中用 END 表示;結(jié)束程序執(zhí)行的語句是結(jié)束程序運行而返回操作系統(tǒng)的指令,在源程序中有多種表示方法,比如 INT 20H或 MOV AX, 4C00H INT 21H 以及 RET 等。其中 AUGEND、ADDEND 和 SUM 均為雙精度數(shù),AUGEND 賦值為 99251,ADDEND 賦值為 15962。 按下面的要求寫出程序的框架(1) 數(shù)據(jù)段的位置從 0E000H 開始,數(shù)據(jù)段中定義一個 100 字節(jié)的數(shù)組,其類型屬性既是字又是字節(jié);(2) 堆棧段從小段開始,段組名為 STACK;(3) 代碼段中指定段寄存器,指定主程序從 1000H 開始,給有關(guān)段寄存器賦值;《 制作:江家寶第 19 頁 共 93 頁(4) 程序結(jié)束。 指出下列偽操作表達方式的錯誤,并改正之。 對于下面的數(shù)據(jù)定義,三條 MOV 指令分別匯編成什么?( 可用立即數(shù)方式表示)TABLEA DW 10 DUP (?)TABLEB DB 10 DUP (?)TABLEC DB ‘1234’┇MOV AX, LENGTH TABLEA ;匯編成 MOV AX, 000AHMOV BL, LENGTH TABLEB ;匯編成 MOV BL, 000AHMOV CL, LENGTH TABLEC ;匯編成 MOV CL, 0001H答:見注釋。然后,寫出完整的代碼段,其功能為:把 DATA_LIST 中頭 5 個數(shù)中的最大值和最小值分別存入 MAX 和 MIN 單元中。(3) 用一條偽操作使 CODE_LENGTH 的值等于 CODE_LIST 域的實際長度。 假設(shè)程序中的數(shù)據(jù)定義如下:LNAME DB 30 DUP (?)ADDRESS DB 30 DUP (?)CITY DB 15 DUP (?)CODE_LIST DB 1, 7, 8, 3, 2(1) 用一條 MOV 指令將 LNAME 的偏移地址放入 AX。答:DATASG SEGMENTFLD1B DB ‘personal puter’FLD2B DB 32FLD3B DB 20HFLD4B DB 01011001BFLD5B DB ‘32654’FLD6B DB 10 DUP (0)FLD7B DB ‘PART1’, 20DB ‘PART2’, 50DB ‘PART3’, 14FLD1W DW 0FFF0HFLD2W DW 01011001BFLD3W DW FLD7BFLD4W DW 5, 6, 7, 8, 9FLD5W DW 5 DUP (0)FLD6W DW FLD1WFLD1BDATASG ENDS 假設(shè)程序中的數(shù)據(jù)定義如下:PARTNO DW ?PNAME DB 16 DUP (?)COUNT DD ?PLENTH EQU $PARTNO問 PLENTH 的值為多少?它表示什么意義?答:PLENTH=22=16H,它表示變量 PARTNO、PNAME 、COUNT 總共占用的存儲單元數(shù)(字節(jié)數(shù)) 。答:DW 5150HDB 50H, 51HDB ‘PQ’DW ‘QP’ORG 5150HDW $ 請設(shè)置一個數(shù)據(jù)段 DATASG,其中定義以下字符變量或數(shù)據(jù)變量。(1) BYTE_VAR DB ‘BYTE’,12,12H,3 DUP(0,?,2 DUP(1,2),?)(2) WORD_VAR DW 5 DUP(0,1,2),?,5,‘BY’,‘TE’,256H答:答案如上一頁圖所示。 假設(shè) VAR1 和 VAR2 為字變量,LAB 為標(biāo)號,試指出下列指令的錯誤之處:(1) ADD VAR1, VAR2 ;不能都是存儲器操作數(shù)(2) SUB AL, VAR1 ;數(shù)據(jù)類型不匹配(3) JMP LAB [SI] ;LAB 是標(biāo)號而不是變量名,后面不能加[SI](4) JNZ VAR1 ;VAR1 是變量而不是標(biāo)號(5) JMP NEAR LAB ;應(yīng)使用 NEAR PTR答:見注釋。 下面哪些指令是非法的?(假設(shè) OP1,OP2 是已經(jīng)用 DB 定義的變量)(1) CMP 15, BX ;錯,立即數(shù)不能作為目的操作數(shù)(2) CMP OP1, 25(3) CMP OP1, OP2 ;錯,不能都是存儲器操作數(shù)(4) CMP AX, OP1 ;錯,類型不匹配,應(yīng)為 CMP ax, word ptr op1答:見注釋。答:JMP BEGINUP DB 0DOWN DB 0TABLE DB 100H DUP (?)BEGIN:MOV CX,100HMOV BX,1MOV SI,0MOV DI,0L1:INC BXCMP TABLE[BX],42HJA L2JB L3JMP L4L2:INC SIJMP L4L3:INC DIL4:LOOP L1MOV UP,SIMOV DOWN,DI 請用圖表示 ENTER 16,0 所生成的堆棧幀的情況。答:JMP DI 是轉(zhuǎn)移到以(DI)內(nèi)容為偏移地址的單元去執(zhí)行指令;JMP [DI]是轉(zhuǎn)移到以(DI)間接尋址的內(nèi)存單元內(nèi)容為偏移地址的單元去執(zhí)行指令。答:(BX) ←(DX)*100H 試編寫一程序段,要求把 BL 中的數(shù)除以 CL 中的數(shù),并把其商乘以 2,最后的結(jié)果存入 DX 寄存器中。 請編寫一程序段,要求把 ECX、EDX 和 ESI 的內(nèi)容相加,其和存入 EDI 寄存器中(不考慮溢出)。 請給出下列指令序列執(zhí)行完后 AX 和 DX 的內(nèi)容。 請給出下列指令序列執(zhí)行完后 EAX 和 EBX 的內(nèi)容。 請給出下列各指令序列執(zhí)行完后目的寄存器的內(nèi)容。 請給出下列各指令序列執(zhí)行完后目的寄存器的內(nèi)容。答:每次調(diào)用及返回時的堆棧狀態(tài)圖如下所示: 假設(shè)(EAX)=00001000H,(EBX)=00002022H,(DS)=0010H,試問下列指令訪問內(nèi)存的物理地址是什么?(1) MOV ECX,[EAX+EBX] ;(2) MOV [EAX+2*EBX],CL;(3) MOV DH,[EBX+4*EAX+1000H]答:(1) PA=(DS)*10H+EA=00100H+00001000H+00002022H=00003100H(2) PA=(DS)*10H+EA=00100H+00001000H+2*00002022H=00005100H0004原 SP 位置新 SP 位置(1) MAIN 調(diào)用 SUBA 過程000A0004原 SP 位置新 SP 位置(2) SUBA 調(diào)用 SUBB 過程000100B2000A00原 SP 位置新 SP 位置(3) SUBB 調(diào)用 SUBC 過程000100B2000A00原 SP 位置新 SP 位置(4) 從 SUBC返回 SUBB0001000C000A0004原 SP 位置新 SP 位置(5) SUBB 調(diào)用 SUBD 過程0001000C000A0004原 SP 位置新 SP 位置(6) 從 SUBD返回 SUBB0001000C000A0004原 SP 位置新 SP 位置(7) 從 SUBB返回 SUBA0001000C000A0004 原 SP 位置新 SP 位置(8) 從 SUBA返回 MAIN0001000C00060010原 SP 位置新 SP 位置(9) 從 MAIN調(diào)用 SUBC《 制作:江家寶第 14 頁 共 93 頁(3) PA=(DS)*10H+EA=00100H+00002022H+4*00001000H+1000H=00007100H 假設(shè)(EAX)=9823F456H, (ECX)=1F23491H,(BX)=348CH,(SI)=2022H,(DI)=4044H 。試畫出流程圖,并編制相應(yīng)的程序段。如果 AX 和 BX 的內(nèi)容給定如下:《 制作:江家寶第 12 頁 共 93 頁AX BX(1) 1F52H 1F52H(2) 88C9H 88C9H(3) FF82H 007EH (4) 58BAH 020EHAX BX(5) FFC5H FF8BH(6) 09A0H 1E97H(7) 8AEAH FC29H(8) D367H 32A6H問以上 8 條轉(zhuǎn)移指令中的哪幾條將引起轉(zhuǎn)移到 L1?答:(1) JNB、JBE、JNL、JLE(2) JNB、JBE、JNL、JLE(3) JNB、JNBE、JL、JLE(4) JNB、JNBE、JNL、JNLE(5) JNB、JNBE、JL、JLE(6) JB、JBE、JL、JLE(7) JB、JBE、JNL、JNLE(8) JNB、JNBE、JL、JLE 假設(shè) X 和 X+2 單元的內(nèi)容為雙精度數(shù) p,Y 和 Y+2 單元的內(nèi)容為雙精度數(shù) q,(X 和 Y 為低位字)試說明下列程序段做什么工作?MOV DX, X+2MOV AX, XADD AX, XADC DX, X+2CMP DX, Y+2JL L2JG L1CMP AX, YJBE L2L1:MOV AX, 1JMP SHORT EXITL2: MOV AX, 2EXIT:INT 20H答:此程序段判斷 p*2>q,則使(AX)=1 后退出;p*2≤q ,則使(AX)=2 后退出。(6) 若 DX 的內(nèi)容低于等于 CX 的內(nèi)容,則轉(zhuǎn) EQ_SMA。(4) BX 與 AX 的內(nèi)容相比較是否產(chǎn)生溢出?若溢出則轉(zhuǎn) OVERFLOW。(2) 若 BX 的內(nèi)容大于 AX 的內(nèi)容,則轉(zhuǎn)去執(zhí)行 EXCEED。答:公共的程序段如下:MOV DI, DSMOV ES, DI(1) MOV CX, 132MOV AL., ‘ ’;空格的 ASCII 碼送 AL 寄存器CLDLEA DI, PRINT_LINEREP STOSB(2) MOV CX, 9MOV AL., ‘’CLD《 制作:江家寶第 11 頁 共 93 頁LEA DI, STUDENT_ ADDRREPNE SCASBJNE NO_DASHDEC DINO_DASH: ┇(3) MOV CX, 9MOV AL., ‘’STDLEA DI, STUDENT_ ADDRADD DI, 91REPNE SCASBJNE NO_DASHINC DINO_DASH: ┇(4) MOV CX, 30MOV AL, ‘ ’ ;空格送 AL 寄存器CLDLEA DI, STUDENT_NAMEREPE SCASBJNE NEXTMOV CX, 30MOV AL, ‘*’ ;“*”送 AL 寄存器LEA DI, STUDENT_NAMEREP STOSBNEXT: ┇(5) MOV CX, 30CLDLEA SI, STUDENT_NAMELEA DI, PRINT_LINEREP MOVSBMOV CX, 9STDLEA SI, STUDENT_ADDR+91LEA DI, PRINT_LINE+1321REP MOVSB 編寫一程序段:比較兩個 5 字節(jié)的字符串 OLDS 和 NEWS,如果 OLDS 字符串不同于 NEWS 字符串則執(zhí)行 NEW_LESS;否則順序執(zhí)行程序。(4) 如果 STUDENT_NAME 域中全是空格符時,填入‘*’。(2) 在 STUDENT_ADDR 中查找第一個‘’ 。 39。39。 DATA_1 DW 1, 2, 3, 4, 5, 6, 7, 8DATAS ENDS答:程序段如下:MOV CX, DATA_1-STRING ;計算STRING的字節(jié)數(shù)MOV AL,39。! amp。Septemberamp。DATAS SEGMENT STRING DB ‘Todayamp。答:(1) MOV CX, 20CLDMOV SI, SEG CONAMEMOV DS, SIMOV ES, SILEA SI, CONAMELEA DI, PRLINEREP MOVSB(2) MOV CX, 20
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1