一 填空题 
1、程序可见寄存器分为___  ____  _____三类寄存器。
2、计算存储器地址时,用做基址寄存器的是_____
3、在I/O指令用_______寄存器来专门存放数据
4、在循环指令和串处理中_______用作隐含的寄存器使用
5、作双字长运算时,把_______和________组合在一起存放一个双字长数
6、 SP称为_______寄存器,用来指示________称为_______指针寄存器,它可以与_________段寄存器联用来确定堆栈段中的某一个存储单元的地址
7、SI作为隐含的_______寄存器,而DI作为隐含的________寄存器,SI和DI联用,达到_________寻址的目的,而DI和________段寄存器ES联用,达到________寻址的目的
8、IP为________寄存器,用来存放______段的偏移地址,在程序运行过程中,他始终指向_______指令的________它与段寄存器CS联用确定________的__________
9、SP为________,它与堆栈段寄存器_________联用来确定堆栈段中________的地址,也就是说SP用来存放________的偏移地址
10、OF为溢出标志,SF为__________,ZF为__________,CF为________
PF为_________
11、DF为____________位,在_________处理指令中控制处理信息的方向。DF=1,每次操作后是变地址寄存器___________,串处理从高地址向低地址方向处理。反之___________
12、开中断指令为_________,关中断指令为__________
13、存贮信息的基本单位是一个二进制位,存储器里以________为单位存储信息
14、实模式或保护模式
在1M的存储器里,每个存储单元都有唯一的_________位地址
15、掌握物理地址计算
16、接口原理及寄存器分类
17、第二章习题1,2,3,4,5,9
18、熟练掌握各寻址方式
19、________伪操作用来设置当前地址计数器的值
20、地址计数器$用来保存__________
21、回送变量或标号的_________值伪指令是__________
22、循环程序由________、________、________三部分组成
23、在段定义伪操作中,用来明确段与寄存器关系的伪操作是-________
24、在段定义中,段必须从页的边界开始的定义类型是_________
25、在段定义中,各同名段重复形成一个段,会产生覆盖的组合类型是________
26、在简化段定义中,应用程序最常用的一种存储模型是________
27、若用简化段定义,则数据段只用.data来定义,而并未给出段名,此时可用__________,___________两条指令将段名装入数据段寄存器
28、源程序结束时的伪操作命令是__________
29、________伪操作可指定列表文件的每一页上打印的标题
30、使用Link.exe生成可执行文件时,产生3种类文件,其扩展名为_______  ________  _________
32、堆栈指针寄存器SP=200H,当执行 CALL BX 指令后,SP的值=________。
33、文件的扩展名代表文件的属性,汇编语言源文件的属性扩展名必须为_______。
34、作为存储器操作数的变量或标号都有三种属性_________、_________和类型属性 。
35、8086有一个简单灵活的中断系统,它能处理_____种类型的中断,中断矢量表在内存中占____字节空间。
36、    当运算结果的最高位产生一个进位时,标志位______置1,而运算结果的最高位为1时_____标志位为1。
37、    方向标志位DF=1,将引起字符串指令按__________方向操作,使DF置1的指令是________________.
38、    汇编语言上机的步骤是____________、_____________、______________、_____________。
39、    利用DOS系统功能用在屏幕上显示':'的正确指令是_________、_______、INT 21H。
40、    在DEBUG中,D命令隐含使用的段寄存器是_________,而U命令隐含使用的________段寄存器。
41、AL=80H ,当执行指令NEG AL 后CF=_____,OF=_____.
二.单项选择 
 1.(0011 1001 0111)BCD码转换成十进制数为(    ) 
    A.919   B.383   C.793   D.397
 2.下列语句在存储器中为变量分配的字节数为 (    ) 
             NUM1 DW 2                                             
             BUF  DB 'OK!$'                                            
             COUNT EQU $-BUF                                        
             NUM2 DW COUNT DUP (?)                                   
             NUM3 DB 3,4,4 DUP(0)                    
    A.18    B.24    C.20     D.22                  
3.指令TEST AL,[BX] 中源操作数的寻址方式是(    )
   A. 寄存器寻址    B. 基址寻址 C. 寄存器间接寻址   D.直接寻址
