微机原理及应用习题与答案

2007-11-15 02:16:05      
  •     (1) GET.DATA (2) 1_NUM (3) TEST-DATA (4) RET (5) NEW ITEM

        答案:

        非法标号: (1)因为'.'只允许是标号的第一个字符

        (2)第一个字符不能为数字

        (3)不允许出现'-'

        (4)不能是保留字,如助记符

        (5)不能有空格

        5. 下面的数据项定义了多少个字节?

        DATA_1 DB 6 DUP(4 DUP(0FFH))

        答案:

        24字节

        6. 对于下面两个数据段,偏移地址为10H和11H的两个字节中的数据是一样的吗?为什么?

        DTSEG SEGMENT | DTSEG SEGMENT

        ORG 10H | ORG 10H

        DATA1 DB 72H | DATA1 DW 7204H

        DB 04H | DTSEG ENDS

        DTSEG ENDS |

        答案:不一样. 分别是72H, 04H和04H, 72H. 存储字时低8位存在低字节,高8位存在高字节.

        7. 下面的数据项设置了多少个字节?

        (1) ASC_DATA DB '1234' (2) HEX_DATA DB 1234H

        答案: (1) 设置了4个字节 (2) 设置了2个字节

        8. 执行下列指令后, AX寄存器中的内容是什么?

        TABLE DW 10,20,30,40,50

        ENTRY DW 3

        .

        .

        .

        MOV BX,OFFSET TABLE

        ADD BX,ENTRY

        MOV AX,[BX]

        答案: (AX)=40

        9. 指出下列指令的错误:

        (1) MOV AH,BX (2) MOV [SI],[BX] (3) MOV AX,[SI][DI]

        (4) MOV AX,[BX][BP] (5) MOV [BX],ES:AX (6) MOV BYTE PTR[BX],1000

        (7) MOV AX,OFFSET [SI] (8) MOV CS,AX (9) MOV DS,BP

        答案: (1) 源、目的字长不一致

        (2) 源、目的不能同时为存贮器寻址方式

        (3) 基址变址方式不能有 SI和DI的组合

        (4) 基址变址方式不能有 BX和BP的组合

        (5) 在8086寻址方式中,AX不能作为基址寄存器使用,而且源、目的不能同时为存贮器寻址方式

        (6) 1000超出一个字节的表数范围

        (7) OFFSET只用于简单变量,应去掉

        (8) CS不能作为目的寄存器

        (9) 段地址不能直接送入数据段寄存器

        10. DATA SEGMENT

        TABLE_ADDR DW 1234H

        DATA ENDS

        MOV BX, TABLE_ADDR

        LEA BX, TABLE_ADDR

        请写出上述两条指令执行后, BX寄存器中的内容。

        答案:

        MOV BX,TABLE_ADDR ; 执行后(BX)=1234H

        LEA BX,TABLE_ADDR ; 执行后(BX)=OFFSET TABLE_ADDR

        11. 设(DS)=1B00H, (ES)=2B00H, 有关存储器地址及其内容如下图所示,请用两条指令把X装入AX寄存器。

        1B00:2000H 8000H

        1B00:2002H 2B00H

        .

        .

        2B00:8000H X

        答案:

        LES BX, [2000H]

        MOV AX, ES: [BX]

        12. 变量DATAX和DATAY定义如下:

        DATAX DW 0148H

        DW 2316H

        DATAY DW 0237H

        DW 4052H

        按下述要求写出指令序列:

        (1) DATAX和DATAY中的两个字数据相加, 和存放在DATAY和DATAY+2中。

        (2) DATAX和DATAY中的两个双字数据相加, 和存放在DATAY开始的字单元中。

        (3) DATAX和DATAY两个字数据相乘(用MUL)。

        (4) DATAX和DATAY两个双字数据相乘(用MUL)。

        (5) DATAX除以23(用DIV)。

        (6) DATAX双字除以字DATAY(用DIV)。

        答案:

        (1) MOV AX, DATAX

        ADD AX, DATAY

        MOV BX, DATAX+2

        ADD BX, DATAY+2

        MOV DATAY, AX

        MOV DATAY+2, BX

        (2) MOV AX, DATAX

        ADD DATAY, AX

        MOV AX, DATAX+2

        ADC DATAY+2, AX

        (3) MOV AX, DATAX

        MUL DATAY

发表评论/ 全部评论

  • 验证码:
  • 验证码:
  • 匿名发表:

推荐文章