奥鹏作业答案-谋学网-专业的奥鹏在线作业答案辅导网【官网】

 找回密码
 会员注册

微信登录,扫一扫

手机号码,快捷登录

VIP会员,3年作业免费下 !奥鹏作业,奥鹏毕业论文检测新手作业下载教程,充值问题没有找到答案,请在此处留言!
2022年5月最新全国统考资料投诉建议,加盟合作!点击这里给我发消息 点击这里给我发消息
奥鹏课程积分软件(2021年最新)
查看: 2552|回复: 0

电子科技大学11春《汇编语言程序设计基础》模拟题

[复制链接]
发表于 2011-8-19 07:54:58 | 显示全部楼层 |阅读模式
谋学网
电子科技大学网络教育学院
汇编语言程序设计  模拟试卷1(120分钟) 考试日期   年  月  日
一        二        三        四        五        六        七        八        九        十        总分        评卷老师
                                                                                       

一、        填空(每空1分,共20分)。
1、        8086CPU有_______根地址线,可直接寻址_______字节的存储空间。
2、        -1的8位二进制补码是________。
3、        IBM-PC系列微机可访问的外设端口的地址范围是从_______到________。
4、        在8086CPU中,当______时,访问存储器,当______时,访问I/O端口。
5、        在8086CPU中,对I/O端口的寻址有________和___________。
6、        在8086CPU指令系统中,要获得数组变量所占的总字节数,使用_______运算符,要获得数组变量的元素个数,使用_________运算符,要获得变量的类型数字,使用_________运算符。
7、        符号‘$’代表___________的现行值,定位伪指令ORG是把某一个值赋给___________,表示以给定值作起始偏移量。
8、        若一个数据块的起始地址为70A0H :DDF6H,则这个数据块起始地址的实际地址为_________。
9、        如果一条指令使用标号,那么该标号就是这条指令的_______地址,且它代表该指令的________的地址。
10、        在宏汇编语言中,宏指令的使用过程是_______、_______、_______。
二、        单项选择(每空1分,共20分)
1、两个非组合型BCD码数据相加后,执行加法校正指令AAA是,首先检查是否需要校正。需要校正的条件有:AF=1、CF=L和(                        )。
                A.AL中高四位数的值>9                B.AL中高四位数的值<9
                C.AL中低四位数的值<9                D.AL中低四位数的值>9
2、8086的I/O空间段寄存器使用的是(                )
                A.DS                B.没必要                        C.ES                D.SS
3、I/O端口间接寻址方式是将被寻址的端口地址存放在(                )
                A.DX                B.AX                C.BX                D.CX
4、8086/8088CPU的输入指令是将输入设备的一个端口中的数据传送到(                        )
                A.IP                B.AL/AX                C.BP        D.BX/CX
5、I/O设备的数据端口是(             )
                A.32                        B.64                C.8/16                D.16/32
6、为了保证用户程序执行完后能正常返回DOS,常使用的一种方法是在程序执行的最后一条指令为RET。但使用该方法要在程序执行前进行一系列的保护操作(        )
        A.        MOV                AX,        DATA
                MOV                DS,        AX
                MOV                ES,        AX
        B.        PUSH                DS
                MOV                AX,        0
                PUSH                AX
        C.        MOV                AH,        4CH
                INT        21H
        D.        MOV                AX,        DATA
                MOV                DS,        AX
                PUSH                AX
7、不用立即数,也不用任何存储单元中的数据,能完成AX ←        -1,        BX ←        0,        CX ←         1的程序段是(                        )
        A.        XOR        AX,        AX
                MOV        BX,        AX
                INC                AX
                MOV        CX,        AX       
                NEG        AX
        B.        OR        AX,        AX
                MOV        BX,        AX
                INC                AX
                MOV        CX,        AX       
                NEG        AX
        C.        AND        AX,        AX
                MOV        BX,        AX
                INC                AX
                MOV        CX,        AX       
                NEG        AX
        D.        XOR        AX,        AX
                MOV        BX,        AX
                DEC        AX
                MOV        CX,        AX       
                NEG        AX
8、DA        DW                ‘AB’,        ‘CD’       
        DB1        DB                ‘X’
        ……
        则执行指令语句XCHF                DB1,        BYTE        PTR                DA        后,结果DB1中的内容是(                )
        A. ‘A’                B.42H                C.41H                D.’C’
9、下列伪指令中可以用来定义变量的是(         )
        A.TYPE                B.DB                C.WORD                        D.BYTE       
10、在汇编过程中不产生指令代码,只用来指示汇编程序如何汇编的指令是(        )
        A.宏指令                B.伪指令                C.机器指令                D.汇编指令
11、下面伪指令定义后,其变量对应的物理地址是(                        )
        ORG        0100H
        BUF                DB                10        DUP(?)
        CON        DW                2        DUP(?)

A.        BUF                DS:0100H
CON        DS:010AH
B.        BUF                DS:010AH       
        CON        DS:0101H       
C.        BUF                DS:0110H       
        CON        DS:011CH       
D.        BUF                DS:0100H
        CON        DS:0101H
        12、在ASSUME伪指令设定了段寄存器后,无需在程序段中用指令完成赋值的寄存器是(                )
                A.CS                B.DS                C.ES                D.AX
        13、指令代码的地址存放在寄存器(                )中
                A.DS, SI                B.ES, DI                C.CS, IP                D.BX, BP
        14、指令PUSH        AX的正确操作是(                )
A.        SP←SP + 1
AH→(SP)
SP←SP + 1
AL→(SP)
                B.         SP←SP - 1
AL→(SP)
SP←SP - 1
AH→(SP)
C.        SP←SP- 1
AH→(SP)
SP←SP - 1
AL→(SP)
D.        以上均不正确
15、在取MOV        BX        0125H指令的源操作数时,使用的逻辑地址时(                )
A.        CS:IP        B.DS:0125H                C.ES:0125H                D.无
16、在8086/8088中,可以分为两个独立的8位寄存器使用的寄存器是(                )
        A.AX,DI,BP,SI                B.AX,BX,CX,DX,F
        C.SI, DI,BP,SP,IP                D.CS,ES,DS,SS
17、设SP的初值为200H,执行指令”PUSH        AX”后,SP的值为(                )
        A.198H                B.200H                C        202H                D.1FEH       
18、伪指令“ENDP”告诉汇编程序(                )
        A.宏定义结束                B.过程定义结束                C.段定义结束                D.用户程序结束
19、ADD        AL, BL
        AAA
        设执行前(AX)= 0535H,                (BL)=39H,        则执行上述指令后,        AX中的内容为(          )
        A.0604H                B.0574H                C.0104H                D.056EH
20、设(SS)=1E56H,(SP)=38H,则执行指令“RET                6”后,SP的值以及SP所指向的存储单元的物理地址分别是(                )
        A.3FH, 1E5A0H                B.42H, 1E5C6H       
        C.39H,        1E5E2H                D.42H,1E5A2H



       
三、        判断改错题(判断正误,正确的划上“√”,错误的划上“×”,并改正错误。每题2分,共10分)
1、        MOV  AX,0FFH
MOV  CS,AX                                                                                        (                )


2、        MOV  AX,100
ADD  AX,[BX]
DAA                                                                                                                (                )


3、        …
A1  DB  10H
A2  DB  ?

CMP  A1,A2                                                                                        (                )

       
       
4、        DATA0  DB  100

MOV  [DATA0],AX
PUSH  AX
…                                                                                                                (                )

               
5、        MOV  AL,01H
OUT  2F8H,AL                                                                                          (                )


四、写出下面程序段的运行结果或功能(20分)
1、        DESG  SEGMENT  AT  1000H
           ORG  6
VAR1  DB  2,8
       ORG  $+2
VAR2  DW  569AH
       DB  ‘1234’
DESG  ENDS
   画出上面程序的内存分配图:(4分)

       
2、        MOV  DL,31H
MOV  AH,2
INT  21H
指出该程序段的功能:(2分)

3、        CLC  
MOV  CX,0FFFFH
INC  CX
执行该程序段后,CX=_________,ZF=_________。(2分)


4、        MOV  AL,100
CMP  AL,100
执行该程序段后,AL=_________,CF=__________。(2分)


5、        下列程序段完成什么功能?(4分)
DATA1        DB        300        DUP(?)
DATA2        DB        100        DUP(?)
……..
                        MOV        CX,        100
                        MOV        BX,        200
                        MOV        SI,        0       
                        MOV        DI,        0
        L1:                MOV        AL,        DATA1[BX][SI]
                        MOV        DATA1[DI]
                        INC                SI
                        INC                DI       
                        LOOP        L1

6、        下列程序段完成的功能是什么?(4分)
BUF1        DB        X
BUF2        DB        Y       
RES                DB        ?
………
                        MOV        DX,        BUF1
                        ADD        DX,        BUF2
                        MOV        CL,        3
                        SAL                DX,        CL
                        SUB                DX,        BUF1
                        SAR                DX,        1
                        MOV        RES,        DX
                        RET


7、        TABLE        DB        0,7,3,98,23,26,34,51
                DAT                DB        4
                ……….
                                LEA                BX,        TABLE
                                MOV        AX,        0
                                MOV        AL,        DAT
                                ADD        BX,        AX
                                MOV        AL,        [BX]
则执行上述程序段后,(AL)=________,        与ADD        BX,        AX和MOV        AL, [BX]二条语句等效的一条语句是__________。(2分)

四、        编程(30分)
1、        知有一个100个字节数据的数据块,存放在以3DAOH :1000H开始的存储区内,将该数据块搬至以3EA0H :2000H开始的区域中。编写程序段,实现给定功能。(8分)
               
2、        计算表达式Z=(X2  + 2Y + Y2  ) / 2,设X,Y均为单字节正整数,结果Z为字数据。写完整的程序,完成给定的功能。(设X=23H, Y=0F6H)(10分)

3、编一完整的汇编语言程序,把BCD码转换成二进制数,并将结果放在存储单元BNUM中。设BCD码存放在        DNUM中,且为5687H。(12分)
               


参考资料:
电子科技大学网络教育学院
汇编语言程序设计  模拟试卷1(120分钟) 考试日期   年  月  日
一        二        三        四        五        六        七        八        九        十        总分        评卷老师
                                                                                       

五、        填空(每空1分,共20分)。
1、        8086CPU有__20_____根地址线,可直接寻址___1M_____字节的存储空间。
2、        -1的8位二进制补码是__0FFH______。
3、        IBM-PC系列微机可访问的外设端口的地址范围是从__0_____到___3FFH_____。
4、        在8086CPU中,当M/-IO=1时,访问存储器,当M/-IO=0时,访问I/O端口。
5、        在8086CPU中,对I/O端口的寻址有存储器编址方法和I/O端口编址方法。
6、        在8086CPU指令系统中,要获得数组变量所占的总字节数,使用SIZE运算符,要获得数组变量的元素个数,使用LENGTH运算符,要获得变量的类型数字,使用TYPE运算符。
7、        符号‘$’代表当前位置计数器的现行值,定位伪指令ORG是把某一个值赋给当前位置计数器,表示以给定值作起始偏移量。
8、        若一个数据块的起始地址为70A0H :DDF6H,则这个数据块起始地址的实际地址为__7E7F6H______。
9、        如果一条指令使用标号,那么该标号就是这条指令的首地址,且它代表该指令的第一字节的地址。
10、        在宏汇编语言中,宏指令的使用过程是定义、调用、展开。
六、        单项选择题(每空1分,共20分)
1、两个非组合型BCD码数据相加后,执行加法校正指令AAA是,首先检查是否需要校正。需要校正的条件有:AF=1、CF=L和(                D        )。
                A.AL中高四位数的值>9                B.AL中高四位数的值<9
                C.AL中低四位数的值<9                D.AL中低四位数的值>9
2、8086的I/O空间段寄存器使用的是(        B        )
                A.DS                B.没必要                        C.ES                D.SS
3、I/O端口间接寻址方式是将被寻址的端口地址存放在(        A        )
                A.DX                B.AX                C.BX                D.CX
4、8086/8088CPU的输入指令是将输入设备的一个端口中的数据传送到(                B        )
                A.IP                B.AL/AX                C.BP        D.BX/CX
5、I/O设备的数据端口是(          C   )
                A.32                        B.64                C.8/16                D.16/32
6、为了保证用户程序执行完后能正常返回DOS,常使用的一种方法是在程序执行的最后一条指令为RET。但使用该方法要在程序执行前进行一系列的保护操作(  B        )
        A.        MOV                AX,        DATA
                MOV                DS,        AX
                MOV                ES,        AX
        B.        PUSH                DS
                MOV                AX,        0
                PUSH                AX
        C.        MOV                AH,        4CH
                INT        21H
        D.        MOV                AX,        DATA
                MOV                DS,        AX
                PUSH                AX
7、不用立即数,也不用任何存储单元中的数据,能完成AX ←        -1,        BX ←        0,        CX ←         1的程序段是(                A                )
        A.        XOR        AX,        AX
                MOV        BX,        AX
                INC                AX
                MOV        CX,        AX       
                NEG        AX
        B.        OR        AX,        AX
                MOV        BX,        AX
                INC                AX
                MOV        CX,        AX       
                NEG        AX
        C.        AND        AX,        AX
                MOV        BX,        AX
                INC                AX
                MOV        CX,        AX       
                NEG        AX
        D.        XOR        AX,        AX
                MOV        BX,        AX
                DEC        AX
                MOV        CX,        AX       
                NEG        AX
8、DA        DW                ‘AB’,        ‘CD’       
        DB1        DB                ‘X’
        ……
        则执行指令语句XCHF                DB1,        BYTE        PTR                DA        后,结果DB1中的内容是(        B        )
        A. ‘A’                B.42H                C.41H                D.’C’
9、下列伪指令中可以用来定义变量的是(         A )
        A.TYPE                B.DB                C.WORD                        D.BYTE       
10、在汇编过程中不产生指令代码,只用来指示汇编程序如何汇编的指令是(        B )
        A.宏指令                B.伪指令                C.机器指令                D.汇编指令
11、下面伪指令定义后,其变量对应的物理地址是(                A        )
        ORG        0100H
        BUF                DB                10        DUP(?)
        CON        DW                2        DUP(?)

A.        BUF                DS:0100H
CON        DS:010AH
B.        BUF                DS:010AH       
        CON        DS:0101H       
C.        BUF                DS:0110H       
        CON        DS:011CH       
D.        BUF                DS:0100H
        CON        DS:0101H
        12、在ASSUME伪指令设定了段寄存器后,无需在程序段中用指令完成赋值的寄存器是(        A        )
                A.CS                B.DS                C.ES                D.AX
        13、指令代码的地址存放在寄存器(        C        )中
                A.DS, SI                B.ES, DI                C.CS, IP                D.BX, BP
        14、指令PUSH        AX的正确操作是(        C        )
B.        SP←SP + 1
AH→(SP)
SP←SP + 1
AL→(SP)
                B.         SP←SP - 1
AL→(SP)
SP←SP - 1
AH→(SP)
C.        SP←SP- 1
AH→(SP)
SP←SP - 1
AL→(SP)
E.        以上均不正确
15、在取MOV        BX        0125H指令的源操作数时,使用的逻辑地址时(                A        )
B.        CS:IP        B.DS:0125H                C.ES:0125H                D.无
16、在8086/8088中,可以分为两个独立的8位寄存器使用的寄存器是(                B)
        A.AX,DI,BP,SI                B.AX,BX,CX,DX,F
        C.SI, DI,BP,SP,IP                D.CS,ES,DS,SS
17、设SP的初值为200H,执行指令”PUSH        AX”后,SP的值为(        D        )
        A.198H                B.200H                C        202H                D.1FEH       
18、伪指令“ENDP”告诉汇编程序(                B)
        A.宏定义结束                B.过程定义结束                C.段定义结束                D.用户程序结束