4.源程序经过MASM汇编后可产生下列哪些文件?  (    )
    A.~.OBJ    B.~.EXE   C.~.OBJ   D.~.OBJ
      ~.MAP      ~.CRF     ~.CRF     ~.MAP
      ~.CRF      ~.LST     ~.LST     ~.LIB
5.当段的定位类型为PARA时,它对起始地址边界的要求是  (    )
   A. 字节     B. 字    C. 节     D.页
6.假定(DL)=0C6H ,(CL)=2,(CF)=1,执行RCL DL,CL指令后,DL中的值是 (     )
    A.1BH           B. 18H        C.0C6H      D.0B9H         
7.假设(BX)=0F3H,变量VALE中存放的内容是79H,执行XOR BX,VALE指令后BX的内容是    (    )
    A. 0F3H          B.  79H     C. 8AH    D.75H  
8.段间间接转移指令的指令格式为 (     )
    A. JMP WORD PRT [BX]     B.JMP DWORD  PTR [BX] 
    C. JMP SHORT TABLE       D.JMP FAR PTR TABLE
9.如某存储器分段时,一个段最多允许16K字节单元,则表示一个段内偏移地址的二进制位数至少是(  )位? 
A.14 B.15 C.16 D.17                 
10.下列指令执行后能使BX中的数据必为奇数的是(     )
   A. XOR BX,01H  B. OR BX,01H  C. AND BX,01H   D. TEST BX,01H
二、根据要求,写出对应指令
1、将数据段DATA的段基址送段寄存器DS(2分)
2、将TABLE表的首地址(偏移量送BX)
3、将堆栈段中有效地址为(SP)+(SI)+位移量Y的存储单元内容送给AX寄存器
4、将AX寄存器中内容压入堆栈
5、将SP指向堆栈的内容弹出给AX
6、交换AX,BX的值
7、将接口单元中地址为20H的值送入 
8、将数据20H送给接口中地址为20H的存储单元
9、将标志送AH 
10、AH送标志寄存器
11、AX与BX内容相加,结果送BX
12、AX与[2000H]单元内容相加,结果送[2000H]
13、AX内容加1
14、(AX)+(BX)+(CF)送(BX)
15、(AX)-(BX)送(AX)
16、(AX)-(BX)-(CF)送(AX)
17、(AX)内容减1
18、对(AX)内容求补
19、(AL)*(BL)送(AX)
20、(AX)*(BX)送(DX;AX)
21、(AL)^OBF送(AL)
22、(AL)νOBF送(AL)
23、(AL)内容取反
24、(同21),AL内容不变
25、AL中内容循环(逻左   逻右   1次)
26、段内无条件短转移至标号为X1的指令
三、根据要求,写出完成下列功能的指令串。
1、将接口单元0398中的内容与BX相加后并送至对应接口单元
2、将(AL)中的内容与BX相加送到0399单元
3、输入a,b两字母,并根据输入显示对应的大写字母‘A’‘B’
4、将中断处理程序X1的中断向量写入中断类型号为0CH的中断
5、将字符串‘abcde’显示出来
6、把(AX)中的数据以二进制数显示出来。
7、将AL中的8位数据从245H端口输出。
8、置BL最高位为1。 
9、用循环结构形式计算20+21+22+…+26之和并将结果送AX
10、从端口21H输入数据存入21H单元。
11、单步标志TF是标志寄存器的第8位(从第0位开始),写出将TF置1的指令串。
四、改错题
1、AX和BX中存放无符号整数,将AX,BX中较小者送入DX中。
        CMP AX,BX
        JL  A1
        MOV DX,[BX]
    A1: MOV DX,[AX]
    A2: HLT
2、将100H:300H 和100H:400H 两内存字节单元内容互换。    
        MOV DS,100H
        XCHG [300H],[100H]

五、编程题
1、编程将一十进制数以十六进制数显示出来
2、通过键盘输入一行字符,以空格键结束
3、统计一字符串中字母‘a’的个数
4、编程求数组中的最小偶数,数组名为DATA
5、请编程从数据段一组无符号BCD码数据中,查找其中最大值并将其在屏幕上显示出来。
数据为: BUF DB 12H,32H,34H,24H,56H,35H,28H
6、编程从键盘输入一数字串,以空格作为结束标记,统计其中数字字符的个数存于并放于CX中,求这些数字之和放于BX中。 如输入:3153   结果: CX:04H BX:0CH