实验1:ASCII码
设计算法:为了将ASCII的10H到100H输出显示,得从10H开始显示输出然后循环90h次,每次ASCII自增1,重复上述步骤。
编程实现:将循环次数90h存在计数器cx中,用dx寄存器存放ASCII码数据,每次循环dx自增1。因为还需要一个每满输出16个字符后换行的功能,用bx赋初值16,存放每行还剩输出字符的个数,每输出 1各字符bx自减1,当bx为0时调用回车换行子程序printnewline,然后在赋值16,重复上述步骤。
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov cx,90H
mov dl,10H
mov bx,10H
again:
mov ah,02h
int 21h
inc dl
dec bx
cmp bx,0
je next
jmp next1
next:
mov bx,10H
push dx
mov dl,0ah
push ax
mov ah,02h
int 21h
pop ax
pop dx
next1:
loop again
MOV AH,4CH
INT 21H
CODES ENDS
END START
输出结果如图: