微机原理:用汇编语言编制一段程序

微机原理:用汇编语言编制一段程序,第1张

1.编闭森制一段程序求出下列公式中Z的值并放在RESULT单元,注X,Y,RESULT分别定义成字类型变量

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

DATASEGMENT

ARY 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=0F100H

MOV 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寄存器代差兄镇替。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12473013.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存