📄 pci.asm
字号:
data segment
D1 DB 'bus number:$',0DH,0AH
D2 DB 'dvice number:$',0DH,0Ah
D3 DB 'function number:$',0DH,0AH
D4 DB 'v.ID:$',0DH,0AH
D5 DB 'd.ID:$',0DH,0AH
data ends
stack segment stack
dw 100 dup(?)
stack ends
CODE segment
.586P
assume cs:code,ds:data,ss:stack
begin:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov eax,80000000h
loop1:
push eax
mov dx,0cf8h
out dx,eax
mov dx,0cfch
in eax,dx
mov edx,eax ;edx lode V.id,D.id
push edx
not edx
test edx,0ffffffffh
pop edx
pop eax
jnz display
backed:
add eax,00000100h
cmp eax,80ffff00h
jna loop1 ;<=
jmp OVER
display:
push eax ;V.id
push edx
push edx
lea dx,D4
mov ah,9
int 21h
pop edx
shr dx,0ch; rigt move12bit
and dl,0fh
cmp dl,0ah
jc k7
add dl,37h
mov ah,2
int 21h
jmp k8
K7:add dl,30h
mov ah,2
int 21h
k8:pop edx
push edx ;2 zifu
shr dx,08h
and dl,0fh
cmp dl,0ah
jc k9
add dl,37h
mov ah,2
int 21h
jmp k10
k9: add dl,30h
mov ah,2
int 21h
k10: pop edx
push edx ;3zifu
shr dx,04h
and dl,0fh
cmp dl,0ah
jc k11
add dl,37h
mov ah,2
int 21h
jmp k12
k11: add dl,30h
mov ah,2
int 21h
k12: pop edx
push edx ;4zifu
and dl,0fh
cmp dl,0ah
jc k13
add dl,37h
mov ah,2
int 21h
jmp k14
k13: add dl,30h
mov ah,2
int 21h
k14: mov dl,20h ;space
mov ah,2
int 21h
pop edx
push edx ;D.id
lea dx,D5
mov ah,9
int 21h
shr edx,1ch
and dl,0fh
cmp dl,0ah
jc k15
add dl,37h
mov ah,2
int 21h
jmp k16
k15: add dl,30h
mov ah,2
int 21h
k16: pop edx
push edx ; 2zifu
shr edx,18h
and dl,0fh
cmp dl,0ah
jc k17
add dl,37h
mov ah,2
int 21h
jmp k18
k17: add dl,30h
mov ah,2
int 21h
k18: pop edx
push edx ; 3zifu
shr edx,14h
and dl,0fh
cmp dl,0ah
jc k19
add dl,37h
mov ah,2
int 21h
jmp k20
k19: add dl,30h
mov ah,2
int 21h
k20: pop edx
push edx ; 4zifu
shr edx,10h
and dl,0fh
cmp dl,0ah
jc k21
add dl,37h
mov ah,2
int 21h
jmp k22
k21: add dl,30h
mov ah,2
int 21h
k22:mov dl,20h ;space
mov ah,2
int 21h
pop edx
pop eax
push edx ; ;function number
push eax ;
lea dx,D3 ;putout
mov ah,9
int 21h
pop eax ;
push eax ;
shr eax,08h
mov dl,al
and dl,0007h
add dl,30h
mov ah,2
int 21h
mov dl,20h ;space
mov ah,2
int 21h
pop eax ;
push eax ;
push eax ; ;device number
lea dx,D2 ;putout
mov ah,9
int 21h
pop eax ;
shr eax,0bh
push eax ;
mov dl,al
and dl,01fh
shr dl,04h
add dl,30h
mov ah,2
int 21h
pop eax ;
mov dl,al
and dl,0fh
cmp dl,0ah
jc k1
mov al,dl
and dl,0fh
add dl ,37h
mov ah,2
int 21h
jmp K2
K1:add dl,30h
mov ah,2
int 21h
K2:
mov dl,20h
mov ah,2
int 21h
pop eax ;
push eax ;
push eax ; ;bus number
lea dx,D1 ;putout
mov ah,9
int 21h
pop eax;
shr eax,010h
push eax;
mov dl,al
shr dl,04h
cmp dl,0ah
jc K3
add dl,37h
mov ah,2
int 21h
jmp K4
K3: add dl,30h
mov ah,2
int 21h
K4: pop eax ;
mov dl,al
and dl,0fh
cmp dl,0ah
jc K5
add dl,37h
mov ah,2
int 21h
jmp K6
K5: add dl,30h
mov ah,2
int 21h
K6: mov dl,0dh ;CR
mov ah,2
int 21h
mov dl,0ah ;LF
mov ah,2
int 21h
pop eax ;
pop edx ;
jmp backed
OVER:mov ah,4ch
int 21h
code ends
END begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -