更多“5、串行口的发送指令为 MOV A ,SBUF ,接收指令为 MOV SBUF, A .”相关问题
  • 第1题:

    下列MOV指令都是错误的,请指出错误原因。

    (1)MOV ES, 1234H

    (2)MOV AL, 300

    (3)MOV [SP], AX

    (4)MOV AX, BX+DI

    (5)MOV 20H, AH


    正确答案:(1)立即数不能直接赋给段寄存器。 (2)立即数300超过8位不能赋给8位寄存器AL。 (3)SP不能作为间接寻址寄存器寻址。 (4)两个寄存器不能相加。 (5)立即数不能作为目标操作数。
    (1)立即数不能直接赋给段寄存器。 (2)立即数300超过8位,不能赋给8位寄存器AL。 (3)SP不能作为间接寻址寄存器寻址。 (4)两个寄存器不能相加。 (5)立即数不能作为目标操作数。 解析:本问题主要考查汇编语言的基础知识。在8086的指令系统中,应用通用传送指令时,需要注意以下几点:
    传送指令可传送8位数据,也可传送16位数据,具体取决于指令中涉及的寄存器是8位还是16位,也取决于立即数的形式。
    传送指令中总是即含源操作数,又含目的操作数,两者之中至少有一个是用寄存器来指出的,这可减少指令长度。因此,一个立即数不能直接送直接寻址的内存单元。交换指令(XCHG)两个操作数都不能是立即数。
    传送指令不能在两个内存单元之间直接传送数据。
    在传送指令中,寄存器即可以作为源操作数,也可以作为目的操作数,但CS寄存器不能作为目的操作数,换句话说,这个寄存器的值不能随意修改。而IP寄存器即不能作源操作数,也不能作为目的操作数。
    用BX、SI、DI来间接寻址时,默认的段寄存器位DS,而用BP来间接寻址时,默认的段寄存器为SS。
    8086系统规定,凡是遇到给SS寄存器赋值的传送指令时,系统会自动禁止外部中断,等到本条指令和下条指令执行后,又自动恢复对SS寄存器赋值前的中断开放状态。这样做是为了允许程序员连续用两条指令分别对SS和SP寄存器赋值,同时又防止堆栈空间变动过程中出现中断。了解这点后,就应注意在修改SS和SP的指令之间不要插入其他指令。
    除了一些直接影响FLAGS的指令外,一般传送指令不改变标志寄存器的内容。
    立即数不能直接送段寄存器DS、ES以及SS,要用通用寄存器或存储单元作桥梁。
    因此,指令“MOVES,1234H”的错误在于立即数直接赋给了段寄存器;指令“MOV AL,300”的错误在于立即数300超过8位,不能赋给8位寄存器AL;指令“MOV[SP],AX”的错误在于SP不能作为间接寻址寄存器寻址:指令“MOV AX,BX+DI”的错误在于两个寄存器不能相加;指令“MOV 20H,AH”的错误在于立即数不能作为目标操作数。

  • 第2题:

    设变量PROTV保存的数据为6,汇编下面这条指令的结果为( )。 MOV AX,PROTV LT5

    A.MOV AX,0FFFFH

    B.MOV AX,0

    C.MOV BX,0FFFFH

    D.MOV AX,0


    正确答案:B

  • 第3题:

    下面数据传送指令中,正确的指令是______。

    A.MOV BUFl,BUF2

    B.MOV CS,AX

    C.MOV DX,WORDPTR[BP+DI]

    D.MOV AL,1000H


    正确答案:C
    解析:因为不允许存储器之间的数据传送,代码段寄存器CS不允许作操作数,所以选项A和B是错误的。AL为8位寄存器,而1000H为16位立即数,操作数类型不匹配,因此选项D也是错误的。

  • 第4题:

    设变量PR0TV保存的数据为6,汇编下面这条指令的结果为( )。 MOV AX,PROTV LT5

    A.MOV AX,0FFFFH

    B.MOV AX,0

    C.MOV BX,0FFFFH

    D.MOV AX,0


    正确答案:B

  • 第5题:

    下列指令正确的是()。

    • A、MOV CX,AL
    • B、MOV DS,200h
    • C、MOV DS,CS
    • D、MOV DS,AX

    正确答案:D

  • 第6题:

    指出下列指令中源操作数的寻址方式,并说明指令操作的结果。 (1)MOV  BX, ‘BC’  (2)MOV  AX, DATA  (3)MOV  DX, [BX]  (4)MOV  AL, [BX+DI]  (5)MOV  CL, LIST[BX]  (6)MOV  AX, FILE[BX+DI+200H]  (7)DAA  (8)XLAT  (9)IN  AX, DX  (10)INT  21H


    正确答案: (1)立即寻址。操作结果是把ASCII码CB(4342H)传送到BX.
    (2)使用AX的直接寻址。操作结果是把数据段存储单元DATA1与DATA1+1的字内容复制到AX中。
    (3)寄存器间接寻址。把数据段由BX间接寻址的存储单元的字内容复制到DX中。
    (4)基址加变址寻址的寻址方式。操作结果是把由BX+DI寻址的数据段存储单元的字的内容复制到AL。
    (5)寄存器相对寻址。操作结果是把数据段由LIST+BX寻址的字节内容送CL。
    (6)相对基址加变址的寻址方式。操作结果是把由BX+DI+200H寻址的数据段存储单元的字内容送入AX。
    (7)源操作数为寄存器(AL)寻址。它是把AL中的两位BCD码加法运算的结果调整为两位压缩型十进制数,仍保留在AL中。
    (8)源操作数为寄存器(BX)相对寻址。操作结果是把由BX+AL指定的内容表格中的字节代码内容送AL。
    (9)源操作数为寄存器(DX)间接寻址。它是把DX和DX+1所指定的两个端口地址的字的内容送入AX。
    (10)源操作数为直接寻址,直接寻址地址为21H×4, 21H×4+2。操作结果是把21H×4~21H×4+3内存单元中的双字分别送到IP与CS。

  • 第7题:

    分析下列指令的正误,对于错误的指令要说明原因并加以改正。 (1) MOV AH,BX (2) MOV [BX],[SI] (3) MOV AX,[SI][DI] (4) MOV MYDAT[BX][SI],ES:AX (5) MOV BYTE PTR[BX],1000 (6) MOV BX,OFFSET MAYDAT[SI] (7) MOV CS,AX (8) MOV DS,BP


    正确答案: (1)MOVAH,BX
    错误,寄存器类型不匹配,可改为MOVAX,BX
    (2)MOV[BX],[SI]
    错误,两个操作数不能都为存储单元,可改为MOVBX,[SI]或MOV[BX],SI
    (3)MOVAX,[SI][DI]
    错误,寻址方式中只能出现一个变址寄存器,可改为MOVAX,[BX][DI]。
    (4)MOVMYDAT[BX][SI],ES:AX
    错误,AX签不能有段跨越前缀,去掉ES:,改为MOVMYDAT[BX][SI],AX
    (5)MOVBYTEPTR[BX],1000
    错误,1000超出字节空间存储范围
    (6)MOVBX,OFFSETMAYDAT[SI];正确
    (7)MOVCS,AX
    错误,MOV指令CS不能做目的操作数,可改为MOVDS,AX
    (8)MOVDS,BP;正确

  • 第8题:

    完成同指令XCHG AX,BX相同功能的指令或指令序列是()。

    • A、MOV AX,BX
    • B、MOV BX,AX
    • C、PUSH AX POP BX
    • D、MOV CX,AX MOV AX,BX MOV BX,CX

    正确答案:D

  • 第9题:

    串行口缓冲寄存器SBUF是可直接寻址的专用寄存器。在物理上,它对应着两个寄存器,当执行指令()时,对接收寄存器进行操作。


    正确答案:MOV A,SBUF

  • 第10题:

    串行口数据缓冲器SBUF是可以直接寻址的()。


    正确答案:专用寄存器

  • 第11题:

    由于MCS-51单片机的串行口的数据发送和接收缓冲器都是SBUF,所以其串行口不能同时发送和接收数据,即不是全双工的串行口。


    正确答案:错误

  • 第12题:

    串行通信方式2或方式3发送时,指令把TB8位的状态送入发送SBUF中。


    正确答案:错误

  • 第13题:

    下面的数据传送指令中,正确的指令是______。

    A.MOV BUF2,BUF1

    B.MOV CS,DX

    C.MOV CL,1234H

    D.MOV DX,WORDPTR[BL+DH]


    正确答案:D
    解析:数据传送是一条双操作数指令,其源操作数和目的操作数都符合语法规定,因此前3条指令的错误原因是:A)不允许存储器之间的数据传送;B)代码段寄存器CS不允许作操作数,C)CL为8位寄存器,而1000H为16位立即数,因此错误原因是操作数类型不匹配。

  • 第14题:

    下列指令中,源操作数的寻址方式为相对基址变址寻址方式的指令是( )。

    A.MOV AX,COUNT[SI)

    B.MOV AX,[BX][DI]

    C.MVO AX,COUNT[BP][SI]

    D.MOV AX,[BX+DI]


    正确答案:C

  • 第15题:

    用MOV指令将十进制数89以组合型BCD码格式送入AX,正确使用的指令是( )。

    A.MOV AX,0890

    B.MOV AX,0809H

    C.MOV AX,0089H

    D.MOV AX,8009


    正确答案:C

  • 第16题:

    在下列四条指令中,错误的指令是()

    • A、MOV AX,1234H
    • B、MOV BX,[1234H]
    • C、MOV DS,AX
    • D、MOV 2000H,AX

    正确答案:D

  • 第17题:

    下列指令中错误指令是()

    • A、MOV AX,DS
    • B、MOV CS,1500H
    • C、MOV SI,BX
    • D、MOV [3000H],AL
    • E、MOV [DI+32H],[1845H]
    • F、MOV AL,1000H

    正确答案:B,E,F

  • 第18题:

    下列MOV指令中,不正确的指令是()。

    • A、MOV AX,BX
    • B、MOV AX,[BX]
    • C、MOV AX,CX
    • D、MOV AX,[CX]

    正确答案:D

  • 第19题:

    下列传送指令中,有错误的是()。

    • A、MOV AH,BL
    • B、MOV DS,AX
    • C、MOV CL,DX
    • D、MOV SI,90

    正确答案:C

  • 第20题:

    串行口数据寄存器SBUF有什么特点?


    正确答案:发送数据寄存器和接收数据寄存器合起用一个特殊功能寄存器SBUF(串行口数据寄存器),执行MOV SBUF,A发送时为发送数据寄存器,执行MOV A, SBUF接收时为接收数据寄存器。

  • 第21题:

    AT89S51单片机串行口接收/发送数据缓冲器都用SBUF,如果同时接收/发送数据时,是否会发生冲突?为什么?


    正确答案:不会发生冲突的。串口通信中,有两个缓冲寄存器SBUF,一个是发送寄存器,一个是接收寄存器,这两个寄存器在物理结构上是完全独立的。它们都是字节寻址的寄存器,字节地址均为99H。这个重叠的地址靠读/写指令区分:串行发送时,CPU向SBUF写入数据,此时99H表示发送SBUF;串行接收时,CPU从SBUF读出数据,此时99H表示接收SBUF。

  • 第22题:

    P1口地址为90H,执行下面指令或指令组合,(),两(组)指令执行结果一样。

    • A、 指令MOV  P1 @R1和指令组合MOV  A  R1   MOV  P1  A比较
    • B、 指令MOV  A  P1和指令组合MOV  R1  P1   MOV  A  @R1比较
    • C、 指令SETB  P1.7和指令组合MOV  A  #17H   ORL  P1  A比较
    • D、 指令MOV  P1  A和MOV  90H  A比较

    正确答案:D

  • 第23题:

    串行通讯发送时,指令把TB8位的状态送入发送SBUF。


    正确答案:正确

  • 第24题:

    通过串行口发送或接收数据时,在程序中应使用()

    • A、MOV指令
    • B、MOVX指令
    • C、MOVC指令
    • D、SWAP指令

    正确答案:A