使用汇编语言怎样编写100个偶数相加的程序

如题所述

我做的是从2开始的100个偶数的和,结果是2774H,即十进制的10100
没有编写输出语句,要用debug看结果。
dseg segment
sum dw ?
dseg ends
cseg segment
assume cs:cseg,ds:dseg
begin: mov ax,dseg
mov ds,ax
xor ax,ax
mov cx,1
again: mov bx,cx
shl bl,1
add ax,bx
inc cx
cmp cx,100
jbe again
mov sum,ax
mov ah,4ch
int 21h
cseg ends
end begin

下面这个程序是计算100以内的偶数和,并以十六进制显示:
dseg segment
sum dw ?
tab db '0123456789ABCDEF'
dseg ends

cseg segment
assume cs:cseg,ds:dseg
begin: mov ax,dseg
mov ds,ax
xor ax,ax
mov cx,100
again: add ax,cx
sub cx,2
jnz again
mov sum,ax
;以上是求和,并存到sum单元

mov bx,offset tab
mov dh,4
mov cl,4
next: rol ax,cl
push ax
and ax,0fh
xlat
mov dl,al
mov ah,2
int 21h
pop ax
dec dh
jnz next
mov dl,'H'
mov ah,2
int 21h
;以上是以十六进制显示,思想是分离出四位,查表转换成ASCII码,并用2号功能显示,循环4次。最后输出后缀H
mov ah,4ch
int 21h
cseg ends
end begin
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-05-16
我做的是从2开始的100个偶数的和,结果是2774H,即十进制的10100
没有编写输出语句,要用debug看结果。
dseg
segment
sum
dw
?
dseg
ends
cseg
segment
assume
cs:cseg,ds:dseg
begin:
mov
ax,dseg
mov
ds,ax
xor
ax,ax
mov
cx,1
again:
mov
bx,cx
shl
bl,1
add
ax,bx
inc
cx
cmp
cx,100
jbe
again
mov
sum,ax
mov
ah,4ch
int
21h
cseg
ends
end
begin
下面这个程序是计算100以内的偶数和,并以十六进制显示:
dseg
segment
sum
dw
?
tab
db
'0123456789ABCDEF'
dseg
ends
cseg
segment
assume
cs:cseg,ds:dseg
begin:
mov
ax,dseg
mov
ds,ax
xor
ax,ax
mov
cx,100
again:
add
ax,cx
sub
cx,2
jnz
again
mov
sum,ax
;以上是求和,并存到sum单元
mov
bx,offset
tab
mov
dh,4
mov
cl,4
next:
rol
ax,cl
push
ax
and
ax,0fh
xlat
mov
dl,al
mov
ah,2
int
21h
pop
ax
dec
dh
jnz
next
mov
dl,'H'
mov
ah,2
int
21h
;以上是以十六进制显示,思想是分离出四位,查表转换成ASCII码,并用2号功能显示,循环4次。最后输出后缀H
mov
ah,4ch
int
21h
cseg
ends
end
begin
相似回答