汇编语言程序设计作业报告

一、作业题目

按下面的程序框架编程,使用循环语句计算1+2+3+…+100,并把结果保存在物理地址12345H指向的字存储单元中

CODES SEGMENT
    ASSUME CS:CODES
START:
    ;此处输入功能实现代码
    MOV AH,4CH
    INT 21H
CODES ENDS
END START

二、题目思路

根据题目要求,我们需要使用Loop循环100次实现对数字的累加,同时使用[BX]完成对题目物理地址12345H中的偏移地址的指向,因此在循环开始前需要设置段地址(DS)和偏移地址(BX),然后设置一个通用寄存器存储每次需要加的数字(如第16次循环应加16,这个寄存器的值就为16),在循环中加一,这里使用AX,最后设置CX循环计数,循环时取出AX中的值并进行累加即可

三、Debug调试

首先使用u指令调出指令所在地址
汇编语言程序设计作业报告_第1张图片
然后调用g指令将程序跑到循环前,并使用d指令调出12345H存储单元
汇编语言程序设计作业报告_第2张图片
使用t指令循环两次,观察AX,CX,DX中的值
汇编语言程序设计作业报告_第3张图片
最后使用g指令完成循环并将12345H存储地址调出(结果应为13BA)
汇编语言程序设计作业报告_第4张图片
四、完整程序

CODES SEGMENT
    ASSUME CS:CODES
START:
	;设置段地址,其中由于不能直接向段寄存器中写入数字,需要AX作为一个中转
	MOV AX,1234H
	MOV DS,AX
	;设置偏移地址
	MOV BX,5H
	;设置一个通用寄存器存储循环单次的累加值
	MOV AX,0
	;设置一个通用寄存器存储循环累加的结果
	MOV DX,0
	;设置最开始的数字为1
	MOV AX,1
	;设置循环次数
	MOV CX,100
	;循环开始,每次加ax中的值,并将ax值加一
s:	ADD DX,AX
	INC AX
	LOOP S
	;将最后结果写到12345h中即可
	MOV [BX],DX
    ;此处输入代码段代码
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

你可能感兴趣的:(汇编语言)