源程序如下: MOV AH, 0 MOV AL, 9 MOV

题目

源程序如下: MOV AH, 0 MOV AL, 9 MOV BL, 8 ADD AL, BL AAA AAD DIV AL 结果AL为多少?AH为多少?BL为多少?

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下面两条指令执行后,(AH)=【 】,(AL)=0AH;

MOV AH, 10H

MOVAL,10


正确答案:0010000B即10H
0010000B即10H

第2题:

执行下列程序后

MOV AL,87

MOV CL,4

HOV AM,AL

AND AL,0FH

OR AL,30H

SHR AH, CL

OR AH,30H

上述程序段运行后,(AX)=______。


正确答案:3537H
3537H 解析:该程序将87的16进制数57H转换成对应的ASCII代码和37H存放在AH和 AL寄存器中,故AX中的内容是3537H。

第3题:

根据下面的汇编语言源程序,其运行结果是在屏幕上显示 。 DSEG SEGMENT DAT DB 0FFH N EQU 3 BUF DB 3 DUP(‘?’) DB ‘$’ DSEG ENDS SSEG SEGMENT STACK DB 256 DUP(0) SSEG ENDS CSEG SEGMENT ASSUME DS:DSEG,SS:SSEG,CS:CSEG START: MOV AX,DSEG MOV DS,AX MOV BX,OFFSET BUF MOV SI,N MOV AL,DAT MOV AH,0 MOV CX,10 NEXT: XOR DX,DX DIV CX ADD DL,30H ;形成ASCII码 DEC SI MOV [BX+SI],DL OR SI,SI JNE NEXT LEA DX,BUF MOV AH,9 INT 21H MOV AH,4CH INT 21H CSEG ENDS END START


正确答案:

 255

第4题:

执行下列程序段后 MOV AL,87 MOV CL, 4 MOV AH, AL AND AL,0FH OR AL, 30H SHR AH,CL OR AH,30H 则AX=( )H

A.3537

B.3735

C.0705

D.0507


正确答案:A
解析:该程序将87的十六进制值57转换成35H和37H,分别存放在AH和AL寄存器中。

第5题:

为了使下面的程序段能够正确执行45÷6的运算,应该在程序中填入的一条指令是( )。 MOV AL, 45 MOV BL, 6 DIV BL

A.XOR AH,AH

B.CLC

C.MOV DX,0

D.MOV BH,0


正确答案:A
解析:这条指令的作用为使AH清零。

第6题:

执行下列程序段后

MOV AL,87

MOV CL,4

MOV AH,AL

AND AL,OFH

OR AL,30H

SHR AH,CL

OR AH,30H

写出AX=_______H。


正确答案:3537
3537

第7题:

下列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”的错误在于立即数不能作为目标操作数。

第8题:

当采用BIOS的中断14H进行异步串行端口设置时,表示对COM1设置的指令是( )

A.MOV AH,1

B.MOV AL,1

C.MOV DX,1

D.MOV DX,0


正确答案:D

第9题:

为了使下面的程序段能够正确执行45/6的运算,应该在程序①处填入指令( ) MOV AL,45 MOV BL,6 ① DIV BL

A.XOR AH,AH

B.CLC

C.MOV DX,0

D.MOV BH,0


正确答案:A
解析:DIV是除法指令,格式为:DIVsrc当src为字节操作数时,16位被除数字AX中,8位src为除数,结果为8位的商在AX中,8位余数字AH中。本题要求是让45除义6,而已经给出AL=45,则必须保证AH=0才能符合题目要求,所以在程序①处填入XORAH,AH。这句指令是使AH清零。

第10题:

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

  • A、SHR AL,l
  • B、MOV AL,64H
  • C、SHL AH,CL
  • D、MOV AL,BX

正确答案:D

更多相关问题