2004年10月自考《匯編語言程序設計》試題

字號:

一、單項選擇題(本大題共20小題,每小題1分,共20分)
    1.假設存儲器中從7462H單元開始的四個相鄰字節(jié)單元中的內(nèi)容依次是32H,46H,52H,OFEH,則存放字數(shù)據(jù)OFE52H的字地址是(  ?。?BR>    A.7462H B.7463H
    C.7464H D.7465H
    2.下列寄存器組中,在訪問存儲器操作數(shù)地址時,可以提供偏移地址的是(  ?。?BR>    A.BP、BX、SI、DI B.AX、BX、CX、DX
    C.SP、IP D.BX、SI、DI、DS
    3.當堆棧為空時,如SS=0805H,SP=40H,棧底字單元的物理地址是(  ?。?BR>    A.08090H B.08089H
    C.0808EH D.08450H
    4.執(zhí)行POP BP指令時,源操作數(shù)的物理地址表達式是(  ?。?BR>    A.16*SS+SP B.16*SS+BP
    C.16*DS+BP D.16*CS+BP
    5.設ADRT=100H,不符合語法規(guī)則的語句是(  ?。?BR>    A.MOV AX,ADRT B.MOV AX,[ADRT+SI]
    C.MOV [ADRT],AX D.MOV ADRT[SI],AX
    6.下面XCHG指令語句中,語法正確的是(  ?。?BR>    A.XCHG AX,DS B.XCHG BL,[BX]
    C.XCHG AL,OFH D.XCHG[SI],[DI]
    7.設(AL)=63H(BL)=29H執(zhí)行下面指令后(  ?。?BR>    SUB AL,BL
    DAS
    AX的內(nèi)容是
    A.(AX)=0304H B.(AX)=0034
    C.(AX)=0034H D.(AX)=0304
    8.設BX=1234H,DS=2000H,(21234H)=5678H,則指令"LEA SI,[BX]"執(zhí)行后的結(jié)果是(  ?。?BR>    A.SI=5678H B.SI=1234H
    C.SI=2000H D.SI=3234H
    9.設DF=0,SI=20H,CX=10,執(zhí)行REP LODSW指令后,SI中的內(nèi)容是(  ?。?BR>    A.20H B.30H
    C.34H D.40H
    10.設AL=0A8H,CL=23H,執(zhí)行乘法指令MUL CL后,標志位OF,CF的值分別是(  ?。?BR>    A.OF=1,CF=1 B.OF=1,CF=0
    C.OF=0,CF=1 D.OF=0,CF=0
    11.MOV BX,OFFFEH
    NEG BX
    NOT BX
    上述三條指令執(zhí)行后,BX中的內(nèi)容是(  ?。?BR>    A.-1 B.-2 C.-3 D.-4
    12.設數(shù)據(jù)段有:DA1 DB XX ;是任一數(shù)據(jù)
    DA2 DB OFEH
    下列兩條指令:MOV DL, DA1
    OR DL,DA2
    執(zhí)行后,DL中的內(nèi)容可能是(   )
    A.0FFH或0FEH B.只能是0FEH
    C.只能是0FFH D.只能是01H
    13.NUM1=200
    NUM2=0C8H
    MOV AL,NUM1 XOR NUM2
    上述語句執(zhí)行后AL中的值是(  ?。?BR>    A.200 B.0C8H
    C.0 D.0FFH
    14. ORG 100H
    NUM EQU 8042H
    DA1 DB 56H
    MOV BX,0FFSET DA1
    上述程序段執(zhí)行后BX中的值是(   )
    A.56H B.100H C.101H D.102H
    15.設數(shù)據(jù)段中定義語句
    DA1 DB 12H,34H
    DA2 DW 12H,34H
    下面有語法錯誤的語句是(  ?。?BR>    A.BUF1 DW DA1 B.MOV DA1+1,AX
    C.MOV BYTE PTR DA2+1,AL D.MOV WORD PTR DA1,AX
    16.在同一程序段中,定義下面?zhèn)沃噶?錯誤的是(  ?。?BR>    A.PORT1 EQU AL B.PORT2=AL
    C.PORT2=2A50H AND OFFH D.PORT3 EQU 2A50H
    17.X DB 20H DUP(0)
    Y DW ''''7A'''',''''8B''''
    MOV CH,LENGTH Y
    MOV CL, LENGTH X
    執(zhí)行上述指令后,CX中的內(nèi)容是 (   )
    A.0120H B.2010H
    C.207AH D.7A20H
    18.執(zhí)行SUB AX,[BP][DI]指令,取源操作數(shù)時,使用的物理地址表達式是(  ?。?BR>    A.16*SS+BP+DI B.16*ES+BP+DI
    C.16*DS+BP+DI D.16*CS+BP+DI
    19.BUFF單元開始,連續(xù)存放了十個字節(jié)數(shù)據(jù),欲找出與AL中內(nèi)容不同的數(shù),并將不同數(shù)據(jù)的地址偏移量送ADR單元,應選用的指令序列是(  ?。?BR>    A.REPZ CMPSB B.KEPNZ CMPSB
    JZ K1 JZ K1
    MOV ADR,DI MOV ADR,DI,
    K1:…… K1:……
    C.REPZ SCASB D.REPNZ SCASB
    JZ K1 JNZ K1
    DEC DI DEC DI
    MOV ADR,DI MOV ADR,DI
    K1:…… K1:……
    20. TEST VAR,55H
    JE ZER0
    ZER0:……
    上述程序段執(zhí)行JE ZER0指令后能夠產(chǎn)生分支的條件是(  ?。?BR>    A.VAR=0 B.VAR=55H
    C.VAR中第1,3,5,7位均為0 D.VAR中第0,2,4,6位均為0
    二、填空題(本大題共5小題,每小題1分,共5分)
    21.邏輯地址由___________組成。
    22.假設執(zhí)行指令前BX=5678H,CL=8,指令ROL BX,CL執(zhí)行后BX=___________。
    23.每次進行串掃描指令SCAS時,要進行遞增或遞減修改的變址寄存器是___________。
    24.在指令語句操作數(shù)項上,引用一個段名,就是獲取段地址的___________數(shù)據(jù)。
    25.VAR1 DD 10H DUP(?)語句實現(xiàn)留空___________個字節(jié)單元。
    三、簡答題(本大題共3小題,每小題2分,共6分)
    26.下面指令是錯誤嗎,哪條有錯?什么錯誤
    ①MOV 34H,BL
    ②XCHG DS,AX
    27.完成下列操作選用什么指令或指令序列
    ①將2BC0H減去1A05H
    ②將變量DAB1的段地址送AX。
    28.設執(zhí)行前SI=1000H,DS=2000H,存儲單元(21000H)=1245H,下面二條指令分別執(zhí)行后BX中的值各是多少?
    ①MOV BX,[SI]
    ②LEA BX,[SI]
    四、程序分析題(本大題共7小題,每小題5分,共35分)
    29.MOV AX,7452H
    ADD AL,AH
    DAA
    XCHG AH,AL
    SUB AL,AH
    DAS
    程序段運行后,AX=____________,CF=____________。
    30.已知AX=7865H,BX=89AAH
    CLC
    ADD AX,BX
    OR BX,AX
    RCR AX,1
    RCL BX,1
    程序執(zhí)行后,AX=____________BX=____________CF=____________
    31.①AND AL,0FAH
    XOR AL,0FFH
    ②XOR AL,0AFH
    OR AL,50H
    閱讀上述指令,分別回答各指令序列完成什么功能?
    32.DA1 DB 1AH,2BH,3CH,4DH,5EH,6FH
    DA2 DB 6 DUP(0)
    LEA SI,DA1+5
    MOV BX,0FFSET DA2
    MOV CX,604H
    STD
    LOP: LODSB
    ROL AL,CL
    MOV [BX],AL
    INC BX
    DEC CH
    JNZ LOP
    ①程序執(zhí)行后DA2中各字節(jié)內(nèi)容是什么?
    ②程序中ROL AL,CL是否用ROR AL,CL指令替代,其功能不變。
    33. DA1 DB''''ABCDE $ FGHI''''
    DA2 DB $ -DA1 DUP(?)
    CALL SUB1
    SUB1 PROC
    MOV BX,0
    LOP:CMP BYTE PTR DA1[BX],''''$''''
    JZ AR
    MOV AL,DA1[BX]
    MOV DA2 [BX],AL
    INC BX
    JMP LOP
    AR:RET
    SUB1 ENDP
    ①上述子程序的功能是什么?
    ②返回主程序時,BX=____________。
    34.AR1 DB ''''ABCDEFGH''''
    AR2 DB O
    MOV AH,1
    INT 21H ;鍵盤輸入
    AND AL,0FH
    DEC AL
    LEA BX,AR1
    XLAT AR1
    MOV AR2,AL
    ①假設鍵盤輸入數(shù)字4,則執(zhí)行后(AR2)=____________;
    ②執(zhí)行后CF=____________。
    35.BCD1 DB 46H
    MOV AL,BCD1
    MOV CL,4
    SHR AL,CL
    SAL AL,1
    MOV CL,AL
    SAL AL,1
    SAL AL,1
    ADD AL,CL
    MOV CL,BCD1
    AND CL,0FH
    ADD AL,CL
    上述程序段完成的功能是什么?
    程序段運行結(jié)束后AL=____________。
    五、程序填空題(本大題共2小題,每小題6分,共12分)
    36.下面程序段是判AL和BL中的數(shù)據(jù)是否同號,若是,則把AL中的數(shù)據(jù)變負并送到AH中,否則O→AH。橫線處填入適當指令(每處僅填一條指令)。
    ____________①
    JNS K
    MOV AH,0
    JMP END0
    K: ____________②
    MOV AH,AL
    END0:……
    37.已知寄存器AX和BX分別存放有二個非壓縮BCD碼,下面程序段完成AX+BX→AX中,請在橫線中各填一條指令(假設結(jié)果小于等于99)
    MOV CH,AH
    ADD AL,BL
    AAA
    ____________①
    ADC AL,BH
    AAA
    ____________②
    MOV AL,CH
    六、編制程序題(本大題共3小題,共22分)
    38.限用三條指令實現(xiàn)將DA1和DA2二個字節(jié)存儲單元的內(nèi)容進行交換。(5分)
    39.試編制一程序段,用串操作指令STOSB實現(xiàn)向DA數(shù)據(jù)區(qū)依次相間存放字母字符A,B,……J和數(shù)字字符0~9。相間順序是:A,0,B,1,C,2…,I,8,J,9。(設DA數(shù)據(jù)區(qū)所在段已由ES指向)。(5分)
    40.已知三個帶符號的字節(jié)數(shù)據(jù)a,b,c存放在ADR開始的連續(xù)單元中,若a,b,c同時為正數(shù)則FLAG單元置0,若同時為負數(shù),則FLAG單元置1,否則FLAG單元置全1,請編寫完整源程序。(12分)