Z=((X+Y)*4-Y)/数乱2
答:
MOV
AX,X
ADD
AX,Y
SHL
AX,1
SHL
AX,1
SUB
AX,Y
SHR
AX,1
MOV
RESULT,AX
2.试编写一小侧面薯态档硬指令序列,在屏幕上显示出"Hello
everybody!"字符串,该字符串已在数据段定义好为变量string
答:
LEA
DX,string
MOV
AH,9
INT
21H
DATASEGMENTARY DW 025AH,1357H,776H,0040H,05C3H,36D0H,720FH,082AH,019DH,0124H
ORG 0050H
MAX DW0
DATAENDS
CODESEGMENT
ASSUME CS:CODE, ES:DATA
ORG 100H
START: MOV CX, 9H 循环次数=数据个数-1
MOV AX, SEG ARY
MOV ES, AX
LEA SI, ARY
MOV AX, ES:[SI]最大值初值
SCHMAX: ADD SI, 2
MOV DX, ES:[SI]
CMP DX, AX
JLE NEXT
MOV AX, DX
JMP NEXT
NEXT: LOOP SCHMAX
FINISH: MOV ES:[MAX], AX
INT 3 暂停,以便查看运行结果
CODEENDS
END START
编译链接生成exe文件, 在Win7的DOS环境用Debug运行通过;
运行结果,找到这10个数的最大值并保存到max单元中,
在Debug中枣码兄,模行运行至INT 3 暂停,可用 D ES:0050 命令查凳袭看到该最大值。
MOV DX,0F100H DX=0F100HMOV DH,[DX] DH=(0F100H)='A'=41HDX=4100H 取内存0f100h处存放的字符'A'存入DH,'A'的ASCII码为41H,DH为DX寄存器高位尘大,所以DX发生变化
MOV AH,[DX] AH=(04100H)='B'=42H 原理同上
所以正确的是AH中存放的是42H,不是41H,另外DX寄存器不能作为间接寻址寄虚粗存器,可以使用BX寄存器代差兄镇替。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)