汇编网首页登录博客注册
fpamc的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态

[2012-03-25 10:41] 一道同学出的题

RT,测试自己的题,写着玩。自娱自乐。

将1~100的值,存储到2000:0的起始位置,然后从2000:结尾处,查询100~1的值做累加,高位存储在al中,低位存储在bl中。

assume cs:codesg
codesg segment
mov ax,2000h
mov ds,ax
mov si,0
mov dx,1
mov cx,100
s:
mov [si],dl
inc si
inc dx
loop s

mov ax,0
mov si,63h
mov cx,100
s0:
mov bl,[si]
mov bh,0
add ax,bx
dec si
loop s0

mov bl,al
mov bh,ah
mov al,bh

mov ax,4c00h
int 21h
codesg ends
end

经过调试,正确。

不知道还有没有办法简化。
目前为止,学完7章。
希望各位同学和老师及所有学习的人来建议和指导!
评论次数(1)  |  浏览次数(246)  |  类型(自娱自乐) |  收藏此文  | 

[  fpamc   发表于  2012-03-25 19:07  ]

下午,探索出来了第二种方式,

assume cs:codesg
codesg segment
mov ax,2000h
mov ds,ax
mov si,1
mov cx,100
s:
mov [si-1],si
inc si
loop s

mov ax,0
mov si,63h
mov cx,100
s0:
mov bl,[si]
mov bh,0
add ax,bx
dec si
loop s0

mov bl,al
mov bh,ah
mov al,bh

mov ax,4c00h
int 21h
codesg ends
end

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码