📄 div.asm
字号:
.386p
Seg_Data SEGMENT use16
Prompt DB " =========Test for Div 0=========",0dh,0ah,"======================Select between 0-1! Please====================",0dh,0ah,'$'
NDiv DB "System Reseved Interrupt!",0dh,0ah,'$'
CDiv DB "Customer Modified Interrupt!",0dh,0ah,'$'
Seg_Data ENDS
Seg_Stack SEGMENT use16
DW 512 dup (?)
Top label WORD
Seg_Stack ENDS
Seg_Code SEGMENT use16
main proc far
Assume cs:Seg_Code , ds:Seg_Data , ss:Seg_Stack
Start:
mov ax , Seg_Stack
mov ss , ax
mov sp , offset Top
mov ax , Seg_Data
mov ds , ax
;=========================================
mov ah,9
lea dx,Prompt
int 21h
again: mov ah,0
int 16h
cmp al,'0'
jz normaldiv
cmp al,'1'
jz customdiv
jmp again
normaldiv:
mov ah,9
lea dx,NDiv
int 21h
mov bl,0
div bl
customdiv:
mov al,0
mov ah,35h
int 21h
push bx
push es
mov ax,seg TestProc
mov ds,ax
mov dx,offset TestProc
mov al,0
mov ah,25h
int 21h
mov ax,1
mov bl,0
div bl
pop ds
pop dx
mov al,0
mov ah,25h
int 21h
;=========================================
mov ax,4c00h
int 21h
main Endp
TestProc Proc near
lea dx,CDiv
mov ax,seg CDiv
mov ds,ax
mov ah,9
int 21h
pop ax
add ax,2
push ax
iret
TestProc endp
Seg_Code ENDS
End start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -