|
主题 : : 实验13 int指令引发的中断例程的3个实验完成,欢迎浏览,互相学习,共同提高! [待解决] |
回复[ 1次 ]
点击[ 369次 ] | |
荣誉值:0
信誉值:4
注册日期:2008-12-12 00:18 |
试验13 第1题 显示一个用0结束的字符串的中断例程
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset show
mov ax,0
mov es,ax
mov di,200h
mov cx,offset showend-offset show
cld
rep movsb
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4+2],0
mov ax,4c00h
int 21h //以上是安装中断部分
show:push ax
push cx
push dx
push di
push si
push es
mov ax,0b800h
mov es,ax
mov ax,160
mul dh
add dl,dl
add al,dl
mov di,ax
mov ah,cl
mov ch,0
jp1:mov cl,[si]
jcxz ok
mov al,[si]
mov es:[di],ax
inc si
add di,2
jmp short jp1
ok:pop es
pop si
pop di
pop dx
pop cx
pop ax
iret
showend:nop //以上是中断源码
code ends
end start
试验13 第2题 完成loop指令功能的中断例程
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset lp
mov ax,0
mov es,ax
mov di,200h
mov cx,offset lpend-offset lp
cld
rep movsb
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4+2],0
mov ax,4c00h
int 21h \\以上是中断安装部分
lp:push bp
mov bp,sp
dec cx
jcxz lpret
add [bp+2],bx
lpret:pop bp
iret
lpend:nop \\以上是中断源码部分
code ends
end start
试验13 第3题 程序补全
assume cs:code
code segment
s1:db 'Good,better,best','$'
s2:db 'Never let it rest','$'
s3:db 'Till good is better','$'
s4:db 'And better,best.','$'
s:dw offset s1,offset s2,offset s3,offset s4
row:db 2,4,6,8
start:mov ax,cs
mov ds,ax
mov bx,offset s
mov si,offset row
mov cx,4
ok:mov bh,0
mov dh,[si] \\填空为[si]
mov dl,0
mov ah,2
int 10h
mov dx,[bx] \\填空为[bx]
mov ah,9
int 21h
inc si \\填空为inc si
add bx,2 \\填空为add bx,2
loop ok
mov ax,4c00h
int 21h
code ends
end start | | |