汇编语言高手进,在线等,急

来源:百度知道 编辑:UC知道 时间:2024/05/12 10:30:00
7.判断下列指令语句是否正确:
(1)ROL BX, 2 ( )
(2)PUSH CS ( )
(3)ADD BX, [2000H] ( )
(4)LEA AX,BX ( )
(5)DEC BH ( )
(6)INC BYTE PTR [CX] ( )
(7)IN AH,DX ( )
(8)XCHG CX,DS:[2400H] ( )
8.下列语句在存储器中为变量分配多少个字节?
VAR1 DW 3B ( )
VAR2 DW 5 DUP(2),0 ( )
VAR3 DD —1,1,1 ( )
COUNT EQU 10 ( )
VAR4 DT 4,AB ( )
9.读下列程序:
START:MOV AL,20H
MOV BL,AL
MOV AL,30H
MOV CL,AL
MOV AX,0
ADLOP:ADD AL,BL
ADC AH,0
DEC CL
JNZ ADLOP
HLT
问:(1)该程序实现什么功能?(2)结果存放在什么地方?
10.若 DS=1100H,SI=1000H,CS=1200H,IP=100H,[12000H]=2000H
[12002H]=1500H,问:
(1) 执行指令CALL FAR[SI]后,CS和IP的内容是多少?
(2) 执行指令CALL [SI]后,CS和IP的内容是多少?
11.若SS=1000H,SP=1000H,AX=1234H,BX=5678H,FR=21

编程分析:
求N!本身是一个子程序,由于N!是N和(N-1)!的乘积,所以求(N-1)!必须递归调用求N!的子程序。

估计你不会在这找到满意的答复了。

7 (4)错
应为 LEA AX,[BX]

这些题现在有个问题,不同的CPU环境下的答案是不一样的.比如在8086环境下,你的7.(6)是错误的,但在80386以上的32位环境下却是正确的.所以,请你补充完成你的课程的具体针对环境再讨论吧.对了,从字面观察,你的这些题都属于8086基本汇编,或者起码是IA-32环境下的实模式环境.请你尽快确定吧,不然难为别人呢

mmm

7、(2)、(3)、(5)、(8)正确,其余是错误的,原因如下:
(1)ROL指令移位次数大于时,用CL,可改为MOV CL,2 ROL BX, CL
(4)LEA指令的源操作数应该为存储器操作数,不能为寄存器BX
(6)寄存器间接寻址时只能使用BX、BP、SI、DI,而不能使用CX
(7)输入/输出指令是累加器专用指令,8位累加器是AL,不是AH

8、 VAR1 DW 3B ( 2个) ;说明:一个字占2个字节
VAR2 DW 5 DUP(2),0 ( 12个 ) ;说明:6个字12个字节
VAR3 DD —1,1,1 ( 12个) ;说明:3个双字12个字节
COUNT EQU 10 (0个 ); 说明:常量不占内存
VAR4 DT 4,AB (20个 );说明:DT表示10个字节,2个DT即为20个字节

9、(1)该程序实现20H*30H的功能,说明循环30H,每次累加20H。
(2)结果存放在AX中

10、(1) CS和IP的分别内容是1500H和2000H,说明段间远转移CS和IP都改变
(2) CS和IP的分别内容是1200H和2000H,说明段内转移CS不变,只是IP改变

11、SP,SS,CX中的内容分别是0FFCH,1000H,2103H