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

正文內(nèi)容

ibm—pc匯編語言程序設計習題參考答案-wenkub.com

2025-04-04 05:54 本頁面
   

【正文】 答:程序段如下:BEGIN: MOV AH, 1 ;從鍵盤輸入一個字符的DOS調(diào)用INT 21HCMP AL, ‘a(chǎn)’ ;輸入字符‘a(chǎn)’嗎?JB STOPCMP AL, ‘z’ ;輸入字符‘z’嗎?JA STOPDEC AL ;得到前導字符MOV DL, AL ;準備顯示三個字符MOV CX, 3DISPLAY: MOV AH, 2 ;顯示一個字符的DOS調(diào)用INT 21HINC DLLOOP DISPLAYSTOP: RET 將AX寄存器中的16位數(shù)分成4組,每組4位,然后把這四組數(shù)分別放在AL、BL、CL和DL中。它們在源程序中應如何表示?答:表示程序結束的微操作是指示匯編程序MASM結束匯編的標志,在源程序中用END表示;結束程序執(zhí)行的語句是結束程序運行而返回操作系統(tǒng)的指令,在源程序中有多種表示方法,比如INT 20H或MOV AX, 4C00H INT 21H以及RET等。 按下面的要求寫出程序的框架(1) 數(shù)據(jù)段的位置從0E000H開始,數(shù)據(jù)段中定義一個100字節(jié)的數(shù)組,其類型屬性既是字又是字節(jié);(2) 堆棧段從小段開始,段組名為STACK;(3) 代碼段中指定段寄存器,指定主程序從1000H開始,給有關段寄存器賦值;(4) 程序結束。 對于下面的數(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答:見注釋。(3) 用一條偽操作使CODE_LENGTH的值等于CODE_LIST域的實際長度。答: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ù)據(jù)定義如下:PARTNO DW ?PNAME DB 16 DUP (?)COUNT DD ?PLENTH EQU $PARTNO問PLENTH的值為多少?它表示什么意義?答:PLENTH=22=16H,它表示變量PARTNO、PNAME、COUNT總共占用的存儲單元數(shù)(字節(jié)數(shù))。(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答:答案如下圖所示。 下面哪些指令是非法的?(假設OP1,OP2是已經(jīng)用DB定義的變量)(1) CMP 15, BX ;錯,立即數(shù)不能作為目的操作數(shù)(2) CMP OP1, 25(3) CMP OP1, OP2 ;錯,不能都是存儲器操作數(shù)(4) CMP AX, OP1 ;錯,類型不匹配,應為CMP ax, word ptr op1答:見注釋。 試編寫一程序段,要求在長度為100H字節(jié)的數(shù)組中,找出大于42H的無符號數(shù)的個數(shù)并存入字節(jié)單元UP中;找出小于42H的無符號數(shù)的個數(shù)并存入字節(jié)單元DOWN中。答:MOV EDI,0 也可為: MOV EDI,ECXADD EDI,ECX ADD EDI,EDXADD EDI,EDX ADD EDI,ESIADD EDI,ESI 請說明IMUL BX,DX,100H指令的操作。MOV ECX,307 F455HBSF EAX,ECX ;(EAX)= 0DBSR EBX,ECX ;(EBX)= 25D答:見注釋。(1) MOV EAX,299FF94HADD EAX,34FFFFH ;(EAX)= 2CEFF93H(2) MOV EBX,40000000SUB EBX,1500000 ;(EBX)= 3EB00000H(3) MOV EAX,39393834HAND EAX,0F0F0F0FH ;(EAX)= 09090804H(4) MOV EDX,9FE35DHXOR EDX,0F0F0F0H ;(EDX)= 6F13ADH答:見注釋。全為0嗎?二位為1嗎?僅一位為1執(zhí)行ROUTINE_3轉去執(zhí)行ROUTINE_4NNYY程序開始(AL)←(STATUS)只保留第1,3,5位轉去執(zhí)行ROUTINE_2全為1嗎?NY轉去執(zhí)行ROUTINE_1執(zhí)行EXIT程序結束答:程序段如下:MOV AL, STATUSAND AL, 00010101B ;只保留第5位JZ ROUTINE_4 ;3位全為0轉ROUTINE_4JPE ROUTINE_2 ;兩位為1轉ROUTINE_2CMP AL, 00010101BJZ ROUTINE_1 ;3位全為1轉ROUTINE_1ROUTINE_3: ┇ ;僅一位為1執(zhí)行ROUTINE_3JMP EXITROUTINE_1: ┇JMP EXITROUTINE_2: ┇JMP EXITROUTINE_4: ┇EXIT: INT 20H 在下列程序的括號中分別填入如下指令:(1) LOOP L20(2) LOOPE L20(3) LOOPNE L20試說明在三種情況下,當程序執(zhí)行完后,AX、BX、CX、DX四個寄存器的內(nèi)容分別是什么?TITLE CODESG SEGMENTASSUME CS:CODESG, DS: CODSEG, SS: CODSEGORG 100HBEGIN: MOV AX, 01MOV BX, 02MOV DX, 03MOV CX, 04L20: INC AXADD BX, AXSHR DX, 1( )RETCODESG ENDSEND BEGIN答:(1) (AX)=5H,(BX)=10H,(CX)=0H,(DX)=0H(2) (AX)=2H,(BX)=4H,(CX)=3H,(DX)=1H(3) (AX)=3H,(BX)=7H,(CX)=2H,(DX)=0H 考慮以下的調(diào)用序列:(1) MAIN調(diào)用NEAR的SUBA過程(返回的偏移地址為0400);(2) SUBA調(diào)用NEAR的SUBB過程(返回的偏移地址為0A00);(3) SUBB調(diào)用FAR的SUBC過程(返回的段地址為B200,返回的偏移地址為0100);(4) 從SUBC返回SUBB;(5) SUBB調(diào)用NEAR的SUBD過程(返回的偏移地址為0C00);(6) 從SUBD返回SUBB;(7) 從SUBB返回SUBA;(8) 從SUBA返回MAIN;(9) 從MAIN調(diào)用SUBC(返回的段地址為1000,返回的偏移地址為0600);請畫出每次調(diào)用及返回時的堆棧狀態(tài)。答:(1) CMP DX, CXJA EXCEED(2) CMP BX, AXJG EXCEED(3) JCXZ ZERO(4) CMP BX, AXJO OVERFLOW(5) CMP BX, AXJLE EQ_SMA(6) CMP DX, CXJBE EQ_SMA 試分析下列程序段:ADD AX, BXJNO L1JNC L2SUB AX, BXJNC L3JNO L4JMP SHORT L5如果AX和BX的內(nèi)容給定如下:AX BX(1) 147BH 80DCH(2) B568H 42C8H(3) 42C8H 608DH (4) D023H 9FD0H(5) 94B7H B568H問該程序分別在上面5種情況下執(zhí)行后,程序轉向哪里?答:(1) 轉向L1(2) 轉向L1(3) 轉向L2(4) 轉向L5 ;因為加法指令后AX中已經(jīng)是6FF3H(5) 轉向L5 ;因為加法指令后AX中已經(jīng)是4A14H 指令CMP AX, BX后面跟著一條格式為J… L1的條件轉移指令,其中…可以是B、NB、BE、NBE、L、NL、LE、NLE中的任意一個。(3) 若CX的內(nèi)容等于0,則轉去執(zhí)行ZERO。(5) 把STUDENT_NAME移到PRINT_LINE的前30個字節(jié)中,把STUDENT_ ADDR移到PRINT_LINE的后9個字節(jié)中?!疌LDMOV DI, SEG STRINGMOV ES, DILEA DI, STRINGREPNE SCASBJNE NEXTDEC DIMOV ES:BYTE PTR [DI], ‘ ’ ;送空格符NEXT: ┇ 假設數(shù)據(jù)段中數(shù)據(jù)定義如下:STUDENT_NAME DB 30 DUP (?)STUDENT_ADDR DB 9 DUP (?)PRINT_LINE DB 132 DUP (?)分別編寫下列程序段:(1) 用空格符清除PRINT_LINE域。答:(1) MOV CX, 20CLDMOV SI, SEG CONAMEMOV DS, SIMOV ES, SILEA SI, CONAMELEA DI, PRLINEREP MOVSB(2) MOV CX, 20STDMOV SI, SEG CONAMEMOV DS, SIMOV ES, SILEA SI, CONAMEADD SI, 201LEA DI, PRLINEADD DI, 201REP MOVSB(3) MOV AX, WORD PTR CONAME+31(4) MOV WORD PTR PRLINE +5, AX(5) MOV AL, ‘ ’ ;空格的ASCII碼送AL寄存器CLDMOV DI, SEG CONAMEMOV ES, DILEA DI, CONAMEREPNE SCASBJNE NEXTDEC DIMOV BX, DINEXT: ┇ 編寫程序段,把字符串STRING中的‘a(chǎn)mp。(2) 從右到左把CONAME中的字符串傳送到PRLINE。 假定(DX)=0B9H,(CL)=3,(CF)=1,確定下列各條指令單獨執(zhí)行后DX中的值。執(zhí)行前(BX)=6D16H。雙字長數(shù)在A和A+2單元中,結果存放在B和B+2單元中。(7) DATAX雙字除以字DATAY (用DIV)。(2) DATAX和DATAY兩個雙字數(shù)據(jù)相加,和存放在從DATAY開始的雙字單元中。(1) 1234H (2) 4321H (3) CFA0H (4) 9D60H答:(1) 和為74D4H;SF=0,ZF=0,CF=0,OF=0(2) 和為A5C1H;SF=1,ZF=0,CF=0,OF=1(3) 和為3240H;SF=0,ZF=0,CF=1,OF=0(4) 和為0000H;SF=0,ZF=1,CF=1,OF=0 求出以下各十六進制數(shù)與十六進制數(shù)4AE0H的差值,并根據(jù)結果設置標志位SF、ZF、CF和OF的值。答:堆棧區(qū)和SP的內(nèi)容變化過程示意圖如下左圖所示。(2) 如果BX包含數(shù)據(jù)0在數(shù)組中的位移量,請編寫指令將數(shù)據(jù)0傳送給ZERO單元。(2) JMP WORD PTR [BX] ;(IP)=((DS)*10H+(BX))=0600H,PA=02600H(3) JMP D[BX] ;(IP)=((DS)*10H+(BX)+D)=098AH,PA=0298AH 設當前數(shù)據(jù)段寄存器的內(nèi)容為1B00H,在數(shù)據(jù)段的偏移地址2000H單元內(nèi),含有一個內(nèi)容為0FF10H和8000H的指針,它們是一個16位變量的偏移地址和段地址,試寫出把該變量裝入AX的指令序列,并畫圖表示出來。答:(1) ADD DX, BX(2) ADD AL, [BX][SI](3) ADD [BX+0B2H], CX(4) ADD WORD PTR [0524H], 2A59H(5) ADD AL, 0B5H 寫出把首地址為BLOCK的字數(shù)組的第6個字送到DX寄存器的指令。(2) 用寄存器BX和SI的基址變址尋址方式把存儲器中的一個字節(jié)與AL寄存器的內(nèi)容相加,并把結果送到AL寄存器中。(15) 偽指令 (N) (一般還要指出操作數(shù)地址),在程序運行時執(zhí)行。(11) 機器語言 (G) ,如DF位。(7) 控制標志 (K) 。(3) 堆棧 (D) 、數(shù)據(jù)等信息的
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1