19、ADD        AL, BL
        AAA
        设执行前(AX)= 0535H,                (BL)=39H,        则执行上述指令后,        AX中的内容为(A        )
        A.0604H                B.0574H                C.0104H                D.056EH
20、设(SS)=1E56H,(SP)=38H,则执行指令“RET                6”后,SP的值以及SP所指向的存储单元的物理地址分别是(        D        )
        A.3FH, 1E5A0H                B.42H, 1E5C6H       
        C.39H,        1E5E2H                D.42H,1E5A2H



       
七、        判断改错题(判断正误,正确的划上“√”,错误的划上“×”,并改正错误。每题2分,共10分)
1、        MOV  AX,0FFH
MOV  CS,AX                                                                                        (        ×        )

改:
        MOV  AX,0FFH
        MOV  DS,AX

2、        MOV  AX,100
ADD  AX,[BX]
DAA                                                                                                                (        ×        )

改:
        MOV  AL,100
        ADD  AL,[BX]
        DAA       

3、        …
A1  DB  10H
A2  DB  ?

CMP  A1,A2                                                                                        (        ×        )

        改:
        …
        A1  DB  10H
        A2  DB  ?
        …
        MOV        AL,        A1
                CMP  AL,A2       
       
4、        DATA0  DB  100

MOV  [DATA0],AX
PUSH  AX
…                                                                                                                (        ×        )

        改:
        DATA0  DW  100

MOV  [DATA0],AX
PUSH  AX

       
5、        MOV  AL,01H
OUT  2F8H,AL                                                                                        (        ×        )

改:
        MOV  AL,01H
        MOV        DX,        2F8H
        OUT  DX,AL       

四、写出下面程序段的运行结果或功能(20分)
7、        DESG  SEGMENT  AT  1000H
           ORG  6
VAR1  DB  2,8
       ORG  $+2
VAR2  DW  569AH
       DB  ‘1234’
DESG  ENDS
   画出上面程序的内存分配图:(4分)

        参考资料:
2
8
-
-
9AH
56H
‘1’
‘2’
‘3’
‘4’


        1000:0006H       

                                               
                                               
                       









8、        MOV  DL,31H
MOV  AH,2
INT  21H
指出该程序段的功能:(2分)

参考资料:显示数字1
9、        CLC  
MOV  CX,0FFFFH
INC  CX
执行该程序段后,CX=_________,ZF=_________。(2分)

参考资料:CX=0, ZF=1

10、        MOV  AL,100
CMP  AL,100
执行该程序段后,AL=_________,CF=__________。(2分)

参考资料:AL=100, CF=0

11、        下列程序段完成什么功能?(4分)
DATA1        DB        300        DUP(?)
DATA2        DB        100        DUP(?)
……..
                        MOV        CX,        100
                        MOV        BX,        200
                        MOV        SI,        0       
                        MOV        DI,        0
        L1:                MOV        AL,        DATA1[BX][SI]
                        MOV        DATA1[DI]
                        INC                SI
                        INC                DI       
                        LOOP        L1

参考资料:将DATA1的后100个字节传输到DATA2开始的存储单元中。
       
12、        下列程序段完成的功能是什么?(4分)
BUF1        DB        X
BUF2        DB        Y       
RES                DB        ?
………
                        MOV        DX,        BUF1
                        ADD        DX,        BUF2
                        MOV        CL,        3
                        SAL                DX,        CL
                        SUB                DX,        BUF1
                        SAR                DX,        1
                        MOV        RES,        DX
                        RET

参考资料:计算表达式[(X + y)*8 - X]/2的值。

7、        TABLE        DB        0,7,3,98,23,26,34,51
                DAT                DB        4
                ……….
                                LEA                BX,        TABLE
                                MOV        AX,        0
                                MOV        AL,        DAT
                                ADD        BX,        AX
                                MOV        AL,        [BX]
则执行上述程序段后,(AL)=________,        与ADD        BX,        AX和MOV        AL, [BX]二条语句等效的一条语句是__________。(2分)

参考资料:16,        XLAT

八、        编程(30分)
1、        知有一个100个字节数据的数据块,存放在以3DAOH :1000H开始的存储区内,将该数据块搬至以3EA0H :2000H开始的区域中。编写程序段,实现给定功能。(8分)

参考资料:
MOV        AX,        3DA0H
MOV        DS,        AX
MOV        AX,3EA0H
MOV        ES,        AX
MOV        SI,        1000H
MOV        DI,        2000H
MOV        CX,        100
LOOP1:        MOV        AL,        DS:[SI]
                MOV        ES:[DI],AL
                INC                SI
                INC                DI
                        LOOP        LOOP1
               
2、        计算表达式Z=(X2  + 2Y + Y2  ) / 2,设X,Y均为单字节正整数,结果Z为字数据。写完整的程序,完成给定的功能。(设X=23H, Y=0F6H)(10分)


参考资料:
TITLE        CALCULATE         Z=(X2  + 2Y + Y2  ) / 2
DATA        SEGMENT
        X                DB                23H
Y                DB                0F6H
Z                DW                ?
DATA        ENDS
STACK        SEGMENT  PARA  STACK ‘stack’
                        DB                100 DUP(?)
STACK        ENDS       
CODE        SEGMENT
                ASSUME        CS:CODE, DSATA, SS:STACK
START  PROC  FAR
BEGIN:        PUSH        DS
                MOV        AX, 0
                PUSH        AX
MOV        AX, DATA
                MOV        DS, AX
                MOV        AL, X
                MOV        AH,0
                MOV        BL,        Y
                MOV        BH,        0
                MUL        AL
                MOV        CX, AX
                MOV        AX, BX
                MUL        AL
                ADD        BX,BX
                ADD        AX,BX
                ADD        AX,CX
                DIV                AX,        2
                MOV        Z,        AX
                RET               
START ENDP
CODE ENDS
                END BEGIN

3、编一完整的汇编语言程序,把BCD码转换成二进制数,并将结果放在存储单元BNUM中。设BCD码存放在        DNUM中,且为5687H。(12分)

参考资料:
DATA        SEGMENT
DNUM        DW        5687H
BNUM        DW        ?
DATA        ENDS
STACK        SEGMENT
                DB        100        DUP(?)
STACK        ENDS
CODE        SEGMENT
                ASSUME        CS:CODE,        DSATA,        SS:STACK
START:        MOV        AX,        DATA
                MOV        DS,        AX
                MOV        AX,        DNUM
                MOV        DI,        AX
                MOV        DX,        AX
                MOV        BX,        AX
                AND        BX,        000FH
                AND        DX,        00F0H
                MOV        CL,        4
                SHR,        DX,        CL
                AND        DI,        0F00H
                MOV        CL,        8
                SHR                DI,CL
                AND        AX,0F000H
                MOV        CL,12
                SHR                AX,CL
                SAL                AX,1
                MOV        SI,AX
                MOV        CL,2
                SAL                AX,CL
                ADD        AX,SI
                ADD        AX,DI
                SAL                AX,1
                MOV        SI,AX
                MOV        CL,2
                SAL                AX,CL
                ADD        AX,SI
                ADD        AX,DX
                SAL                AX,1
                MOV        SI,AX
                MOV        CL,2
                SAL                AX,CL
                ADD        AX,SI
                ADD        AX,BX
                MOV        BNUM,        AX
                MOV        AH,4CH
                INT        21H
CODE        ENDS
        END        START




电子科技大学网络教育学院
汇编语言程序设计  模拟试卷2(120分钟) 考试日期   年  月  日
一        二        三        四        五        六        七        八        九        十        总分        评卷老师
                                                                                       

九、        填空(每空1分,共20分)。
1、        在PC系列微机钟,从00000H至003FFH哦内存中存放着_ _______。
2、        设堆栈指针(SP)= 2200H,此时若将AF、AX、BX、CX依次压入堆栈后,(SP)=________。
3、        8086/8088CPU寻址外设端口的两种寻址方式为_______和________。
4、        凡地址能被________整除的单元可定义为段的起始单元。
5、        程序段   MOV  AL,64H
                        MOV  BL,-1
                        CMP  AL,BL
                        ADD  AL,AL
