第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