回 帖 发 新 帖 刷新版面

主题:显示中断向量表

显示中断向量表的源代码

回复列表 (共1个回复)

沙发

stacks segment stack 'stack'
db 60h dup (?)
stacks ends

intvect segment at 0000h
intvect ends

codes segment 'code'

main proc far
    assume cs:codes, ss:stacks, ds:intvect
    
    xor si, si
    xor bx, bx
    mov ax, intvect
    mov ds, ax
    
loop1:
    mov ah, 02h
    mov dl, 'I'
    int 21h
    mov ah, 02h
    mov dl, 'N'
    int 21h
    mov ah, 02h
    mov dl, 'T'
    int 21h
    mov ah, 02h
    mov dl, 20h
    int 21h
    
    mov cl, 4
    push bx
    shr bl, cl
    and bl, 0fh
    add bl, 30h
    cmp bl, 3ah
    jb prt1
    add bl, 7h
prt1:
    mov dl, bl
    mov ah, 02h
    int 21h
    
    pop bx
    mov dx, bx
    and dl, 0fh
    add dl, 30h
    cmp dl, 3ah
    jb prt2
    add dl, 7h
prt2:
    mov ah, 02h
    int 21h
    
    mov ah, 02h
    mov dl, 20h
    int 21h
    
    lodsw
    push ax
    lodsw
    call prthex
    mov ah, 02h
    mov dl, ':'
    int 21h
    pop ax
    call prthex
    
    mov dl, 0dh
    mov ah, 02h
    int 21h
    mov dl, 0ah
    mov ah, 02h
    int 21h
    
    inc bx
    cmp bx, 0ffh
    jbe loop1
    
    mov ax, 4c00h
    int 21h

main endp

prthex proc near

    push bx
        
    mov bx, ax
    mov ch, 4
rotate:
    mov cl, 4
    rol bx, cl
    mov al, bl
    and al, 0fh
    add al, 30h
    cmp al, 3ah
    jb  printit
    add al, 07h
printit:
    mov dl, al
    mov ah, 02h
    int 21h
    dec ch
    jnz rotate
    
    pop bx
    ret

prthex endp

codes ends
    end main

我来回复

您尚未登录,请登录后再回复。点此登录或注册