习题
一、选择题
1.下列描述正确的是_______。
A.汇编语言源程序可直接运行
B.汇编语言属于低级语言
C.汇编程序是用汇编语言编写的程序,运行速度高,阅读方便,属于面向用户的程序语言。
D.汇编语言可以移植
答案:B
2. 分析下面的程序,变量VAR2的偏移地址是______。
DATA  SEGMENT
      ORG 2
VAR1  DB  2,3,4
      ORG $+3
VAR2  DW 1234H
DATA  ENDS
A.02H        B.04H        C.05H        D.08H
答案:D
3.为了使MOV AX, VAR指令执行后,AX寄存器中的内容为4142H,下面哪一种数据定义会产生不正确的结果?
A.VAR DW 4142H        B.VAR DW 16706        C.VAR DB 42H, 41H    D.VAR DW ‘AB’
答案:C
4.下列伪指令中______是正确的。
A.ERR1:DW 99        B.ERR2 DB 25*60        C.COUNT EQU 20        D.ONE DB ONE
答案:C
5.执行下列指令后,寄存器CL的值是_______。
STR1    DW        ‘AB’
STR2    DB        16    DUP(?)
CNT        EQU    $-STR1
            MOV    CX,    CNT
            MOV    AX,    STR1
            HLT
A.10H        B.12H        C.0EH        D.0FH
答案:B
二、填空题
1.汇编语言的调试过程如下:建立以______为扩展名的源文件;生成以______为扩展名的目标文件;生成以______为扩展名的可执行文件;使用DEBUG调试程序,调试可执行目标程序。
答案:.asm  .obj  .exe
2.执行下列指令后,(AX)=______,(BL)=_______。
A    DW        ‘EF’
B    DB        ‘ABCDEF’
MOV    AX,    A
MOV    BL,    B[3]
HLT
答案:4546H        44H
3.执行下面程序段后,AL中的内容是______。
BUF        DW        1234H, 5678H, 0001H
MOV    BX,    OFFSET    BUF
MOV    AL,    2
XLAT
答案:78H
4.若符号定义语句如下,则L=_______。
BUF1    DB    1, 2, ‘12’
BUF2    DB    0
L        EQU    BUF2-BUF1
答案:4
5.执行下列程序段后,BX寄存器间址单元的内容是______。
ORG    1FFFH
DB    4FH, 50H, 51H
MOV    BX,    1FFFH
INC        [BX]
INC        BX
DEC    [BX]
答案:4FH
6.对于下面的数据定义,各条MOV指令单独执行后,请填充有关寄存器的内容:
TABLE1        DB    ?
TABLE2        DW    20 DUP(?)
TABLE3        DB    ‘ABCD’
......
    MOV    AX,        TYPE  TABLE1;        (AX)=___
    MOV    BX,        TYPE    TABLE2;        (BX)=____
    MOV    CX,        LENGTH      TABLE2;  (CX)=_____
    MOV    DX,        SIZE    TABLE2    ;    (DX)=_____
    MOV    SI,        LENGTH      TABLE3;  (SI)=_______
答案:1  2  20  40  1 
7.下面是多字节加法程序,第一个数是8A0BH,第二个数是D705H。请填写出正确结果。
DATA    SEGNEBT
FIRST    DB    _____, _____, 0H
SECOND    DB    _____,______
DATA    ENDS
CODE    SEGMENT
            ASSUME    CS:CODE, DS: DATA
START:    MOV    AX,    DATA
            MOV    DS,    AX
            MOV    CX,    _____
            MOV    SI,    0
汇编table指令什么意思
            _________
NEXT:    MOV    AL,    SECOND[SI]
            ADC    FIRST[SI],    AL
            INC        SI
            LOOP    NEXT
            MOV    AL,    0
            ADC    AL,    ______
            MOV    FIRST[SI],    AL
            MOV    AH,    4CH
            INT        21H
CODE    ENDS
            END    START
