正好我們做了這個實驗 你知道的,把資料段中的埠地址改為你的計算機可識別的8255A的埠地址;從鍵盤接收數字,在七段數碼管上顯示 data segment ioport equ 2400h-0280h io8255a equ ioport+288h io8255b equ ioport+28bh led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh mesg1 db 0dh,0ah,"Input a num (0--9h):",0dh,0ah,"$" data endscode segmentassume cs:code,ds:data start:mov ax,datamov ds,axmov dx,io8255b ;使8255的A口為輸出方式mov ax,10000000b ;80h,A組方式0,A口輸出,B組方式0,B口輸出,C口輸出out dx,alsss:mov dx,offset mesg1 ;顯示提示資訊mov ah,09hint 21hmov ah,01 ;從鍵盤接收字元int 21hcmp al,"0" ;是否小於0jb sss ;若是則退出cmp al,"9" ;是否大於9ja sss ;若是則退出and al,0fh ;將所得字元的ASCII碼減30Hmov bx,offset led ;bx為數碼錶的起始地址xlat ;求出相應的段碼mov dx,io8255a ;從8255的A口輸出out dx,aljmp sss ;轉SSSexit:mov ah,4ch ;返回DOSint 21hcode endsend start
正好我們做了這個實驗 你知道的,把資料段中的埠地址改為你的計算機可識別的8255A的埠地址;從鍵盤接收數字,在七段數碼管上顯示 data segment ioport equ 2400h-0280h io8255a equ ioport+288h io8255b equ ioport+28bh led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh mesg1 db 0dh,0ah,"Input a num (0--9h):",0dh,0ah,"$" data endscode segmentassume cs:code,ds:data start:mov ax,datamov ds,axmov dx,io8255b ;使8255的A口為輸出方式mov ax,10000000b ;80h,A組方式0,A口輸出,B組方式0,B口輸出,C口輸出out dx,alsss:mov dx,offset mesg1 ;顯示提示資訊mov ah,09hint 21hmov ah,01 ;從鍵盤接收字元int 21hcmp al,"0" ;是否小於0jb sss ;若是則退出cmp al,"9" ;是否大於9ja sss ;若是則退出and al,0fh ;將所得字元的ASCII碼減30Hmov bx,offset led ;bx為數碼錶的起始地址xlat ;求出相應的段碼mov dx,io8255a ;從8255的A口輸出out dx,aljmp sss ;轉SSSexit:mov ah,4ch ;返回DOSint 21hcode endsend start