已知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

题目

已知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

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

第1题:

设内存22000H和22001H单元分别存放的数据为04H和06H,写出如下程序的运行结果,并指出该程序段的功能。 MOV AX,2000H MOW DS,AX MOC CL,4 MOV SI,2000H MOV AL,[SI+1] SHL AL, CL ADD AL,[ SI] MOV[ SI+2], AL INT 3 请问:SI=();AL();(22002H)=();程序功能是:()


正确答案:
2000H;64H;64H;将两个数符压缩在一个内存单元中

第2题:

已知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

第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题:

指出下列指令中哪些是错误的,错在什么地方。  (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题:

判断下列指令是否正确。若不正确,指出错误原因。 (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指示的字单元

第6题:

阅读下列程序,指出运行结果 MOV SI,2500H MOV AX,1000H MOV DS,AX MOV CL,05H NEXT:MOV[ SI] ,AL INC AL INC SI DEC CL JNZ NEX TINT 3 程序运行后结果为:DS=()H SI=()HAX=()H CL=()H


正确答案:1000;2505;1005;O

第7题:

设内存11000H-11005H单元内容全为36H,写出如下程序的运行结果,并指出该程序段的功能。 MOV AX, 1000HMOV DS, AXMOV ES, AXCLDMOV SI, 1000HMOV DI, 1020HMOV CX, 06HREP MOVSB1NT 3结果为:SI()DI()(11021H)= ()程序功能是:()


正确答案: 1006;1026H;36H;实现数据传传送,将11000H单元开始的6个字节内容(36H)传送到11020H.11026H单元中去。

第8题:

执行下列程序后,(CX)=( )。 DATA SEGMENT A DW 1, 2, 3, 4, 5 B DW 5 DATA SEGMENT CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX LEA BX, A ADD BX, B MOV CX, [BX] MOV AH, 4CH INT 21H CODE ENDS END START

A.400

B.0

C.10

D.100


正确答案:A
解析:当执行指令“LEABX,A”时,将A相对数据段首地址的偏移量0送入BX寄存器,执行指令“ADDBX,B”后,(BX)=5。再执行指令“MOVCX,[BX]”时,由于源操作数是寄存器间接寻址方式且该指令为字传送指令,因此应将相对数据段首地址、偏移地址为0005的内容0400送入CX寄存2S。所以上述程序执行完后,(CX)=400。

第9题:

计算物理地址:   已知段地址和操作数的有效地址,怎样计算操作数的物理地址?    已知 DS=2000H , SS=1500H , SI=0150H , DI=0250H , BX=0020H , BP=0020H , DATA=0010H , COUNT=0050H , 指出下列指令中源操作数的物理地址:  (2)MOV   AX , [BP]  (3)MOV   BX , [120H]  (4)MOV   CX , DATA[DI]  (5)MOV   AX , COUNT[BX][SI] 


正确答案: (2)15020H
(3)20120H
(4)20260H
(5)201C0H

第10题:

设(DS)=1234H,(SI)=124,(12464H)=30ABH,(12484H)=464H。试写出下列程序段执行后有关寄存器的结果。LEA.SI,[SI]MOV.AX,[SI]MOV.[SI+22H],1200HLDS.SI,[SI+20H]ADD.AX,[SI](DS)=();(SI)=();(AX)=()。


正确答案:(DS)= 1234H;(SI)= 144H ;(AX)=42ABH 。

更多相关问题