执行后,(AL)=______,(BL)=______,CF=______。
6、        程序段
MOV        AL,        40H
ADD        AL,        AL
ADC        AL,        AL
ADC        AL,        AL
执行后,(AL)=_____,        CF=_______。
7、        在8086/8088CPU串操作寻址中,隐含使用变址寄存器SI、DI。若_____时,SI、DI自动增量,否则自动减量。
8、        在8086/8088CPU基址变址寻址操作中,当基址寄存器选用BP时,隐含使用的段寄存器是________,当选用BX时,隐含使用的段寄存器是______。
9、        OFFSET用于获得一个变量或标号在其段内的__________。
10、        在8086/8088指令系统中,_________是一个字节表示两个BCD码,_______是一个字节的低4位表示一个BCD码,高4位通常为0000或0011等。
11、        在用指令MUL进行字节乘法时,一个操作数隐含使用寄存器_______,运算所得结果隐含地存放在寄存器_______。
12、        执行CALL指令,对标志寄存器_______。
13、        在编写子程序时,必须注意一个子程序执行的最后一条指令一定是还回指令______,用以还回到调用该子程序的断点处。
十、        单项选择题(每空1分,共20分)
1、        二进制数1000 0000为带符号的补码时,表示(                        ).
        A.-128                B.-0                C.-127                D.128
2、        在计算机内,字符均用ASCII码表示,一个字符在存储器中占用(                        )
A.4BIT                B.1个字节                C.一个字                D.一个双字
3、        在计算机内,机器数均用(                        )来表示
A.原码                B.反码                C.补码                D.ASCII码
4、        BCD码是二进制编码的十进制数,一个16位的十进制数或非组合BCD码在机内要占用(                        )个字节单元
A.4                B.8                C.16                        D.32
5、        8086CPU产生存储单元的物理地址是由(                        )组合产生的
A.CS和IP        B.段基址和偏移地址        C.SS和SP        D.有效地址和相对地址
6、        标志位(                        )用于控制串操作的方向(增量或减量)
        A.AF                B.PF                C.IF                D.DF
7、        8086CPU访问(读/写)一次存储器或I/O接口所用的时间,称为一个(                        )
A.基本指令执行时间                B.时钟周期        C.总线周期        D.指令周期
8、        8086的基本总线周期长度是(                        )(不含等待)
A.3T                B.TI                C.一个指令周期                D.4T
9、        8086CPU寻址I/O端口是,若要访问1024个字节端口或512个字节端口时,至少要使用(                        )根地址线
A.4                B.8                C.10                D.16
        10、指令PUSH        DS的目的操作数是(                        )寻址方式
