do0.asm

来自「本例实现大多数 的中断调用问题」· 汇编 代码 · 共 42 行

ASM
42
字号
;实验4 编写0号中断的处理程序(第240页)
assume cs:code
code segment
start:  mov	ax,cs
        mov	ds,ax
        mov	si,offset do0                  ;设置ds:si指向源地址
        mov	ax,0
        mov	es,ax
        mov	di,200h                        ;设置es:di指向源地址
        mov	cx,offset do0end - offset do0  ;设置cx为传输长度
        cld                                ;设置传输方向为正
	rep	movsb
        ;mov	ax,0
        ;mov	es,ax
        mov	word ptr es:[0*4],200h       ;设置中断向量的入口地址的偏移地址
        mov	word ptr es:[0*4+2],0        ;设置中断向量的入口地址的段地址
        mov	ax,0f000h
        mov	dx,22d
        mov	cx,10d
        div	cx	                        ;此4句是为了做个溢出的除法
        mov	ax,4c00h
        int	21h
do0:    jmp short do0start
        db "divide error!"
do0start:        
        mov	ax,cs
        mov	ds,ax
        mov	si,202h                      ;设置ds:si指向字符串
        mov	ax,0B800h
        mov	es,ax
        mov	di,12*0A0h+2*32              ;设置es:di指向显存空间的中间位置
        mov	cx,13d                       ;设置字符串长度
s:      mov	al,[si]
        mov	es:[di],al
        inc	si
        add	di,2
        loop	s
        mov	ax,4c00h
        int	21h
do0end: nop
code ends
	end start

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?