已知DS= ES =1000H执行下列程序: MOV SI,101H MOV DI,100H MOV CX,4 LP1:MOV AL,[ SI] MOV[ DI] ,AL INC SI INC DI LOOP LP1 INT 3 DS:101H DB 69H,23H,56H,3AH 程序运行后结果为:(10100H)= ()H(10101H)= ()H(10102H)= ()H(10103H)= ()H

题目

已知DS= ES =1000H执行下列程序: MOV SI,101H MOV DI,100H MOV CX,4 LP1:MOV AL,[ SI] MOV[ DI] ,AL INC SI INC DI LOOP LP1 INT 3 DS:101H DB 69H,23H,56H,3AH 程序运行后结果为:(10100H)= ()H(10101H)= ()H(10102H)= ()H(10103H)= ()H


相似考题
更多“已知DS= ES =1000H执行下列程序: MOV SI,101H MOV DI,100H MOV CX,4 LP1:MOV AL,[ SI] MOV[ DI] ,AL INC SI INC DI LOOP LP1 INT 3 DS:101H DB 69H,23H,56H,3AH 程序运行后结果为:(10100H)= ()H(10101H)= ()H(10102H)= ()H(10103H)= ()H”相关问题
  • 第1题:

    下面有四条指令:

    ①MOV AL,[BX+SI+1AOH]

    ②MOV AL,80H[BX][DI]

    ③MOV AL,[BP+SI-0A0H]

    ④MOV AL,[BP]

    其中(DS)=0930H,(SS)=0915H,(SI)=0AOH,(DI)=ACOH,(BX)=80H,(BP)= 470H。试问哪些指令能在AL寄存器中获得相同的结果?( )

    A.仅①和②

    B.仅②和③

    C.仅③和④

    D.①、②、③、④


    正确答案:C
    解析:在第③中,MOVAL,[BP+SI-0A0H]就相当于MOVAL,[BP]因为SI=0A0H,BP+SI-0A0H=BP。所以第③和第④的作用是相同的,它们AL寄存器中获得的内容也是相同的,都是470H。选项C正确。

  • 第2题:

    对于下列程序段: AGAIN:MOV AL,[SI] MOV ES: [DI],AL INC SI INC DI LOOP AGAIN 也可用指令______完成同样的功能。

    A.REP MOVSB

    B.REPE SCASB

    C.REP STOSB

    D.REP LODSB


    正确答案:A
    解析:该段程序的功能是将以DS:DI指向下一字符串送到ES:DI指向的内存区,和REPMOVSB功能相同。

  • 第3题:

    已知DS=ES=2000H执行下列程序: MOV SI,301H MOV DI,300H MOV CX,4 CLD REP MOVSB INT 3 DS:301H DB 22H,33H,44H,55H 程序运行后结果为:(20300H)=()H(20301H)=()H (20302H)=()H(20303H)=()H


    正确答案:22H;33H;44H;55H

  • 第4题:

    指出下列指令中哪些是错误的,错在什么地方。  (1)MOV DL,AX  (2)MOV 8650H,AX  (3)MOV DS,0200H  (4)MOV [BX],[1200H]  (5)MOV IP,0FFH  (6)MOV [BX+SI+3],IP  (7)MOV AX,[BX][BP]  (8)MOV AL,ES:[BP]  (9)MOV DL,[SI][DI]  (10)MOV AX,OFFSET 0A20H  (11)MOV AL,OFFSET TABLE  (12)XCHG AL,50H  (13)IN BL,05H  (14)OUT AL,0FFEH


    正确答案:(1)长度不匹配
    (2)立即数不能做目的操作数
    (3)段寄存器不能用立即数赋值
    (4)两个内存单元不能直接传送数据
    (5)IP 不能用指令直接修改
    (6)指令中不能出现 IP
    (7)BX/BP 应与 SI/DI 搭配
    (8)正确
    (9)SI/DI 应与 BX/BP 搭配
    (10)OFFSET 后应跟内存单元
    (11)偏移地址为16 位,AL 长度不够
    (12)立即数不能用于XCHG
    (13)IN 必须用 AL/AX
    (14)操作数顺序反向;地址应为 8 位

  • 第5题:

    下列指令中合法的指令是()

    • A、MOV CX,SI
    • B、POP CL
    • C、MOV [SI+DI],AX
    • D、OUT 100H,AL

    正确答案:A

  • 第6题:

    分别说明下列指令的源操作数和目的操作数各采用什么寻址方式。  (1)MOV AX,2408H  (2)MOV CL,0FFH  (3)MOV BX,[SI]  (4)MOV 5[BX],BL  (5)MOV [BP+100H],AX  (6)MOV [BX+DI],’$’  (7)MOV DX,ES:[BX+SI]  (8)MOV VAL[BP+DI],DX  (9)IN AL,05H  (10)MOV DS,AX


    正确答案:(1)立即数,寄存器
    (2)立即数,寄存器
    (3)寄存器间接,寄存器
    (4)寄存器,寄存器相对
    (5)寄存器,寄存器相对
    (6)立即数,基址变址
    (7)基址变址,寄存器
    (8)寄存器,相对基址变址
    (9)直接端口寻址,寄存器
    (10)寄存器,寄存器

  • 第7题:

    阅读下面的程序,回答问题 DATA SEGMENT BUF DB '1234' N=$-BUF BCD DB N DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,BUF MOV CX,N LEA DI,BCD+N-1 LOOP1:MOV AL,[SI] SUB AL,30H MOV [DI],AL INC SI DEC DI DEC CX JNE LOOP1 MOV AH,4CH INT 21H CODE ENDS END START 如果将代码段中的指令LEA DI,BCD+N-1改成LEA DI,BCD;DEC DI改成INC DI,其它指令不变,程序执行后,从BCD开始的N个字节单元中的内容是什么?


    正确答案: 程序执行后,从BCD开始的N个字节单元中的内容是1234。

  • 第8题:

    判断下列指令是否正确。若不正确,指出错误原因。  (1)MOV AX, [EBX]  (2)MOV SI, DL  (3)MOV EBP, [ESP][EAX*3] (4)LEA AX, 3006H   (5)MOV [BP][DI], 0    (6)MOV [SI], [DI]   (7)MOV ES, 1000H   (8)MOV AX, X+2  (9)MOV AX, CX+2    (10)MOV [EAX][EAX*2], AL 


    正确答案: (1)指令MOV AX, [EBX]是正确的。
    (2)指令MOV SI, DL是错误的,两个操作数类型不匹配。
    (3)指令MOV EBP, [ESP][EAX*3] 是错误的,比例因子不能为3。
    (4)指令LEA AX, 3006H是错误的,LEA指令的源操作数必须为内存操作数。
    (5)指令MOV [BP][DI], 0是错误的,操作数类型无法确定。
    (6)指令MOV [SI], [DI] 是错误的,不能同时出现两个内存操作数。
    (7)指令MOV ES, 1000H是错误的,装载段寄存器时,源操作数不能为立即数。
    (8)如果“X”是用常数表达式定义的符号(例如:X   EQU   5+6),或者是用“DW”定义的内存变量,指令MOV AX, X+2是正确的。否则这条指令是错误的。
    (9)指令MOV AX, CX+2是错误的,源操作数表达式CX+2不是一个可以直接计算的“常数表达式”。
    (10)指令MOV [EAX][EAX*2], AL是正确的。

  • 第9题:

    设DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H, 数据段中变量名为VAL 的偏移地址值为0030H,试说明下列源操作数字段的寻址方式是什 么?物理地址值是多少?  (1)MOV AX,[100H]  (2)MOV AX,VAL  (3)MOV AX,[BX]  (4)MOV AX,ES:[BX]  (5)MOV AX,[SI]  (6)MOV AX,[BX+10H] (7)MOV AX,[BP]  (8)MOV AX,VAL[BP][SI]  (9)MOV AX,VAL[BX][DI]  (10)MOV AX,[BP][DI]


    正确答案:(1)直接,10100H
    (2)直接,10030H
    (3)寄存器间接,10100H
    (4)寄存器间接,20100H
    (5)寄存器间接,100A0H
    (6)寄存器相对,10110H
    (7)寄存器间接,35200H
    (8)相对基址变址,352D0H
    (9)相对基址变址,10154H
    (10)基址变址,35224H

  • 第10题:

    填空题
    已知DS= ES =1000H执行下列程序: MOV SI,101H MOV DI,100H MOV CX,4 LP1:MOV AL,[ SI] MOV[ DI] ,AL INC SI INC DI LOOP LP1 INT 3 DS:101H DB 69H,23H,56H,3AH 程序运行后结果为:(10100H)= ()H(10101H)= ()H(10102H)= ()H(10103H)= ()H

    正确答案: 69H,23H,56H,3AH
    解析: 暂无解析

  • 第11题:

    问答题
    有程序如下: BUF DB. 12H,23H,34H,45H,56H,67H,78H,89H,91H MOV SI,O MOV AL,[ BUF +SI] LP: INC SI CMP SI,9 JAE EXIT CMP AL,[BUF +SI] JLE NEXT()MOV AL,[BUF +SI] A22:JMP LP EXIT:INT 3 程序执行后AL=?该程序的功能是什么?

    正确答案: AL= 91H,该程序的功能是查找数据块中有符号数的最小值存入AL中。
    解析: 暂无解析

  • 第12题:

    问答题
    判断下列指令是否正确。若不正确,指出错误原因。 (1)MOV SI, DL (2)MOV ES, 1000H (3)LEA AX, 3006H (4)MOV [BP][DI], 0 (5)MOV [SI], [DI] (6)MOV [DI],[BX] (7)MOV [DX+SI],AL (8)MUL AL , 58H (9)MOV DS,SEG DAT (10)MOV WORD PTR [BX],-1

    正确答案: (1)指令MOV SI, DL是错误的,两个操作数类型不匹配。
    (2)指令MOV ES, 1000H是错误的,装载段寄存器时,源操作数不能为立即数。
    (3)指令LEA AX, 3006H是错误的,LEA指令的源操作数必须为内存操作数。
    (4)指令MOV [BP][DI], 0是错误的,操作数类型无法确定。
    (5)指令MOV [SI], [DI] 是错误的,不能同时出现两个内存操作数。
    (6)MOV [DI],[BX] ;错,存储器不能传存储器
    (7)MOV[DX+SI],AL; 错,DX不能用作基址寻址
    (8)MUL AL , 58H ;错,乘法指令不能用立即数
    (9)MOV DS,SEG DAT;错,立即数不能送段寄存器
    (10)MOV WORD PTR [BX],-1 ;正确 ,-1送BX指示的字单元
    解析: 暂无解析

  • 第13题:

    下列程序执行后,(SI)为( ) MOV CX,5 MOV SI,4 Al:INC SI INC SI LOOP AI

    A.4

    B.5

    C.14

    D.15


    正确答案:C
    解析:每执行LOOP一次,CX的值就自动减1,CX=5,所以A1循环体被执行5次,也就是SI的值加了10,即SI=14。

  • 第14题:

    有程序如下: BUF DB. 12H,23H,34H,45H,56H,67H,78H,89H,91H MOV SI,O MOV AL,[ BUF +SI] LP: INC SI CMP SI,9 JAE EXIT CMP AL,[BUF +SI] JLE NEXT()MOV AL,[BUF +SI] A22:JMP LP EXIT:INT 3 程序执行后AL=?该程序的功能是什么?


    正确答案: AL= 91H,该程序的功能是查找数据块中有符号数的最小值存入AL中。

  • 第15题:

    判断下列指令是否正确。若不正确,指出错误原因。 (1)MOV SI, DL (2)MOV ES, 1000H (3)LEA AX, 3006H (4)MOV [BP][DI], 0 (5)MOV [SI], [DI] (6)MOV [DI],[BX] (7)MOV [DX+SI],AL (8)MUL AL , 58H (9)MOV DS,SEG DAT (10)MOV WORD PTR [BX],-1


    正确答案: (1)指令MOV SI, DL是错误的,两个操作数类型不匹配。
    (2)指令MOV ES, 1000H是错误的,装载段寄存器时,源操作数不能为立即数。
    (3)指令LEA AX, 3006H是错误的,LEA指令的源操作数必须为内存操作数。
    (4)指令MOV [BP][DI], 0是错误的,操作数类型无法确定。
    (5)指令MOV [SI], [DI] 是错误的,不能同时出现两个内存操作数。
    (6)MOV [DI],[BX] ;错,存储器不能传存储器
    (7)MOV[DX+SI],AL; 错,DX不能用作基址寻址
    (8)MUL AL , 58H ;错,乘法指令不能用立即数
    (9)MOV DS,SEG DAT;错,立即数不能送段寄存器
    (10)MOV WORD PTR [BX],-1 ;正确 ,-1送BX指示的字单元

  • 第16题:

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

    • 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

  • 第17题:

    阅读下面的程序,回答问题 DATA SEGMENT BUF DB '1234' N=$-BUF BCD DB N DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,BUF MOV CX,N LEA DI,BCD+N-1 LOOP1:MOV AL,[SI] SUB AL,30H MOV [DI],AL INC SI DEC DI DEC CX JNE LOOP1 MOV AH,4CH INT 21H CODE ENDS END START 找出一条指令代替指令“SUB AL,30H”,使程序功能不变。


    正确答案: 用指令“AND AL,0FH”代替指令“SUB AL,30H”,程序功能不变。

  • 第18题:

    阅读下面的程序,回答问题 DATA SEGMENT BUF DB '1234' N=$-BUF BCD DB N DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,BUF MOV CX,N LEA DI,BCD+N-1 LOOP1:MOV AL,[SI] SUB AL,30H MOV [DI],AL INC SI DEC DI DEC CX JNE LOOP1 MOV AH,4CH INT 21H CODE ENDS END START 说明程序功能,程序执行后,从BCD开始的N个字节单元中的内容是什么?


    正确答案:程序功能是将从BUF开始的连续4个字符’1234’转变为4个对应的数值,按逆序存放到以变量BCD为首地址的存储单元中。程序执行后,从BCD开始的N个字节单元中的内容是4321。

  • 第19题:

    指出下列指令的错误: MOVAH,CX; MOV33H,AL; MOVAX,[SI][DI]; MOV[BX],[SI]; ADDBYTEPTR[BP],256; MOVDATA[SI],ES:AX; JMPBYTEPTR[BX]; OUT230H,AX; MOVDS,BP; MUL39H。


    正确答案: (1)指令错。两操作数字长不相等
    (2)指令错。MOV指令不允许目标操作数为立即数.
    (3)指令错。在间接寻址中不允许两个间址寄存器同时为变址寄存器。
    (4)指令错。MUV指令不允许两个操作数同时为存储器操作数。
    (5)指令错。ADD指令要求两操作数等字长。
    (6)指令错。源操作数形式错,寄存器操作数不加段重设符。
    (7)指令错。转移地址的字长至少应是16位的。
    (8)指令错。对输人输出指令,当端口地址超出8位二进制数的表达范围(即寻址的端口超出256个)时,必须采用间接寻址。
    (9)指令正确。
    (10)指令错。MUL指令不允许操作数为立即数。

  • 第20题:

    说明下列指令中不合法的原因。 (1)MOV 64H, CL  (2)MOV CL, 100H  (3)MOV CL, 256  (4)MOV SS, 6180H  (5)MOV CS, WORD PTR[BX] (6)MOV DS, SS  (7)XCHG AL, 40H (8)XCHG ES, AX  (9)IN 160H, AL  (10)CMP [SI], [BX] (11)MOV DS, 1000H  (12)POP CS


    正确答案: (1)错在立即数64H作目标操作数。
    (2)和(3)错在目标操作数均超过了字节范围。
    (4)错在立即数直接传送给段寄存器。
    (5)错在把存储器操作数作数送CS, 这可能引起系统运行紊乱。
    (6)错在两个段寄存器之间直接传送。
    (7)错在用立即数作交换指令的操作数。
    (8)错在用段寄存器作交换指令的操作数。
    (9)错在当端口地址超过FFH时还在用直接寻址端口号。
    (10)错在用两个存储器操作数做比较。
    (11)错在将立即数直接传送到CS,必须先传送到某个寄存器,再经过寄存器传送到CS。
    (12)错在将存储器堆栈中的数据直接弹出到CS。

  • 第21题:

    问答题
    判断下列指令是否正确。若不正确,指出错误原因。  (1)MOV AX, [EBX]  (2)MOV SI, DL  (3)MOV EBP, [ESP][EAX*3] (4)LEA AX, 3006H   (5)MOV [BP][DI], 0    (6)MOV [SI], [DI]   (7)MOV ES, 1000H   (8)MOV AX, X+2  (9)MOV AX, CX+2    (10)MOV [EAX][EAX*2], AL

    正确答案: (1)指令MOV AX, [EBX]是正确的。
    (2)指令MOV SI, DL是错误的,两个操作数类型不匹配。
    (3)指令MOV EBP, [ESP][EAX*3] 是错误的,比例因子不能为3。
    (4)指令LEA AX, 3006H是错误的,LEA指令的源操作数必须为内存操作数。
    (5)指令MOV [BP][DI], 0是错误的,操作数类型无法确定。
    (6)指令MOV [SI], [DI] 是错误的,不能同时出现两个内存操作数。
    (7)指令MOV ES, 1000H是错误的,装载段寄存器时,源操作数不能为立即数。
    (8)如果“X”是用常数表达式定义的符号(例如:X   EQU   5+6),或者是用“DW”定义的内存变量,指令MOV AX, X+2是正确的。否则这条指令是错误的。
    (9)指令MOV AX, CX+2是错误的,源操作数表达式CX+2不是一个可以直接计算的“常数表达式”。
    (10)指令MOV [EAX][EAX*2], AL是正确的。
    解析: 暂无解析

  • 第22题:

    问答题
    说明下列指令中不合法的原因。 (1)MOV 64H, CL  (2)MOV CL, 100H  (3)MOV CL, 256  (4)MOV SS, 6180H  (5)MOV CS, WORD PTR[BX] (6)MOV DS, SS  (7)XCHG AL, 40H (8)XCHG ES, AX  (9)IN 160H, AL  (10)CMP [SI], [BX] (11)MOV DS, 1000H  (12)POP CS

    正确答案: (1)错在立即数64H作目标操作数。
    (2)和(3)错在目标操作数均超过了字节范围。
    (4)错在立即数直接传送给段寄存器。
    (5)错在把存储器操作数作数送CS, 这可能引起系统运行紊乱。
    (6)错在两个段寄存器之间直接传送。
    (7)错在用立即数作交换指令的操作数。
    (8)错在用段寄存器作交换指令的操作数。
    (9)错在当端口地址超过FFH时还在用直接寻址端口号。
    (10)错在用两个存储器操作数做比较。
    (11)错在将立即数直接传送到CS,必须先传送到某个寄存器,再经过寄存器传送到CS。
    (12)错在将存储器堆栈中的数据直接弹出到CS。
    解析: 暂无解析

  • 第23题:

    填空题
    用DEBUG调试如下程序段: MOV SI,O MOV AL,1000[ SI] LP:INC SI CMP SI,08H JAE A11 CMP.AL,1000[SI] JGE A22 MOV AL,1000[SI] A22:JMP LP A11:INT 3 DS:1000H DB 34H,47H,78H,77H DB 88H,99H,OAAH,OFFH 则程序执行后,AL=()该程序的功能是:()

    正确答案: 78H,求有符号数的最大值
    解析: 暂无解析