答案:0BH    8AH        05H        D7H        2        CLC        0
8.下面程序的功能是求有符号数中绝对值最小的数,并将最小绝对值存放在DAT2字节中,填空使程序正确实现此功能。程序执行后,DAT2单元中的内容是______。
DATA  SEGMENT
DAT1    DB    65H, 88H, 20H, 0F6H
N        EQU  $-DAT1
DAT2    DB  ?
DATA    ENDS
CODE    SEGMENT
    _________________
START:    MOV AX, DATA
        __________
        LEA  SI, DAT1
        MOV  CX, N-1
        MOV  AL, [SI]
        TEST  AL, 80H
        JZ  LP0
        NEG  AL
LP0:        MOV  DAT2, AL
LP1:        _________
        MOV  BL, [SI]
        TEST  BL, 80H
        JZ  LP2
        NEG  BL
LP2:        ________
        JB  LP3
        MOV  DAT2, BL
        MOV  AL, BL
LP3:        ________
        MOV  AH, 4CH
        INT 21H
CODE  ENDS
        END    START
答案:
ASSUME DS:DATA, SS:STACK, CS:CODE
MOV  DS, AX
INC  SI
CMP  DAT2, BL
LOOP  LP1
DAT2单元中的内容:0AH
9.填空说明在下列程序段执行过程中相应寄存器中的值。假设程序执行前DS=3000H,SS=2000H,SP=3000H,AX=4567H,BX=1234H,CX=6789H。
AND  BX, 00FFH
CALL  MYSUB
NOP        ;SP=________
            ;AX=_______
            ;BX=_______
HLT
MYSUB  PROC
        PUSH  AX
        PUSH  BX
        PUSH  CX
        SUB  AX, BX    ;SP=______
        POP  CX
        POP  AX
        POP  BX
        NOP            ;SP=______
        RET
MYSUB  ENDP
答案:3000H  1234H  4567H  2FF8H  2FFEH
10.完善程序。BUFFER单元开始放置一个数据块,BUFFER单元存放预计数据块的长度为20H,BUFFER+1单元存放的是实际从键盘输入的字符串的长度,从BUFFER+2开始存放的是从键盘接收的字符,请将这些从键盘接收的字符再在屏幕上显示出来。
MOV  DX, OFFSET BUFFER
MOV  AH, _______
INT  21H                ;读入字符串
LEA  DX, ______
MOV  AL, ______        ;实际读入的字符串的字符个数
MOV  AH, 0
ADD  DX, AX
MOV  AL, ____
MOV  [DX+1], AL
MOV  AH, _____
INC  DX                ;确定显示字符串的首址
INT  21H
MOV  AH, _____            ;系统返回DOS
INT  21H
答案:0AH  BUFFER+1  [DX]  '$'或24H  9  4CH
三、问答题
1.变量和标号有哪些属性?它们的区别是什么?
答案:变量、标号还有常量是汇编语言中使用的操作数,是3种基本的数据项。变量和标号都有段属性、偏移属性和类型属性3种属性,但含义不同。
变量通常指存放在存储单元中的值,在程序的运行中是可以修改的。所有的变量都具有3个属性。
(1)段属性:指变量所在段的段基址,此值必须在一个段寄存器中。
(2)偏移属性:指变量所在地址与所在段的段首地址之间的地址偏移字节数。
(3)类型属性:指变量中每个元素所包含的字节数。
标号是可执行指令语句的地址的符号表示,它可作为转移指令和调用指令CALL的目标操作数,以确定程序转向的目标地址,它也具有3个属性:
(1)段属性:指标号所在段的段基址。标号的段是它所出现的那个代码段,由CS指示。
(2)偏移属性:指标号所在地址与所在段的段首地址之间的地址偏移字节数。
(3)类型属性:标号的类型属性指在转移指令中标号可转移的距离,也称距离属性。NEAR和FAR
2.指出下列伪指令语句中的错误:
(1) DATA  DB 395
(2)PRGM  SEG
  ……
  PRGM  ENDS
(3)ALPHA EQU BETA
(4) COUNT EQU 100
  COUNT EQU 65
(5) GOON DW  10DUP(?)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。