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

我的博客

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

[2013-08-29 16:22] 检测点16.1~检测点16.2

图片载入中
检测点16.1
a[si]
word ptr b[0]
word ptr b[2]
2

检测点16.2
mov ax,data
mov ds,ax

第295页对书中的例子添加错误处理程序:
assume cs:code

code segment
        start:mov ax,210
        call showsin
        mov ax,4c00h
        int 21h
        
        showsin:jmp short show
        
        table dw ag0,ag30,ag60,ag90,ag120,ag150,ag180,errmsg
        ag0 db '0',0
        ag30 db '0.5',0
        ag60 db '0.866',0
        ag90 db '1',0
        ag120 db '0.866',0
        ag150 db '0.5',0
        ag180 db '0',0
        errmsg db 'angle out of bound!',0
        
        show:push ax
        push bx
        push es
        push si
        mov bx,0b800h
        mov es,bx
        
        mov ah,0
        mov bl,30
        div bl
        cmp ah,0
        jne showerr
        cmp al,6
        ja showerr
        mov bl,al
        mov bh,0
        add bx,bx
        mov bx,table[bx]
        
        mov si,160*12+40*2
        shows:mov ah,cs:[bx]
        cmp ah,0
        je showret
        mov es:[si],ah
        inc bx
        add si,2
        jmp short shows
        
        showerr:mov bx,table[14]
        mov si,160*12+30*2
        jmp shows
        
        showret:pop si
        pop es
        pop bx
        pop ax
        ret

code ends
end start
评论次数(0)  |  浏览次数(493)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码