assume cs:code
code segment
start:
;將do0程式**複製至0:200處
mov ax,cs
mov ds,ax
mov si,offset do0
mov ax,0
mov es,ax
mov di,200h
mov cx,offset do0end-offset do0
cldrep movsb
;設定0號中斷向量表指向0:200h
mov word ptr es:[0*4],200h
mov word ptr es:[0*4+2],0h
mov ax,4c00h
int 21h
do0:
jmp short do0start
db "divide error!"
do0start:
push ax ;儲存現場
push ds
push si
push di
push cx
mov ax,cs
mov ds,ax
mov si,202h
mov ax,0b800h ;設定視訊記憶體開始位置
mov es,ax
mov di,12*160+34*2 ;設定顯示位置
mov cx,13 ;複製字串
s: mov al,ds:[si]
mov es:[di],al
mov byte ptr es:[di+1],07h
inc si
add di,2
loop s
pop cx ;恢復現場
pop di
pop si
pop ds
pop ax
mov ax,4c00h ;正常應使用iret回到中斷結束程式處,實驗要求返回dos,所以呼叫int 21h
int 21h
do0end:nop
code ends
end start
王爽彙編 實驗12編寫0號中斷處理程式
assume cs codesg codesg segment start mov ax,cs mov ds,ax 程式段位址 mov si,offset div s mov ax,0 mov es,ax mov di,0200h 保持中斷處理程式的記憶體位址 mov cx,offset div o...
王爽 組合語言 實驗10 1
assume cs code,ds data data segment db welcome to masm 0 data ends code segment start mov dh,8 行號 mov dl,3 列號 mov cl,2 顏色 mov ax,data mov ds,ax mov si...
王爽 組合語言 實驗7
assume cs codesg,ds data ss stack data segment db 1975 1976 1977 1978 1979 1980 1981 1982 db 1983 1984 1985 1986 1987 1988 1989 1990 db 1991 1992 1993...