汇编题目 急救

来源:百度知道 编辑:UC知道 时间:2024/05/22 15:57:42
0、计算1+2+3+…….+199+200的和并把结果保存在SUM单元中同时以十进制的形式显示在屏幕上(40分)

data segment
COUNT equ 200
SUM dw ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov cx,COUNT ;循环200次
xor bx,bx ;bx清零
lp: add bx,cx ;200+199+198...
loop lp
call showDec ;显示10进制数的子函数
mov ah,4ch
int 21h

showDec proc near
mov cx,5
lp_sd:
mov ax,bx ;bx转移到ax
mov bx,10d ;用于下面的除法
xor dx,dx ;DX清零,避免影响除法
div bx ;DX:AX/BX,商在AX,余在DX
mov bx,ax ;商返还给bx保存
push dx ;把DX压栈,便于到后来反方向显示出来
loop lp_sd
mov cx,5
lp_sd1:
pop dx
add dl,'0' ;根据数值转换成对应字符的ASCII码
mov ah,2
int 21h ;2号中断来显示字符
loop lp_sd1
ret
showDec endp
code ends
end start