A.寄存器                B.寄存器间接                        C.直接                D.隐含(固定)
        11、已知(SI)=0004H, (DS)=8000H, (80004H)=02H, (80005H)=C3H,指令LEA        AX, [SI]执行后,(AX)= (                        )
                A.0002H                B.0004H                C.02H                D.C302H
        12、已知(AL0=A3H, 指令CBW执行后,(AX)=(                        )
                A.00A3H                B.FFA3H                C.0FA3H                D.A300H
        13、(                        )是一种能被计算机识别和执行的语言
                A.汇编语言                B.高级语言                C.算法语言                D.机器语言
        14、八位微计算机用补码所能表示的数的范围是(                        )
        A.-128~127                B.-127~127                C.0~255                D.0~256
        15、八位微处理器的地址线AB为16条,则能组合成(                        )种不同的地址码
        A.21  6          B. 21  6  - 1                C.21  5          D. 21  5  -1
        16、两个八位二进制数0000 0110和1111 1100相加,则(                        )成立
A.        视为两个无符号数相加时,发生溢出,视为两个带符号数相加时,发生溢出
B.        视为两个无符号数相加时,不发生溢出,视为两个带符号数相加时,发生溢出
C.        视为两个无符号数相加时,发生溢出,视为两个带符号数相加时,不发生溢出
D.        视为两个无符号数相加时,不发生溢出,视为两个带符号数相加时,不发生溢出
17、8086CPU内部由两个独立的工作部件构成,它们是(                        )
A.执行部件和总线接口部件                B.执行部件和地址、数据缓冲器
B.运算器和控制器                                C。运算器和寄存器阵列
18、已知(AL)=36H, (BL)=02H, 执行指令MUL BL后,AH和AL的值分别为(                        )
A.(AH)=03H,  (AL)=2AH                        B.(AH)=00H,  (AL)=6CH
C.(AH)=FFH,  (AL)=6CH                        D.(AH)=03H,  (AL)=6CH
19、一个存储单元的实际地址为25342H,若其段首址为234E0H,则其段内偏移地址为(                        )
A.1F41H        B.1F42H                C.5432H                D.01FAH
20、与DB  ‘A’, ‘B’等效的指令是(                        )
A.DB  ‘BA’                B.DW  ‘BA’                C.DW  ‘AB’                D.DW ‘A’, ‘B’
十一、        判断改错题(判断正误,正确的划上“√”,错误的划上“×”,并改正错误。每题2分,共10分)
1、        MOV  A        L,512                                                                                        (                )

2、        SAL                BX,                2                                                                                (                )

3、        OR        AX,                504H        AND        208H                                                (                )
4、        MOV        DS,        0200H                                                                                (                )

5、        ADD                AX, BX [SI]                                                                                 (                )

四、写出下面程序段的运行结果或功能(每空2分,共10分)
13、        已知(SP)=100H,执行指令
POP                AX
PUSH        CX
PUSH        DX后,则(SP)=      
14、        已知(BX)= 128,执行指令
DEC                BX
MOV        AX,        BX
NEG                AX
INC                AX
ADD                BX,        AX        后
则(BX)=      (AX)=         
15、        执行指令
MOV        AL,        85H       
SUB                AL,        36H
DAS
MOV        BH,        AL
ADD                AL,        36H后
则(AL)=                   (BH)=  _________
五、        指令理解题(每小题2分,共10分)
                已知(AX)=C376H, (BX) = 0002H, (SI) = 4400H, (DI)=2300H, DS = ES =SS =6600H, (SP) = 4400H,(64400H)=A2H, (64401H)= 71H,(64402H) = 00H, (64403H) =F3H, CF = 1, DF=1。写出下列指令单独执行后有关寄存器和存储单元的值,并指出是否影响标志SF、ZF、CF、OF,若影响须写出标志值。
                1、ADC                AL, [4400H]
                2、OR AL, [BX + SI – 1]
3、        MOVSW               
4、        NEG  BYTE  PTR[SI]
5、        CALL  BX(段内间接调用)

六、编程(30分)
1、        试编写一汇编程序段,完成下面数学表达式的功能。(8分)
W = X + Y – Z (W, X, Y, Z均为双字变量)


2、        设在数据段,附加段,和堆栈段中,分别定义了字变量X、Y、Z,试编制一完整的汇编语言程序,计算:W = X +Y +Z (设X= 0250H, Y = 0660H, Z = 0320H).(10分)

3、        设有字节型数据76H, -23H, 15,-17, -36,45,……,试编写一完整的汇编语言程序,将其中的负数变为对应的正数,并放回原存储单元中。(12分)


参考资料:
电子科技大学网络教育学院
汇编语言程序设计  模拟试卷2(120分钟) 考试日期   年  月  日
一        二        三        四        五        六        七        八        九        十        总分        评卷老师
                                                                                       

十二、        填空(每空1分,共20分)。
1、        在PC系列微机钟,从00000H至003FFH哦内存中存放着_中断向量表_______。
2、        设堆栈指针(SP)= 2200H,此时若将AF、AX、BX、CX依次压入堆栈后,(SP)=21F8H。
3、        8086/8088CPU寻址外设端口的两种寻址方式为直接寻址和间接端口寻址。
4、        凡地址能被16整除的单元可定义为段的起始单元。
5、        程序段   MOV  AL,64H
                        MOV  BL,-1
                        CMP  AL,BL
                        ADD  AL,AL
执行后,(AL)=C8H,(BL)=0FFH,CF=0。
6、        程序段
MOV        AL,        40H
ADD        AL,        AL
ADC        AL,        AL
ADC        AL,        AL
执行后,(AL)=01H,        CF=0。
7、        在8086/8088CPU串操作寻址中,隐含使用变址寄存器SI、DI。若DF=0时,SI、DI自动增量,否则自动减量。
8、        在8086/8088CPU基址变址寻址操作中,当基址寄存器选用BP时,隐含使用的段寄存器是SS,当选用BX时,隐含使用的段寄存器是DS。
9、        OFFSET用于获得一个变量或标号在其段内的偏移量。
10、        在8086/8088指令系统中,组合型BCD码是一个字节表示两个BCD码,非组合型BCD码是一个字节的低4位表示一个BCD码,高4位通常为0000或0011等。
11、        在用指令MUL进行字节乘法时,一个操作数隐含使用寄存器AL,运算所得结果隐含地存放在寄存器AX。
12、        执行CALL指令,对标志寄存器无影响。
13、        在编写子程序时,必须注意一个子程序执行的最后一条指令一定是还回指令RET,用以还回到调用该子程序的断点处。
十三、        单项选择题(每空1分,共20分)
1、        二进制数1000 0000为带符号的补码时,表示A.
        A.-128                B.-0                C.-127                D.128
2、        在计算机内,字符均用ASCII码表示,一个字符在存储器中占用B
A.4BIT                B.1个字节                C.一个字                D.一个双字
3、        在计算机内,机器数均用C来表示
A.原码                B.反码                C.补码                D.ASCII码
4、        BCD码是二进制编码的十进制数,一个16位的十进制数哦非组合BCD码在机内要占用B个字节单元
A.4                B.8                C.16                        D.32
5、        8086CPU产生存储单元的物理地址是由B组合产生的
A.CS和IP        B.段基址和偏移地址        C.SS和SP        D.有效地址和相对地址
6、        标志位D用于控制串操作的方向(增量或减量)
        A.AF                B.PF                C.IF                D.DF
7、        8086CPU访问(读/写)一次存储器或I/O接口所用的时间,称为一个C
A.基本指令执行时间                B.时钟周期        C.总线周期        D.指令周期
8、        8086的基本总线周期长度是D(不含等待)
A.3T                B.TI                C.一个指令周期                D.4T
9、        8086CPU寻址I/O端口是,若要访问1024个字节端口或512个字节端口时,至少要使用C根地址线
A.4                B.8                C.10                D.16
        10、指令PUSH        DS的目的操作数是D寻址方式
A.寄存器                B.寄存器间接                        C.直接                D.隐含(固定)
        11、已知(SI)=0004H, (DS)=8000H, (80004H)=02H, (80005H)=C3H,指令LEA        AX, [SI]执行后,(AX)=B
                A.0002H                B.0004H                C.02H                D.C302H
        12、已知(AL0=A3H, 指令CBW执行后,(AX)=B
                A.00A3H                B.FFA3H                C.0FA3H                D.A300H
        13、D是一种能被计算机识别和执行的语言
                A.汇编语言                B.高级语言                C.算法语言                D.机器语言
        14、八位微计算机用补码所能表示的数的范围是A
        A.-128~127                B.-127~127                C.0~255                D.0~256
        15、八位微处理器的地址线AB为16条,则能组合成A种不同的地址码
        A.21  6          B. 21  6  - 1                C.21  5          D. 21  5  -1
        16、两个八位二进制数0000 0110和1111 1100相加,则C成立
E.        视为两个无符号数相加时,发生溢出,视为两个带符号数相加时,发生溢出
F.        视为两个无符号数相加时,不发生溢出,视为两个带符号数相加时,发生溢出
G.        视为两个无符号数相加时,发生溢出,视为两个带符号数相加时,不发生溢出
H.        视为两个无符号数相加时,不发生溢出,视为两个带符号数相加时,不发生溢出
17、8086CPU内部由两个独立的工作部件构成,它们是A
A.执行部件和总线接口部件                B.执行部件和地址、数据缓冲器
B.运算器和控制器                                C。运算器和寄存器阵列
18、已知(AL)=36H, (BL)=02H, 执行指令MUL BL后,AH和AL的值分别为B
A.(AH)=03H,  (AL)=2AH                        B.(AH)=00H,  (AL)=6CH
C.(AH)=FFH,  (AL)=6CH                        D.(AH)=03H,  (AL)=6CH
19、一个存储单元的实际地址为25342H,若其段首址为234E0H,则其段内偏移地址为B
A.1F41H        B.1F42H                C.5432H                D.01FAH
20、与DB  ‘A’, ‘B’等效的指令是(A)
A.DB  ‘BA’                B.DW  ‘BA’                C.DW  ‘AB’                D.DW ‘A’, ‘B’
十四、        判断改错题(判断正误,正确的划上“√”,错误的划上“×”,并改正错误。每题2分,共10分)
1、        MOV  A        L,512                                                                                        (        X        )

改:MOV  AX,258
2、        SAL                BX,                2                                                                                (        X        )

改:SAL                CL,                2
3、        OR        AX,                504H        AND        208H                                                (        √        )
4、        MOV        DS,        0200H                                                                                (        X        )

改:MOV        AX,        0200H
                MOV        DS,        AX
5、        ADD                AX, BX [SI]                                                                                 (        X        )
        改:ADD                AX, [BX] [SI]
四、写出下面程序段的运行结果或功能(每空2分,共10分)
16、        已知(SP)=100H,执行指令
POP                AX
PUSH        CX
PUSH        DX后,则(SP)=  0FEH     
17、        已知(BX)= 128,执行指令
DEC                BX
MOV        AX,        BX
NEG                AX
INC                AX
ADD                BX,        AX        后
则(BX)=  0001H    (AX)=  FF82H       
18、        执行指令
MOV        AL,        85H       
SUB                AL,        36H
DAS
MOV        BH,        AL
ADD                AL,        36H后
则(AL)=  7FH                 (BH)=  49H
六、        指令理解题(每小题2分,共10分)
                已知(AX)=C376H, (BX) = 0002H, (SI) = 4400H, (DI)=2300H, DS = ES =SS =6600H, (SP) = 4400H,(64400H)=A2H, (64401H)= 71H,(64402H) = 00H, (64403H) =F3H, CF = 1, DF=1。写出下列指令单独执行后有关寄存器和存储单元的值,并指出是否影响标志SF、ZF、CF、OF,若影响须写出标志值。
                1、ADC                AL, [4400H]

资料:
                AL = 18H,  DS=6000H, SF = 0, ZF = 0, CF = 1

                2、OR AL, [BX + SI – 1]

资料:
                AL = 77H,  DS=6000H, (64401H) = 71H,  BX = 0002H,  SI = 4400H,
SF = 0, ZF = 0, CF = 0, OF = 0

6、        MOVSW

                资料:DS = 6000H, SI =43FEH, DL=22F3H, [64400H] = 0A21H, [64401H] = 71H,
[62300H] = 0A2H, [62301H] = 71H,
对标志位无影响

7、        NEG  BYTE  PTR[SI]

资料:[64400H] = 5EH, SI=0, SI=4400H,  
CF = 1, ZF = 0, OF = 0,

8、        CALL  BX(段内间接调用)

资料:BX = 0002H
SS = 6000H
SP = 43FEH
IP = 0002H
对标志位无影响

六、编程(30分)
4、        试编写一汇编程序段,完成下面数学表达式的功能。(8分)
W = X + Y – Z (W, X, Y, Z均为双字变量)

资料:
MOV        AX, X
ADD                AX, Y
MOV        BX, X + 2
ADC                BX, Y + 2
SUB                AX, Z
SBB                BX, Z + 2
MOV        W, AX
MOV        W + 2, BX

5、        设在数据段,附加段,和堆栈段中,分别定义了字变量X、Y、Z,试编制一完整的汇编语言程序,计算:W = X +Y +Z (设X= 0250H, Y = 0660H, Z = 0320H).(10分)

资料:
TITLE        CALCULATE         W  = X +Y +Z
DATA        SEGMENT
        X                DW                0250H
W                DW                ?
DATA        ENDS
STACK        SEGMENT  PARA  STACK ‘stack’
Z                DW                0320H
                        DB                100 DUP(?)
STACK        ENDS       
EXTRA        SEGMENT
Y                DW                0660H       
EXTRA  ENDS
CODE        SEGMENT
                ASSUME        CS:CODE, DSATA, ES:EXTRA, SS:STACK
BEGIN:        MOV        AX, DATA
                MOV        DS, AX
                MOV        AX, ERTRA
                MOV        ES, AX
                MOV        AX, X
                ADD        AX, ES:Y
                ADD        AX, SS:Z
                MOV        W, AX
                MOV        AH, 4CH
                INT                21H
CODE ENDS
                END BEGIN

6、        设有字节型数据76H, -23H, 15,-17, -36,45,……,试编写一完整的汇编语言程序,将其中的负数变为对应的正数,并放回原存储单元中。(12分)

资料:
TITLE  CHANGE CERTAIN NUMBER
DATA        SEGMENT
NUM        DB                76H, -23H, 15,-17, -36,45,……
LEN                EQU $ -NUM
DATA        ENDS
STACK        SEGMENT  PARA  STACK ‘stack’
                        DB                100 DUP(?)
STACK        ENDS       
CODE        SEGMENT
                ASSUME        CS:CODE, DSATA, SS:STACK
BEGIN:        MOV        AX, DATA
                MOV        DS, AX
                MOV        CX, LEN
                LEA                SI, NUM
        L1:        MOV        AL, [SI]
                OR                AL, AL
                JNS                L2
                NEG         AL
                MOV        [SI], AL
        L2:        INC                SI
                DEC        CX
                JNZ                L1
                MOV        AH, 4CH
                INT                21H
CODE ENDS
                END BEGIN




电子科技大学网络教育学院
汇编语言程序设计  模拟试卷3(120分钟) 考试日期   年  月  日
一        二        三        四        五        六        七        八        九        十        总分        评卷老师
                                                                                       

十五、        填空(20分),每空1分。
1、        当由逻辑地址转换为物理地址时,是将段寄存器的内容左移(         )位,再加上偏移量形成(                )位的物理地址。
2、        实现对一个字节/字的数求反用指令(                        )。
3、        设JMP指令的段内直接寻址的目标代码为二字节长,该指令首字节偏移量为200H,那么正的相对转移能到达的最远的偏移量是(                ),负的相对转移能到达的最远的偏移量是(                )。
4、        表示宏定义结束和重复汇编结束是用伪指令(                )实现。
5、        在debug状态下装入可执行文件后,程序的目标代码和数据已全部送入内存指定单元,此时DS、ES将指向(          )。
6、        写出下列指令中存储器操作数的物理地址计算表达式:
(1)MOV        AL, [SI]                
则_________
(2) SUB        40H[BX],AX               
则_________
(3) INC SS: 5[BX][SI]               
则___________
7、        在8086/8088CPU中,可用与作地址指针的寄存器有(          ), (        ), (          ), (                )和 DI。
8、        8086/8088在程序中表达一个存储单元地址是用逻辑地址,逻辑地址是由(  )和 ( )两部分组成。
9、        若CS =5200H,某条指令第一字节物理地址为5A230H,当CS=7800H时,该条指令第一字节物理地址是( )。
10、输入输出的控制方式有(                )、(        )、(                )。
十六、        单项选择题(20分)
1、        执行下列指令时,需要使用段寄存器DS的是(          )
        A.PUSHF                B.MOV [BX], AX                C.SAHF                D.MOV [BP], CX
2、        设SP=F000H, BH = 20H, BL = 08H, 执行PUSH  BX指令后(   )
i.        SP = 0F002H, (0F001H) = 20H, (0F002H) = 08H
ii.        SP = 0EFFEH, (0EFFFH) = 08H, (0EFFEH) = 20H
iii.        SP = 0EFFFH, (0F000H) = 20H, (0F002H) = 08H
iv.        SP = 0EFFEH, (0EFFFH) = 20H, (0EFFEH) = 08H
3、        下列语句有语法错误的语句是(  )
i.        MOV  AX, [BX][BP]
ii.        ADD  AX, [BX]
iii.        CMP   [BX], 0FH
iv.        LEA   SI,20H[BX]
4、        在取MOV        BX, 0123H 指令的源操作数时,使用的逻辑地址是(  )
        A.无                B.DS:0123H                C.CS:IP                        D.ES:0123H
5、        两个非组合型BCD码数据相减后,执行减法校正指令AAS时,首先检查是否需要校正。需要校正的条件有(  )
i.        AL中的数>9, 且AF = 1
ii.        AL中低四位的数>9, 且AF = 1
iii.        AL中的数>9, 或AF = 1
iv.        AL中低四位的数>9, 或AF = 1
6、        用REPNE CMPSB指令作两个字符串比较时,如果CX≠0,比较结束,原因是(  )
i.        两字符串相等               
ii.        两字符串不等
iii.        两字符串长度不等
iv.        两字符串大小不同
7、        CPU响应可屏蔽中断请求是通过(  )引脚发出两个负脉冲通知外设。
        A.NMI                B.RESET                  C.ALE                D.INTR
8、        下列寄存器中在段内寻址时可以提供偏移地址的是(  )
i.        AX, BX, CX, DX
ii.        BP, BX, SI, DI
iii.        SP, IP
iv.        CS,SS,DS,ES
9、        下列地址可以做为一个段的起始地址的是(  )
i.        01234H
ii.        0FFF68H
iii.        8E476H
iv.        46560H
        10、下列指令中操作数在代码段中的是(         )
A.INC  [BX]          B.ADD  AH, BL           C.MOV  AL, 25H          D.CMP AX, 20H[SI]
        11、有数据定义伪指令DB 10H  DUP(4, 2DUP(2))所定义的数据单元中有数据‘0402H’的字存储单元的个数是(  )
                A.10H                B.08H                C.0EH                D.0FH
        12、在中断向量表中,以地址34H为首地址的连续四个字节单元中放有一中断处理程序入口地址,它所对应的中断源的中断类型号为(  )
                A.4                B.13                C.21                D.45
        13、8088的F寄存器包含几个标志位(  )
                A.9                B.7                C.5                D.8
        14、从键盘输入的数据,通常是以什么数制或代码表示的(  )
                A.二进制                B.十六进制                C.ASCII        码        D.八进制
        15、8088中那些寄存器不可以进行数据传送(  )
                A.SI, DI         B. FLAG, IP                C.IP, CS          D.BP,SP
        16、在堆栈操作中,隐含使用的通用寄存器是(  )
I.        SI   B.BP   C. IP  D.SP
17、执行指令序列
        MOV        AL, 82H
        CBW
        后,则结果是(    )
        A.AX = 0FF82H                B.AL = 82H,AH中内容不变
        C.AX = 0082H                C.AX = 0F8CH
18、串传送指令MOVS的源操作数和目的操作数可来自(     )
A.        源操作数来自DS:[SI],目的操作数来自ES:[DI]
B.        源操作数来自DS:[SI],目的操作数来自DS:[DI]
C.        源操作数来自ES:[SI],目的操作数来自ES:[DI]
        D. 源操作数来自DS:[SI],目的操作数来自SS:[DI]                       
19、IF标志位的复位或置位,只影响CPU对(    )
        A.NMI           B.单步中断                C.内部中断                D.INTR
20、条件转移类指令的跳转距离范围是(   )字节
        A.1~256                B.-128~127                C.-127~127                D.-127~128
十七、        判断题(判断正误,正确的划上“√”,错误的划上“×”。每题1分,共10分)
1、        8088是16位微处理器                                                                                (                )
2、        物理地址是唯一代表存储空间中每个字节单元的地址                        (                )
3、        堆栈是以先进后出的方式工作的存储空间                                                (                )
4、        8088/8086只能用SP寻址堆栈段                                                                (                )
5、        汇编程序是把汇编语言编写的源程序翻译成可执行的目标程序          (                )
6、        伪指令是由汇编程序在汇编过程执行的指令                                        (                )
7、        -0的反码是0                                                                                        (                )
8、        有效地址是指内存中的实际地址                                                                (                )
9、        符号定义伪指令’EQU’和‘=’用法一样,没有区别                        (                )
10、        数据既可以从数据段中获取,也可以从其他任何段中获取                (                )       
四、读程序(共20分)
19、        说明下列程序段完成的功能
BEGIN:        IN        AL,        5FH
                        TEST        AL, 01H
                        JZ        L1
                        MOV        AH,        0
                        JMP                L2
L1:                MOV        AH,        OFFH
L2:                HLT
程序功能:___________________________(3分)


20、                …….
NUM        DW        Y1, Y2, Y3, Y4
                        ……
                        MOV        BX, OFFSET NUM
                        MOV        CH,        4
                        XOR        AX,        AX
        TABLE:        MOV        CL,        CH
                        MOV        DX,        [BX]
                        SHR                DX,        CL
                        ADD        AX,        DX
                        ADD        BX,        2
                        DEC        CH
                        JNZ                TABLE
                        ……..
        执行上述程序段后,(AX)=___________________ (3分)

21、        完成下列程序段,每空只填一条指令,使该程序段完成从端口300H输入2k字节数据到BUFFER开始的内存缓冲区中的功能。(每空1分,共2分)

                        MOV        BX, OFFSET BUFFER
                        MOV        CX, 0800H
                        MOV        DX, 300H
L1:                IN                AL,        DX
                        MOV        [BX], AL
                        ______________
                        ______________
                        JNZ                L1
                        HLT
22、        已知(DS) = 1250H, (BX)= 55H, (SI)= 46H, (125ABH) = 39BH, (125ADH) = 1210H,则
LDS                DI,        10H[BX][SI]
MOV        AL, 110H[DI]
上述两条语句执行后,(AL)=____________, (DI) = ____________(每空2分,共4分)
                       
23、        设伪指令定义如下,画出内存示意图。(5分)
BUF                DB                ?
                        DW                ‘AB’
                        DW                ‘C’
                        DW                1234H       
DB                ‘ABCD’
               
24、        …….
BUF                DB        01H
…….
XOR                AL,        AL
MOV        BL,        AL
SAL                AL, 1
ADD                AL,        BL       
XOR                AL,        0FFH       
HLT
则上述程序段执行后,(AL)=__________,        (BL)=__________,  (CF) =_______(每空1分,共3分)

六、编程(30分)
1、        编写一完整的汇编语言源程序,实现Z=(X + Y)/2。设X、Y、Z都在数据段,且设X=5AH,Y=35H。(12分)
2、        编制一完整的汇编语言源程序,将键盘输入的英文大写字母转换为小写字母并显示。(12分)
3、        下面程序段是把CHAR1中各小写字母分别转换为大写字母,并存放在CHAR2中。试把空白处填上适当的指令。(6分)

CHAR1                DB                ‘translation’
CHAR2                DB                $-CHAR1 DUP(?)
VAR                        DB                ‘A’,        ‘a’
                                ……..
                                MOV        AL,        VAR
                                _____(1)___________
                                LEA                SI,        CHAR1
                                LEA                DI,        CHAR2
                                MOV        CX,        LENGTH                CHAR2
                LOP:        MOV        AH,        [SI]
                                ______(2)___________
                                MOV        [DI],        AH
                                INC                SI
                                INC                DI
                                LOOP        LOP


参考资料:
电子科技大学网络教育学院
汇编语言程序设计  模拟试卷3(120分钟) 考试日期   年  月  日
一        二        三        四        五        六        七        八        九        十        总分        评卷老师
                                                                                       

十八、        填空(20分),每空1分。
1、        当由逻辑地址转换为物理地址时,是将段寄存器的内容左移(        4 )位,再加上偏移量形成(        20        )位的物理地址。
2、        实现对一个字节/字的数求反用指令(                NOT        )。
3、        设JMP指令的段内直接寻址的目标代码为二字节长,该指令首字节偏移量为200H,那么正的相对转移能到达的最远的偏移量是(        281H        ),负的相对转移能到达的最远的偏移量是(        182H        )。
4、        表示宏定义结束和重复汇编结束是用伪指令(        ENDM)实现。
5、        在debug状态下装入可执行文件后,程序的目标代码和数据已全部送入内存指定单元,此时DS、ES将指向( 程序段前缀的段基值 )。
6、        写出下列指令中存储器操作数的物理地址计算表达式:
(1)MOV        AL, [SI]                
则PA=DS * 16 + (SI)
(2) SUB        40H[BX],AX               
则PA=DS * 16 +(40H +BX)
(3) INC SS: 5[BX][SI]               
则PA =SS *16 +(5 +BX +SI)
7、        在8086/8088CPU中,可用与作地址指针的寄存器有( BX ), (BP), ( SP ), (SI)和 DI。
8、        8086/8088在程序中表达一个存储单元地址是用逻辑地址,逻辑地址是由( 段基址 )和 (偏移地址 )两部分组成。
9、        若CS =5200H,某条指令第一字节物理地址为5A230H,当CS=7800H时,该条指令第一字节物理地址是( 80230H)。
10、输入输出的控制方式有(程序控制)、(中断)、(DMA)。
十九、        单项选择题(20分)
1、        执行下列指令时,需要使用段寄存器DS的是( B )
        A.PUSHF                B.MOV [BX], AX                C.SAHF                D.MOV [BP], CX
2、        设SP=F000H, BH = 20H, BL = 08H, 执行PUSH  BX指令后(  D )
i.        SP = 0F002H, (0F001H) = 20H, (0F002H) = 08H
ii.        SP = 0EFFEH, (0EFFFH) = 08H, (0EFFEH) = 20H
iii.        SP = 0EFFFH, (0F000H) = 20H, (0F002H) = 08H
iv.        SP = 0EFFEH, (0EFFFH) = 20H, (0EFFEH) = 08H
3、        下列语句有语法错误的语句是( A )
i.        MOV  AX, [BX][BP]
ii.        ADD  AX, [BX]
iii.        CMP   [BX], 0FH
iv.        LEA   SI,20H[BX]
4、        在取MOV        BX, 0123H 指令的源操作数时,使用的逻辑地址是( C )
        A.无                B.DS:0123H                C.CS:IP                        D.ES:0123H
5、        两个非组合型BCD码数据相减后,执行减法校正指令AAS时,首先检查是否需要校正。需要校正的条件有( D )
i.        AL中的数>9, 且AF = 1
ii.        AL中低四位的数>9, 且AF = 1
iii.        AL中的数>9, 或AF = 1
iv.        AL中低四位的数>9, 或AF = 1
6、        用REPNE CMPSB指令作两个字符串比较时,如果CX≠0,比较结束,原因是( A )
i.        两字符串相等               
ii.        两字符串不等
iii.        两字符串长度不等
iv.        两字符串大小不同
7、        CPU响应可屏蔽中断请求是通过( D )引脚发出两个负脉冲通知外设。
        A.NMI                B.RESET                  C.ALE                D.INTR
8、        下列寄存器中在段内寻址时可以提供偏移地址的是( B )
i.        AX, BX, CX, DX
ii.        BP, BX, SI, DI
iii.        SP, IP
iv.        CS,SS,DS,ES
9、        下列地址可以做为一个段的起始地址的是( D )
i.        01234H
ii.        0FFF68H
iii.        8E476H
iv.        46560H
        10、下列指令中操作数在代码段中的是( C        )
A.INC  [BX]          B.ADD  AH, BL           C.MOV  AL, 25H          D.CMP AX, 20H[SI]
        11、有数据定义伪指令DB 10H  DUP(4, 2DUP(2))所定义的数据单元中有数据‘0402H’的字存储单元的个数是( D )
                A.10H                B.08H                C.0EH                D.0FH
        12、在中断向量表中,以地址34H为首地址的连续四个字节单元中放有一中断处理程序入口地址,它所对应的中断源的中断类型号为( B )
                A.4                B.13                C.21                D.45
        13、8088的F寄存器包含几个标志位( A )
                A.9                B.7                C.5                D.8
        14、从键盘输入的数据,通常是以什么数制或代码表示的( C )
                A.二进制                B.十六进制                C.ASCII        码        D.八进制
        15、8088中那些寄存器不可以进行数据传送( C )
                A.SI, DI         B. FLAG, IP                C.IP, CS          D.BP,SP
        16、在堆栈操作中,隐含使用的通用寄存器是( D )
J.        SI   B.BP   C. IP  D.SP
17、执行指令序列
        MOV        AL, 82H
        CBW
        后,则结果是(  A  )
        A.AX = 0FF82H                B.AL = 82H,AH中内容不变
        C.AX = 0082H                C.AX = 0F8CH
18、串传送指令MOVS的源操作数和目的操作数可来自(   A  )
D.        源操作数来自DS:[SI],目的操作数来自ES:[DI]
E.        源操作数来自DS:[SI],目的操作数来自DS:[DI]
F.        源操作数来自ES:[SI],目的操作数来自ES:[DI]
        D. 源操作数来自DS:[SI],目的操作数来自SS:[DI]                       
19、IF标志位的复位或置位,只影响CPU对(  D  )
        A.NMI           B.单步中断                C.内部中断                D.INTR
20、条件转移类指令的跳转距离范围是(  B )字节
        A.1~256                B.-128~127                C.-127~127                D.-127~128
二十、        判断题(判断正误,正确的划上“√”,错误的划上“×”。每题1分,共10分)
1、        8088是16位微处理器                                                                                (        X        )
2、        物理地址是唯一代表存储空间中每个字节单元的地址                        (        √        )
3、        堆栈是以先进后出的方式工作的存储空间                                                (        √        )
4、        8088/8086只能用SP寻址堆栈段                                                                (        X        )
5、        汇编程序是把汇编语言编写的源程序翻译成可执行的目标程序          (        X        )
6、        伪指令是由汇编程序在汇编过程执行的指令                                        (        √        )
7、        -0的反码是0                                                                                        (        X        )
8、        有效地址是指内存中的实际地址                                                                (        X        )
9、        符号定义伪指令’EQU’和‘=’用法一样,没有区别                        (        X        )
10、        数据既可以从数据段中获取,也可以从其他任何段中获取                (        √        )       
四、读程序(共20分)
25、        说明下列程序段完成的功能
BEGIN:        IN        AL,        5FH
                        TEST        AL, 01H
                        JZ        L1
                        MOV        AH,        0
                        JMP                L2
L1:                MOV        AH,        OFFH
L2:                HLT
程序功能:___________________________(3分)

资料:输入5FH端口的内容到AL寄存器,判断其奇偶性。如果为奇数,AH寄存器置0;如果为偶数,AH寄存器置0FFH。

26、                …….
NUM        DW        Y1, Y2, Y3, Y4
                        ……
                        MOV        BX, OFFSET NUM
                        MOV        CH,        4
                        XOR        AX,        AX
        TABLE:        MOV        CL,        CH
                        MOV        DX,        [BX]
                        SHR                DX,        CL
                        ADD        AX,        DX
                        ADD        BX,        2
                        DEC        CH
                        JNZ                TABLE
                        ……..
        执行上述程序段后,(AX)=___________________ (3分)

资料:(AX) = Y1/16 + Y2/8 + Y3/4 + Y4/2

27、        完成下列程序段,每空只填一条指令,使该程序段完成从端口300H输入2k字节数据到BUFFER开始的内存缓冲区中的功能。(每空1分,共2分)

                        MOV        BX, OFFSET BUFFER
                        MOV        CX, 0800H
                        MOV        DX, 300H
L1:                IN                AL,        DX
                        MOV        [BX], AL
                        INC                BX
                        DEC        CX
                        JNZ                L1
                        HLT
28、        已知(DS) = 1250H, (BX)= 55H, (SI)= 46H, (125ABH) = 39BH, (125ADH) = 1210H,则
LDS                DI,        10H[BX][SI]
MOV        AL, 110H[DI]
上述两条语句执行后,(AL)=____________, (DI) = ____________(每空2分,共4分)
       
                资料:(AL)= 9BH, (DI) = 039BH
29、        设伪指令定义如下,画出内存示意图。(5分)
BUF                DB                ?
                        DW                ‘AB’
                        DW                ‘C’
                        DW                1234H       
DB                ‘ABCD’
               
       

‘B’
‘A’
‘C’
00H
34H
12H
‘A’
‘B’
‘C’
‘D’

                资料:BUF       













30、        …….
BUF                DB        01H
…….
XOR                AL,        AL
MOV        BL,        AL
SAL                AL, 1
ADD                AL,        BL       
XOR                AL,        0FFH       
HLT
则上述程序段执行后,(AL)=__________,        (BL)=__________,  (CF) =_______(每空1分,共3分)

        资料:(AL)=OFCH,        (BL) = 01H,        (CF) = 0

六、编程(30分)
1、编写一完整的汇编语言源程序,实现Z=(X + Y)/2。设X、Y、Z都在数据段,且设X=5AH,Y=35H。(12分)

资料:
        TITLE        CALCULATE         Z=(X + Y)/2
DATA        SEGMENT
        X                DB                5AH
Y                DB                35H
Z                DB                ?
DATA        ENDS
CODE        SEGMENT
                ASSUME        CS:CODE, DSATA
START  PROC  FAR
BEGIN:        PUSH        DS
                MOV        AX,        0
                PUSH        AX
MOV        AX, DATA
                MOV        DS, AX               
                MOV        AL, X
                ADD        AL, Y
                MOV        AH, 0
ADC        AH, 00H
MOV        BL,        02H
DIV                BL
MOV        Z,        AL
RET               
START ENDP
CODE ENDS
                END BEGIN

2、        编制一完整的汇编语言源程序,将键盘输入的英文大写字母转换为小写字母并显示。(12分)

资料:
DATA        SEGMENT
BUF                DB                50 DUP(‘’)
DATA        ENDS
CODE        SEGMENT
                ASSUME        CS:CODE, DSATA
BEGIN:        MOV        AX, DATA
                MOV        DS, AX
                MOV        BX, OFFSET  BUF
L1:        MOV        AH, 1
        INT                21H
        CMP        AL, ‘A’
        JB                L1
        CMP        AL, ‘Z’
        JA                L1
        ADD        AL,        20H
        MOV        DL,        AL
        MOV        AH,        2
        INT                21H
        JMP                L1
        MOV        AH,        4CH       
        INT                21H               
CODE ENDS
                END BEGIN

3、        下面程序段是把CHAR1中各小写字母分别转换为大写字母,并存放在CHAR2中。试把空白处填上适当的指令。(6分)

CHAR1                DB                ‘translation’
CHAR2                DB                $-CHAR1 DUP(?)
VAR                        DB                ‘A’,        ‘a’
                                ……..
                                MOV        AL,        VAR
                                _____(1)___________
                                LEA                SI,        CHAR1
                                LEA                DI,        CHAR2
                                MOV        CX,        LENGTH                CHAR2
                LOP:        MOV        AH,        [SI]
                                ______(2)___________
                                MOV        [DI],        AH
                                INC                SI
                                INC                DI
                                LOOP        LOP

资料:        (1)SUB        AL, VAR + 1
                        (2)ADD        AH,AL


久爱奥鹏网:www.92open.com
奥鹏作业答案,奥鹏在线作业答案
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

 
 
客服一
客服二
客服三
客服四
点这里给我发消息
点这里给我发消息
谋学网奥鹏同学群2
微信客服扫一扫

QQ|关于我们|联系方式|网站特点|加入VIP|加盟合作|投诉建议|法律申明|Archiver|小黑屋|奥鹏作业答案-谋学网 ( 湘ICP备2021015247号 )

GMT+8, 2025-2-3 10:05 , Processed in 0.109516 second(s), 19 queries .

Powered by Discuz! X3.5

Copyright © 2001-2025 Tencent Cloud.

快速回复 返回顶部 返回列表