[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
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) |
类型(汇编作业) |
收藏此文 |