



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、XXXX 大學實驗報告課程名稱匯編語言程序設計成實驗學時績評語:指導教師:年月日班 級:學 號:姓 名:地 點:時 間:實驗一匯編語言編程實驗一、實驗目的(1) 掌握匯編語言的編程方法(2) 掌握 DOS功能調用的使用方法(3) 掌握匯編語言程序的調試運行過程二、實驗內容1. 將指定數(shù)據(jù)區(qū)的字符串數(shù)據(jù)以 ASCII 碼形式顯示在屏幕上, 并通過 DOS功能調用完成必要提示信息的顯示。2. 在屏幕上顯示自己的學號姓名信息。3.循環(huán)從鍵盤讀入字符并回顯在屏幕上,然后顯示出對應字符的ASCII 碼,直到輸入” Q”或“ q”時結束。4.實驗中使用的 DOS功能調用:INT 21HAH 值功能調用參數(shù)
2、結 果1鍵盤輸入并回顯AL=輸出字符2顯示單個字符 ( 帶 Ctrl+Break檢查 )DL=輸出字符光標在字符后面6顯示單個字符 ( 無 Ctrl+Break檢查 )DL=輸出字符光標在字符后面8從鍵盤上讀一個字符AL=字符的 ASCII 碼9顯示字符串DS:DX=串地址,光標跟在串后面 $為結束字符4CH返回 DOS系統(tǒng)AL=返回碼例如,實現(xiàn)鍵盤輸入并回顯的完整代碼:MOVAH01HINT21H三、實驗結果1. 將指定數(shù)據(jù)區(qū)的字符串數(shù)據(jù) ”Let us go ! ”以 ASCII 碼形式顯示在屏幕上,并通過DOS 功能調用完成必要提示信息的顯示:2. 在屏幕上顯示自己的學號姓名信息3.循環(huán)
3、從鍵盤讀入字符并回顯在屏幕上,然后顯示出對應字符的ASCII 碼,直到輸入” Q”或“ q”時結束。四、實驗原理DATASEGMENTMESDB'NUMBER:03099018 ',0AH,0DH,'NAME:FengXiaokang',0AH,0DH,'$'CENTDB'Let us go !','$'ENTEDB0AH,0DH,'$'INFODB 'Origin: ','$'ASCIDB 'ASCII : ','$'MSG1DB
4、39;If you want to quit please press.q/Q.',0AH,0DH,'$'MSG2DB0AH,0DH,'Char: $'RSDB 'ASCII: $'SDDB ''DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOV AX,DATA; 存儲數(shù)據(jù)MOVDS,AXMOVDX,OFFSET MES; 顯示數(shù)據(jù)MOVAH,09HINT21HMOVDX,OFFSET MSG1MOVAH,09HINT21HMOV DX, OFFSET CENTMOV SI,
5、 DXT:MOV AL,SICMP AL,'$'JZ C1ANDAL,0F0H;取高 4位MOVCL,4SHRAL,CLCMPAL,0AH; 是否是 A 以上的數(shù)JBAADDAL,07HA:ADDAL,30HMOVDL,AL;show characterMOVAH,02HINT21H;MOVAL,DS:SIMOVAL, SIANDAL,0FH;取低 4位CMPAL,0AHJBBADD AL,07HB:ADDAL,30HMOVDL,ALMOVAH,02HINT21HINCSILOOP TC1:MOV DX,OFFSET MSG2MOV AH,09HINT21HMOVAH,01hI
6、NT21hCMP AL,'q'JEexitCMPAL,'Q'JEexitMOV SD,ALMOVDX,OFFSET RS ;show messageMOVAH,09HINT21HMOV SI,OFFSET SDMOV AL,SIANDAL,0F0H;取高 4位MOVCL,4SHRAL,CLCMPAL,0AH; 是否是 A 以上的數(shù)JBC2ADDAL,07HC2:ADDAL,30HMOVDL,AL;show characterMOVAH,02HINT21HMOVAL,DS:SIANDAL,0FH;取低 4位CMPAL,0AHJBC3ADD AL,07HC3:ADD
7、AL,30HMOVDL,ALMOVAH,02HINT21HLOOP C1C:MOVDX,OFFSET MSG1MOVAH,09HINT21HLOP:MOVAH,08HINT21HCMPAL,'Q'JEexitCMP AL,'q'JEexitJMPLOPEXIT:MOVINTAX,4C00H21H;go back to dosCODEENDSendSTART五、實驗流程圖六、實驗總結這是我學習匯編以來,第一次用匯編寫程序,費了我不只一個實驗課時,糾結了不只一天。同樣是助記碼,真的不懂如何組織的。郁悶之下,用C 寫出來發(fā)泄一下,才猜想應該跟 C 的思考方式完全不同。
8、后來開始研究代碼,真的不愧是底層啊,詳細到一個字節(jié)高低位的安排,如此地考驗硬件知識。實驗二數(shù)碼轉換實驗一、實驗目的1. 掌握不同進制數(shù)及編碼相互轉換的程序設計方法。2. 掌握運算類指令編程及調試方法。3. 掌握循環(huán)程序的設計方法。二、實驗設備PC機一臺。三、實驗內容及說明1. 重復從鍵盤輸入不超過 5 位的十進制數(shù),按回車鍵結束輸入;2. 將該十進制數(shù)轉換成十六進制數(shù);結果以16 進制數(shù)的形式顯示在屏幕上;3. 如果輸入非數(shù)字字符,則報告出錯信息,重新輸入;4. 直到輸入“ Q”或 q時程序運行結束。四、實驗結果1. 輸入 33062. 結果 0CEA3. 輸入一個較大的數(shù) 655374. 顯
9、示 456A65. 輸入非法值五、實驗原理圖源代碼:DATASEGMENT'No.:03099018 ',0AH,0DH,'NAME:Fengxiaokang',0AH,0DH,'$'NUMBERDBERRORDB 0AH,0DH,'ERROR! PLEASE TRY AGAIN!',0AH,0DH,'$'INPDB 0AH,0DH,'Please inputa number,youcan exit by inputing "q" or "Q"',0AH,0D
10、H,'$'XPDB 0AH,0DH,'$'DATAENDSCODESEGMENTstart:ASSUMECS:CODE,DS:DATAMOV AX,DATAMOVDS,AXMOV DX,OFFSET NUMBERMOV AH,09HINT21HMOVBX,0HMOVDX,OFFSET INPMOVAH,09Hinput:INT21HMOV AH,01HINT21HCMP AL,0DH; 數(shù)字輸入完畢JEchangeCMPAL,'Q' 退出JEEXITCMPAL,'q'JEEXITCMP AL,030h; 非數(shù)字jlerrorscm
11、pAL,039hjgerrorsSUBAL,30H; 運算pushAXmovAX,BXmovDX,0000AHmulDXmovBX,AXpopAXaddBL,ALCMPBX,00HJZZEROjmpinputerrors:MOVDX,OFFSET ERRORMOVAH,09HINT21HMOVBX,0HjmpinputZERO:MOV CL,4JMPLOOPSchange:CMPBX,00HJZERRORSMOV CL,4loops:MOV DX,BXAND DX,0F000HSHRDX,12; 是否是 A 以上的數(shù)CMPDX,0AHJLC2ADDDX,07HC2:ADDDX,30H;show
12、 chArActerMOVAH,02HINT21HSHLBX,4LOOPloopsMOV DX,OFFSET XPMOV AH,09HINT21HJMPINPUTEXIT:MOVAX,4C00HINT21HCODEENDSEND START原理十進制數(shù)可以表示為:nnn-1*10n-100i*10iD *10 +D+ +D *10 =D其中 D 代表十進制數(shù)1、 2、3、 9、 0。i上式可以轉換為:Din) *10+ D)*10+ D)*10+ D*10 =( D*10+Dn-20inn-11由上式可歸納出十進制數(shù)轉換為二進制數(shù)的方法:從二進制數(shù)的最高位D 開始做乘 10n加次位的操作。依此
13、類推,則可求出二進制數(shù)結果。數(shù)碼轉換對應關系十六進制BCD 碼二進制機器碼ASCII碼七段碼共陽共陰00000000030H40H3FH10001000131H79H06H20010001032H24H5BH30011001133H30H4FH40100010034H19H66H50101010135H12H6DH60110011036H02H7DH70111011137H78H07H81000100038H00H7FH91001100139H18H67HA10141H08H77HB101142H03H7CHC110043H46H39HD110144H21H5EHE111045H06H79HF
14、111146H0EH71H七、實驗總結(體會)當匯編與算法結合在一起的時候,意味著難度又上升了一個層次。這是一個常見的進制轉換程序,除了要處理數(shù)制問題,題目中不超過 5 位的要求也要注意,因為會存在溢出問題。三、源代碼:MY_STACK SEGMENT PARA 'STACK'DB100 DUP(?)MY_STACK ENDSMY_DATASEGMENT PARA 'DATA'IO_9054base_address DB 4 DUP(0);PCI卡 9054 芯片I/O基地址暫存空間IO_base_addressDB 4 DUP(0);PCI 卡 I/O基地址暫
15、存空間pcicardnotfindDB0DH,0AH,'pcicardnotfindoraddress/interrupterror !',0DH,0AH,'$'GOODDB 0DH,0AH,'The Program is Executing !',0DH,0AH,'$'P8254_T0DW0000HP8254_T1DW0001HP8254_T2DW0002HP8254_MODEDW0003HP8255_ADW0020HP8255_BDW0021HP8255_CDW0022HP8255_MODEDW0023HMY_DATA END
16、sMY_CODE SEGMENT PARA 'CODE'MY_PROCPROCFARASSUMECS:MY_CODE, DS:MY_DATA,SS:MY_STACKMAIN:.386 ;386 模式編譯MOVAX,MY_DATAMOVDS,AXMOVES,AXMOVAX,MY_STACKMOVSS,AXCALL FINDPCI; 自動查找 PCI 卡資源及 IO 口基址MOVCX,word ptr IO_base_address;MOVCX,0E800H; 直接加入 (E800: 本機 PCI 卡 IO 口基址 )ADDP8254_T0,CX;PCI 卡 IO 基址 +偏移AD
17、DP8254_T1,CXADDP8254_T2,CXADDP8254_MODE,CXADDP8255_A,CX;PCI 卡 IO 基址 +偏移ADDP8255_B,CXADDP8255_C,CXADDP8255_MODE,CXMOVDX,P8254_MODE; 寫入方式控制字MOVAL,37H; 計數(shù)器 0, 先讀寫低位,后讀寫高位,OUTDX,AL; 方式 3, BCD碼計數(shù)MOV AH, 4CHINT21HA1:MOVDX,P8254_T0MOVAL,32H;初值低 8位OUTDX,ALMOVAL,00H;初值高 8位OUTDX,ALMY_PROCENDp;*;/* 按任意鍵退出 */;*
18、;*;/*找卡子程序 */;*;FUNCTION CODEIO_port_addreEQU 0CF8H;32 位配置地址端口IO_port_dataEQU 0CFCH;32 位配置數(shù)據(jù)端口IO_PLX_IDEQU 200810B5H;PCI 卡設備及廠商 IDBADR0=10H; 基地址寄存器 0BADR1=14H; 基地址寄存器 1BADR2=18H; 基地址寄存器2BADR3=1CH; 基地址寄存器3FINDPCI PROCNEAR; 查找 PCI 卡資源并顯示PUSHADPUSHFDMOVEBX,080000000HFINDPCI_next:ADDEBX,100HCMPEBX,08100
19、0000HJNZfindpci_continueMOVDX,offset pcicardnotfind; 顯示未找到 PCI 卡提示信息MOVAH,09HINT21HMOVAH,4CHINT21H; 退出findpci_continue:MOV DX,IO_port_addreMOV EAX,EBXOUT DX,EAX; 寫地址口MOV DX,IO_port_dataINEAX,DX; 讀數(shù)據(jù)口CMPEAX,IO_PLX_IDJNZfindpci_next; 檢查是否發(fā)現(xiàn)PCI 卡MOVDX,IO_port_addreMOV EAX,EBXADD EAX,BADR1OUT DX,EAX; 寫地
20、址口MOV DX,IO_port_dataINEAX,DX; 讀數(shù)據(jù)口MOVdword ptr IO_9054base_address,EAXANDEAX,1JZfindPCI_next; 檢查是否為 i/o基址信息MOV EAX,dword ptr IO_9054base_addressANDEAX,0fffffffehMOVdword ptr IO_9054base_address,EAX; 去除 i/o 指示位并保存MOVDX,IO_port_addreMOVEAX,EBXADDEAX,BADR2OUTDX,EAX; 寫地址口MOVDX,IO_port_dataINEAX,DX; 讀數(shù)據(jù)
21、口MOVdword ptr IO_base_address,EAXANDEAX,1JZfindPCI_next; 檢查是否為 i/o基址信息MOVEAX,dword ptr IO_base_addressANDEAX,0fffffffehMOVdword ptr IO_base_address,EAX; 去除 i/o 指示位并保存MOVDX,offset good; 顯示開始執(zhí)行程序信息MOVAH,09HINT21HPOPfdPOPadRETfindPCIENDPMY_CODEENDSENDMAIN實驗四可編程并行接口8255 實驗一、實驗內容(1) 流水燈實驗:利用 8255 的 A 口、
22、B 口循環(huán)點亮發(fā)光二極管。二、實驗說明圖 6-3-1 8255方式 1 的狀態(tài)字圖 6-3-2 8255方式 2 的狀態(tài)字1. 8255A 的內部結構1) 數(shù)據(jù)總線緩沖器:這是一個雙向三態(tài)的8 位數(shù)據(jù)緩沖器, 它是 8255A 與微機系統(tǒng)數(shù)據(jù)總線的接口。輸入輸出的數(shù)據(jù)、CPU輸出的控制字以及CPU輸入的狀態(tài)信息都是通過這個緩沖器傳送的。2) 三個端口 A,B 和 C:A 端口包含一個8 位數(shù)據(jù)輸出鎖存器和緩沖器,一個 8 位數(shù)據(jù)輸入鎖存器。 B 端口包含一個8 位數(shù)據(jù)輸入 / 輸出鎖存器和緩沖器,一個8 位數(shù)據(jù)輸入緩沖器。 C端口包含一個8 位數(shù)據(jù)輸出鎖存器及緩沖器,一個8 位數(shù)據(jù)輸入緩沖器(
23、輸入沒有鎖存器)。3) A 組和 B 組控制電路:這是兩組根據(jù)CPU輸出的控制字控制8255 工作方式的電路,它們對于 CPU而言,共用一個端口地址相同的控制字寄存器,接收 CPU輸出的一字節(jié)方式控制字或對C 口按位復位字命令。方式控制字的高5 位決定 A 組工作方式, 低 3 位決定B 組的工作方式。對C 口按位復位命令字可對C口的每一位實現(xiàn)置位或復位。A 組控制電路控制A 口和C 口上半部,B 組控制電路控制B 口和C 口下半部。4) 讀寫控制邏輯: 用來控制把CPU輸出的控制字或數(shù)據(jù)送至相應端口,也由它來控制把狀態(tài)信息或輸入數(shù)據(jù)通過相應的端口送到CPU。2. 8255A 的工作方式方式
24、0基本輸入輸出方式;方式 1選通輸入輸出方式;方式 2雙向選通輸入輸出方式。3. 8255A 的狀態(tài)字圖 6-3-1 8255方式 1 的狀態(tài)字圖 6-3-2 8255方式 2 的狀態(tài)字4. 8255A 的控制字表 6-3-3 8255A 方式控制字1D6D5D4D3D2D1D0特A 組方式A 口C口高 4位B 組方式B 口C口低 4位征00=方式 001= 方式 10=輸出0=輸出0=方式 00=輸出0=輸出位1X=方式 21=輸入1=輸入1=方式 11=輸入1=輸入表 6-3-4按位置位 / 復位控制字0D6D5D4D3D2D1D0特征位不用位選擇0=復位000=C口 0 位 111=C
25、口 7 位1=置位三、實驗原理圖圖 6-3-5可編程并行接口8255 電路四、實驗步驟1、流水燈實驗(1) 實驗連線該模塊的 WR、RD分別連到 ISA 總線接口模塊的IOWR、IORD。該模塊的數(shù)據(jù) ( AD0AD7)、地址線( A0A7)分別連到ISA 總線接口模塊的數(shù)據(jù)(LD0LD7)、地址線( LA0LA7)。8255模塊選通線 CE連到 ISA 總線接口模塊的 0000H。8255的 PA0 PA7連到發(fā)光二極管的 L0 L7;8255 的 PB0 PB7 連到發(fā)光二極管的L8 L15。(2) 運行程序,觀察發(fā)光二極管。圖 6-3-6流水燈實驗實驗四可編程定時器 / 計數(shù)器 8254
26、 實驗一實驗目的1. 掌握 8254 定時 / 計數(shù)器的編程方法。2. 學習 8254 的幾種工作方式。3. 了解計數(shù)器的硬件連接及時序關系。二實驗內容1.將 32Hz 的晶振頻率作為8254 的時鐘輸入,利用定時器8254產生 1Hz的方波,用發(fā)光二極管顯示輸出結果(發(fā)光二極管閃爍)。三、實驗原理1.8254 工作原理8254 是一種可編程的定時器/ 計數(shù)器芯片,它具有3 個獨立的16 位計數(shù)器通道,每個計數(shù)器都可以按照二進制或二- 十進制計數(shù),每個計數(shù)器都有6 種工作方式,計數(shù)頻率可高達 24MHz,芯片所有的輸入輸出都與TTL 兼容。計數(shù)器都有6 種工作方式: 方式 0計數(shù)過程結束時中斷
27、;方式 1可編程的單拍脈沖;方式 2頻率發(fā)生器;方式 3方波發(fā)生器;方式 4軟件觸發(fā);方式5硬件觸發(fā)。 6 種工作方式主要有 5 點不同: 一是啟動計數(shù)器的觸發(fā)方式和時刻不同; 二是計數(shù)過程中門控信號GATE對計數(shù)操作的影響不同;三是 OUT輸出的波形不同;四是在計數(shù)過程中重新寫入計數(shù)初值對計數(shù)過程的影響不同; 五是計數(shù)過程結束, 減法計數(shù)器是否恢復計數(shù)初值并自動重復計數(shù)過程的不同。8254 管腳圖:圖 3-3-1可編程定時器 / 計數(shù)器 8254 管腳圖2. 8254 工作方式和編程根據(jù)片選信號CS及地址線A1、A0,8254 具有四個端口地址。當A1A0=00時,選中的為0通道計數(shù)器;A1
28、A0=01時,選中的為1 通道計數(shù)器;A1A0 為 10時,選中的為2 通道計數(shù)器;A1A0=11 時,選中控制字寄存器。8253 通道及操作地址分配如下表所示:CSRDWRA1A0操作00100讀計數(shù)器 000101讀計數(shù)器 100110讀計數(shù)器 200111無操作(禁止讀)01000計數(shù)常數(shù)寫入計數(shù)器001001計數(shù)常數(shù)寫入計數(shù)器101010計數(shù)常數(shù)寫入計數(shù)器201011寫入方式控制字1XXXX禁止(三態(tài))011XX不操作通過對控制字符寄存器寫入控制字可設定8254 的某一個通道的六種工作方式,其格式如下:D7D6D5D4D3D2D1D0SC1SC0RL1RL0M2M1M0BCDSC、 S
29、C 用來選擇計數(shù)器通道:10SC1SC0選擇通道00選中 0 通道計數(shù)器01選中 1 通道計數(shù)器10選中 2 通道計數(shù)器11非法RL1、 RL0 用來選擇讀計數(shù)值及向計數(shù)器送入數(shù)據(jù)的方式:RL1RL0讀 / 輸入選擇00計數(shù)器鎖存01只讀 / 輸入低字節(jié)10只讀 / 輸入高字節(jié)11先讀 / 輸入低字節(jié),后讀 / 輸入高字節(jié)M2、 M1、 M0 用來選擇工作方式:M2M1M0工作方式000方式0001方式 1X10方式 2X11方式 3100方式 4101方式 5BCD用來選擇二進制計數(shù)及十進制計數(shù)。當此位為 0 時,為 16 位二進制計數(shù)器;當此位為1 時,為 4 位二 - 十進制計數(shù)器。方式
30、 0 為計數(shù)結束申請中斷的方式。當方式控制字寫入后,輸出為低電平。 在寫入計數(shù)值后, 計數(shù)器開始計數(shù)。計數(shù)器減到0 后,輸出變?yōu)楦唠娖?,此高電平信號一直維持到寫入新的控制字, 或寫入新的計數(shù)值為止。此時可利用計數(shù)到0 時,輸出由低電平變?yōu)楦唠娖降男盘柹暾堉袛唷?如果在計數(shù)過程中寫入新的計數(shù)值,則在寫入第一個字節(jié)時中止計數(shù),寫入第二個字節(jié)時啟動新的計數(shù)。方式 1 為單脈沖發(fā)生方式。輸出的負脈沖寬度由計數(shù)值決定。在設定工作方式和寫入計數(shù)值之后, 輸出為高電平。門控信號的上升沿使輸出變?yōu)榈碗娖?,并開始計數(shù)。當計數(shù)結束時,輸出為高電平,當門控信號為高電平時,計數(shù)器從最初計數(shù)值啟動。由于計數(shù)器寫入控制字
31、后輸出為高電平,當寫入計數(shù)值后才開始并輸出脈沖,因此也可通過寫入計數(shù)值來實現(xiàn)軟件同步。方式 3 為方波發(fā)生方式。類似于方式2,當計數(shù)值為偶數(shù)時,前N/2 為高電平,后N/2為低電平。當計數(shù)值為奇數(shù)時,則(N+1) /2 為高電平,( N-1) /2 為低電平。方式 4 為軟件觸發(fā)脈沖方式。在寫入控制字后, 輸出為高電平, 寫入計數(shù)值后開始計數(shù)。計數(shù)結束產生一個負脈沖,寬度為一個時鐘周期。計數(shù)期間若寫入新的計數(shù)值,不影響當前周期,但影響下一個計數(shù)周期。在計數(shù)期間如門控信號變?yōu)榈碗娖剑嫈?shù)停止。方式 5 為硬件觸發(fā)選通方式。寫入控制字和計數(shù)值后,輸出保持高電平,在門控信號的上升沿開始計數(shù),計數(shù)結束
32、產生一個時鐘周期的負脈沖。在計數(shù)過程中可重新啟動,在門控信號的上升沿重新計數(shù)。3 8254 編程方法對 8254 的編程分兩部分:( 1)向控制字寄存器寫入方式控制字。( 2)向規(guī)定的通道寫入計數(shù)值。在寫入計數(shù)值時,應向設定的通道寫入。而且必須按控制字所規(guī)定的一個或兩個字節(jié)的計數(shù)長度寫入。由于在 8254 內部每個計數(shù)器均有自己的方式控制字寄存器,因此在寫入控制字及計數(shù)值時不一定按0 通道、 1 通道、 2 通道的次序,而可按編程時的方便來決定。在將8254 作為計數(shù)器時,可以在計數(shù)過程中將計數(shù)值讀出來。讀數(shù)時可按控制字規(guī)定的方式向該通道/ 讀出一個字節(jié)或兩個字節(jié)的計數(shù)值。為保證讀數(shù)的正確性,
33、可通過門控信號使其停止計數(shù),或控制外部脈沖源禁止輸入??刂频牧硪粋€辦法是向控制字寄存器寫入一鎖存計數(shù)值的命令,使當前的計數(shù)值鎖存下來。然后用讀通計數(shù)值的方法將其讀出。鎖存計數(shù)操作的格式如下:SC1SC000xxxxSC1、 SC0 用來指定被鎖存的計數(shù)器,分別為00、 01、10。四、源代碼MY_STACKSEGMENT PARA 'STACK'DB100 DUP(?)MY_STACKENDSMY_DATA SEGMENT PARA 'DATA'IO_9054base_address DB 4 DUP(0);PCI 卡 9054 芯片 I/O 基地址暫存空間IO
34、_base_address DB 4 DUP(0);PCI 卡 I/O基地址暫存空間pcicardnotfindDB0DH,0AH,'pcicardnotfindoraddress/interrupterror !',0DH,0AH,'$'GOODDB 0DH,0AH,'The Program is Executing !',0DH,0AH,'$'P8254_T0DW0000HP8254_T1DW0001HP8254_T2DW0002HP8254_MODEDW0003HP8255_ADW0020HP8255_BDW0021HP82
35、55_CDW0022HP8255_MODEDW0023HMY_DATA ENDsMY_CODE SEGMENT PARA 'CODE'MY_PROCPROCFARASSUMECS:MY_CODE,DS:MY_DATA,SS:MY_STACKMAIN:.386 ;386模式編譯MOVAX,MY_DATAMOVDS,AXMOVES,AXMOVAX,MY_STACKMOVSS,AXCALL FINDPCI; 自動查找 PCI 卡資源及 IO 口基址MOVCX,word ptr IO_base_address;MOVCX,0E800H; 直接加入 (E800: 本機 PCI 卡 IO
36、口基址 )ADDP8254_T0,CX;PCI 卡 IO 基址 +偏移ADDP8254_T1,CXADDP8254_T2,CXADDP8254_MODE,CXADDP8255_A,CX;PCI 卡 IO 基址 +偏移ADDP8255_B,CXADDP8255_C,CXADDP8255_MODE,CXMOVMOVDX,P8254_MODE AL,37H; 寫入方式控制字; 計數(shù)器 0, 先讀寫低位,后讀寫高位,OUTDX,AL; 方式3, BCD碼計數(shù)MOV AH, 4CHINT21HA1:MOVDX,P8254_T0MOVAL,32H;初值低 8位OUTDX,ALMOVAL,00H;初值高 8位OUTDX,ALMY_PROCENDp;*;/* 按任意鍵退出 */;*;*;/*找卡子程序*/;*;FUNCTION CODEIO_port_addreEQU 0CF8H;32 位配置地址端口IO_port_dataEQU 0CFCH;32 位配置數(shù)據(jù)端口IO_PLX_IDEQU 200810B5H;PCI 卡設備及廠商 IDBADR0=10H; 基地址寄存器 0BADR1=14H; 基地址寄存器 1BADR2=18H; 基地址寄存器 2BADR3=1CH; 基地址寄存器 3FINDPCI PROCNEAR; 查找
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產銷售入職合同
- 心里培訓測試題及答案
- 商務英語交流方法試題及答案2025年
- 樂理考試中的音色變化與和聲運用試題及答案
- 安全事故應急預案試題及答案
- 影視包裝測試題及答案
- 氬弧焊應聘面試題及答案
- 安全工程師考試方法2025年試題及答案
- 提高商務英語書寫邏輯的試題及答案
- 農產品電商市場競爭策略題目及答案
- 高中數(shù)學說題課件
- 2023年生態(tài)環(huán)境綜合行政執(zhí)法考試參考題庫(400題)
- 血液透析充分性評估
- 中國故事英文版后羿射日英文二篇
- 汽車吊裝t梁施工方案(終)
- GB/T 36572-2018電力監(jiān)控系統(tǒng)網絡安全防護導則
- GB/T 19066.1-2003柔性石墨金屬波齒復合墊片分類
- 常見的圓柱截切體名師優(yōu)質課賽課一等獎市公開課獲獎課件
- 《蔣公的面子劇本》
- 《工廠供電》第六版習習題解答(不全)
- 國內常見模具鋼牌號對照表
評論
0/150
提交評論