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

我的博客

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

[2010-09-11 23:14] 习题4.27

请写出一个程序实现如下功能:把内存单元F000:000H开始的200个字节作为无符号数整数求和,并用十进制显示结果;把该区域去哦为100个无符号16位的字,求他们的和,并用十进制显示结果。

答:
;-----------------------------------------------------
assume        cs:code,ss:stack
stack        segment stack
        dw 128 dup (0)
stack        ends
code        segment
start:
        mov ax,0f000h
        mov ds,ax
        mov bx,0
        mov cx,200
        xor ax,ax
L1:        
        mov dx,[bx]
        and dx,0ffh
        add ax,dx
        xor dx,dx
        inc bx
        loop L1        
        call hex2dec
        mov dl,20h
        mov ah,2
        int 21h
;
        mov bx,0
        mov cx,100
        xor ax,ax
        xor dx,dx
L2:        
        add ax,[bx]
        adc dx,0
        add bx,2
        loop L2
        call hex2dec
;
done:
        mov ah,4ch
        int 21h
;
hex2dec        proc
        mov bx,10                
        mov cx,0                
        mov si,0
L3:        
        cmp ax,10
        jb ok
        push ax
        mov ax,dx
        xor dx,dx
        div bx                
        mov cx,ax
        pop ax
        div bx
        add dl,30h
        push dx
        inc si
        mov dx,cx
        jmp L3
ok:        
        add al,30h
        push ax
        inc si
        mov cx,si
L4:        
        pop dx
        mov ah,2
        int 21h
        loop L4
        ret
hex2dec        endp
;
code        ends
end        start
;-----------------------------------------------------
评论次数(0)  |  浏览次数(389)  |  类型(汇编习题集) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码