計(jì)算機(jī)組成原理中斷實(shí)驗(yàn)報(bào)告_第1頁
計(jì)算機(jī)組成原理中斷實(shí)驗(yàn)報(bào)告_第2頁
計(jì)算機(jī)組成原理中斷實(shí)驗(yàn)報(bào)告_第3頁
計(jì)算機(jī)組成原理中斷實(shí)驗(yàn)報(bào)告_第4頁
計(jì)算機(jī)組成原理中斷實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、北京建筑大學(xué)2015/2016 學(xué)年 第 二 學(xué) 期課程設(shè)計(jì)課程名稱 計(jì)算機(jī)組成原理綜合實(shí)驗(yàn)設(shè)計(jì)題目 微程序控制器設(shè)計(jì)與實(shí)現(xiàn)系 別 電信學(xué)院計(jì)算機(jī)系 班 級(jí) 計(jì) 141 學(xué)生姓名 艾尼瓦爾·阿布力米提 學(xué)號(hào)完成日期 二一六年七月八日星期五成績指導(dǎo)教師(簽名) 計(jì)算機(jī)組成綜合實(shí)驗(yàn)任務(wù)書指導(dǎo)教師姓 名王懷秀系計(jì)算機(jī)任務(wù)微程序控制器的設(shè)計(jì)與 實(shí)現(xiàn)人數(shù)32學(xué)時(shí)1周實(shí)驗(yàn)?zāi)康?融合貫通計(jì)算機(jī)組成原理課程, 加深對(duì)計(jì)算機(jī)系統(tǒng)各模塊 的工作原理及相互聯(lián)系(寄存器堆、運(yùn)算器、存儲(chǔ)器、控制 臺(tái)、微程序控制器) 。2理解并掌握微程序控制器的設(shè)計(jì)方法和實(shí)現(xiàn)原理, 具備初 步的獨(dú)立設(shè)計(jì)能力; 3掌握較復(fù)雜微程

2、序控制器的設(shè)計(jì)、調(diào) 試等基本技能;提高綜合運(yùn)用所學(xué)理論知識(shí)獨(dú)立分析和解決 問題的能力。實(shí)驗(yàn)任務(wù)? 基于 TEC-9 教學(xué)實(shí)驗(yàn)平臺(tái)基于原有指令集的基礎(chǔ)上設(shè)計(jì)或擴(kuò)展 48 條指令。首先在原微程序控制器指令系統(tǒng)的基礎(chǔ)上進(jìn) 行原指令集的微指令編碼的測試,然后利用上端軟件,編寫 用戶設(shè)計(jì)的微指令,實(shí)現(xiàn)指令預(yù)定的功能。實(shí)驗(yàn)步驟? 1、進(jìn)行原實(shí)驗(yàn)平臺(tái)指令集的微程序控制器下指令運(yùn)行測試;? 2、記錄每一條機(jī)器指令的指令的執(zhí)行流程和微命令編碼;? 3、畫出每一條指令的指令微程序執(zhí)行流程圖;? 4、在原有指令集基礎(chǔ)上自行設(shè)計(jì)或擴(kuò)展 48 條指令。畫出擴(kuò)展指令的指令執(zhí)行流程圖;? 5、利用上端軟件, 把所編寫的微程

3、序控制器內(nèi)容寫入實(shí)驗(yàn)臺(tái)中控制器中。? 6、利用單拍測試控制器與編程的要求是否一致。 如果有錯(cuò)誤重新修改后再寫入控制器中7、 編寫一段測試程序,測試控制器運(yùn)行是否正確? 實(shí)驗(yàn)?zāi)康?融合貫通計(jì)算機(jī)組成原理課程, 加深對(duì)計(jì)算機(jī)系統(tǒng)各模塊的 工作原理及相互聯(lián)系(寄存器堆、運(yùn)算器、存儲(chǔ)器、控制臺(tái)、 微程序控制器)。2理解并掌握微程序控制器的設(shè)計(jì)方法和實(shí)現(xiàn)原理, 具備初步 的獨(dú)立設(shè)計(jì)能力; 3掌握較復(fù)雜微程序控制器的設(shè)計(jì)、 調(diào)試等 基本技能;提高綜合運(yùn)用所學(xué)理論知識(shí)獨(dú)立分析和解決問題的 能力。? 實(shí)驗(yàn)電路1. 微指令格式與微程序控制器電路2. 微程序控制器組成仍然使用前面的 CPU組成與機(jī)器指令執(zhí)行實(shí)驗(yàn)的

4、電路圖, 但本次 實(shí)驗(yàn)加入中斷系統(tǒng)。 這是一個(gè)簡單的中斷系統(tǒng)模型, 只支持單級(jí)中斷、 單個(gè)中斷請(qǐng)求,有中斷屏蔽功能,旨在說明最基本的原理。中斷屏蔽控制邏輯分別集成在 2片 GAL22V(10TIMER1 和TIMER2)中。其 ABEL語言表達(dá)式如下:INTR1 := INTR;INTR1.CLK = CLK1;IE := CLR & INTS # CLR & IE & !INTC;IE.CLK= MF;INTQ = IE & INTR1;其中, CLK1是 TIMER1產(chǎn)生的時(shí)鐘信號(hào) , 它主要是作為 W1W4的 時(shí)鐘脈沖,這里作為 INTR1的時(shí)鐘信號(hào), I

5、NTE 的時(shí)鐘信號(hào)是晶振產(chǎn) 生的 MF。INTS 微指令位是 INTS機(jī)器指令執(zhí)行過程中從控制存儲(chǔ)器讀 出的,INTC微指令位是 INTC 機(jī)器指令執(zhí)行過程中從控制存儲(chǔ)器讀出 的。INTE 是中斷允許標(biāo)志,控制臺(tái)有一個(gè)指示燈 IE 顯示其狀態(tài),它 為 1 時(shí),允許中斷,為 0 時(shí),禁止中斷。當(dāng) INTS = 1 時(shí),在下一個(gè) MF的上升沿 IE 變 1,當(dāng) INTC = 1時(shí),在下一個(gè) MF的上升沿 IE 變 0。 CLR信號(hào)實(shí)際是控制臺(tái)產(chǎn)生的復(fù)位信號(hào) CLR#。當(dāng) CLR = 0時(shí),在下一 個(gè) CLK1的上升沿 IE 變 0。當(dāng) CLR=1 且 INTS = 0 且 INTC = 0 時(shí),

6、IE 保持不變。INTR 是外部中斷源,接控制臺(tái)按鈕 INTR。按一次 INTR 按鈕,產(chǎn) 生一個(gè)中斷請(qǐng)求正脈沖 INTR。INTR1是 INTR 經(jīng)時(shí)鐘 CLK1同步后產(chǎn)生 的,目的是保持 INTR1與實(shí)驗(yàn)臺(tái)的時(shí)序信號(hào)同步。 INTR 脈沖信號(hào)的 上升沿代表有外部中斷請(qǐng)求到達(dá)中斷控制器。 INTQ 是中斷屏蔽控制 邏輯傳遞給 CPU的中斷信號(hào),接到微程序控制器上。當(dāng)收到 INTR 脈 沖信號(hào)時(shí),若中斷允許位 INTE,則中斷被屏蔽, INTQ仍然為; 若 INTE ,則 INTQ 。為保存中斷的斷點(diǎn)地址, 以便中斷返回, 設(shè)置了一個(gè)中斷地址寄 存器 IAR。第二節(jié)圖 4 中的 IAR(U19

7、)就是這個(gè)中斷地址寄存器,它 是一片 74HC374,有 LDIAR和 IAR_BUS#兩個(gè)信號(hào)輸入端, 均連接至微 程序控制器。 LDIAR信號(hào)的上升沿到達(dá)時(shí),來自程序計(jì)數(shù)器 PC 的地 址會(huì)置入 IAR 中。IAR_BUS#為時(shí),保存在 IAR 中的斷點(diǎn)地址會(huì)輸出 到數(shù)據(jù)總線 DBUS上。由于本實(shí)驗(yàn)系統(tǒng)只有一個(gè)斷點(diǎn)寄存器而無堆棧, 因此僅支持一級(jí)中斷而不支持多級(jí)中斷。中斷向量即中斷服務(wù)程序的入口地址, 在本實(shí)驗(yàn)儀中由位數(shù)碼 開關(guān) SW7 SW0提供。3. 中斷的檢測、執(zhí)行和返回過程微程序控制器每執(zhí)行一條機(jī)器指令之后, 執(zhí)行下一條機(jī)器指令之 前,先轉(zhuǎn)到微地址 0F處(見圖 12 微程序流程圖

8、),在條件位 P1=1時(shí) 判斷是否有中斷請(qǐng)求 INTQ。如果沒有 INTQ,則繼續(xù)正常的機(jī)器指令 執(zhí)行。若檢測到中斷請(qǐng)求 INTQ,首先發(fā)出關(guān)中斷信號(hào) INTC、保存斷 點(diǎn)信號(hào) LDIAR,并且發(fā)出停機(jī)信號(hào) TJ,等待手動(dòng)設(shè)置中斷向量。設(shè)置 好 SW7SW0后,按 QD 按鈕啟動(dòng),機(jī)器將中斷向量讀入程序計(jì)數(shù)器 PC中,從而轉(zhuǎn)到中斷服務(wù)子程序去執(zhí)行。執(zhí)行一條機(jī)器指令 IRET,從中斷服務(wù)子程序返回時(shí),發(fā)出 IAR_BUS#信號(hào),從中斷地址寄存器 IAR 向數(shù)據(jù)總線 DBUS輸出斷點(diǎn)地 址,再從 DBUS依次寫入到 R4、PC中,恢復(fù)執(zhí)行被中斷的程序。發(fā)生中斷時(shí),關(guān)中斷由硬件負(fù)責(zé),而中斷現(xiàn)場 (

9、寄存器堆中的寄 存器,進(jìn)位標(biāo)志 C)的保存和恢復(fù)由中斷服務(wù)程序來處理。? 實(shí)驗(yàn)任務(wù)(1)了解中斷系統(tǒng)中每個(gè)信號(hào)的意義和變化條件,并將下面的 主程序和中斷服務(wù)程序手工匯編成十六進(jìn)制機(jī)器代碼, 此項(xiàng)任務(wù)應(yīng)在 預(yù)習(xí)時(shí)完成。主程序:地址指令機(jī)器代碼20HINTS21HLDA R0,R222HADD R0,R023HADD R0,R024HADD R0,R025HADD R0,R026HADD R0,R027HADD R0,R028HADD R0,R029HJMP R1中斷服務(wù)程序:地址指令機(jī)器代碼0A0HAND R0,R00A1HIRET( 2)參考 CPU組成與機(jī)器指令執(zhí)行實(shí)驗(yàn),再加上中斷系統(tǒng),完

10、成本次實(shí)驗(yàn)的線路連接。接通電源之前應(yīng)仔細(xì)檢查接線,確認(rèn)無誤。(3)將上述任務(wù)( 1)的程序代碼存入內(nèi)存中,并根據(jù)需要設(shè)置 通用寄存器組和內(nèi)存相關(guān)單元的數(shù)據(jù)。其中,寄存器R1 的值應(yīng)置為21H,以便程序循環(huán)執(zhí)行。4)從地址 20H執(zhí)行程序,在程序運(yùn)行中,按一次控制臺(tái)的 INTR。進(jìn)入中斷后,用單拍( DP)方式執(zhí)行,直到返回主程序?yàn)橹埂A斜碛涗浿袛嘞到y(tǒng)中有關(guān)信號(hào)的變化情況,特別要紀(jì)錄好斷點(diǎn)地址和 R0 的 值。(5)重復(fù)執(zhí)行( 4)兩次。(一共執(zhí)行 3 次)(6)將 RAM中 20H單元的內(nèi)容由指令 INTS 改為 INTC,重作(4), 記錄發(fā)生的現(xiàn)象。六、實(shí)驗(yàn)步驟和實(shí)驗(yàn)結(jié)果1、實(shí)驗(yàn)程序主程序

11、:地址指令機(jī)器代碼20HINTS0BH21HLDA R0,R258H22HADD R0,R000H23HADD R0,R000H24HADD R0,R000H25HADD R0,R000H26HADD R0,R000H27HADD R0,R000H28HADD R0,R000H29HJMP R184H中斷服務(wù)程序:地址指令機(jī)器代碼0A0HAND R0,R030H0A1HIRET0A0H2、接線 微程序控制器與數(shù)據(jù)通路之間的線可以通過選擇開關(guān)直接選擇。將開關(guān)設(shè)置為“微程 序”。只需連接數(shù)據(jù)通路部分的線。a 、數(shù)據(jù)通路的 LDIR 接 CER、LDPC接 LDR4、 LDDR1接 LDDR、2 M

12、1 接 M2、 LDAR1接 LDAR2。b、指令寄存器 IR 的輸出 IR0 接雙端口寄存器堆的 RD0、 WR,0IR1 接 RD1、 WR,1 IR2 接 RS0, IR3 接 RS1。C、單脈沖 DMC接 中斷 INTR選擇開關(guān)拔至“微程序”3、存程序機(jī)器代碼, 設(shè)置通用寄存器 R1、R2及內(nèi)存相關(guān)單元的數(shù)據(jù)。(1)、設(shè)置寄存器 R1、R2 的值根據(jù)要求,設(shè)置 R1 = 21H,R2的值由實(shí)驗(yàn)者自定,假定為 10H。1)、令 DP = 0,DB = 0,DZ =0,使實(shí)驗(yàn)系統(tǒng)處于連續(xù)運(yùn)行狀態(tài)。 令 SWB = 1, SWA = 1,使實(shí)驗(yàn)系統(tǒng)處于寄存器加載工作方式 KLD。按 CLR#

13、按鈕,使實(shí)驗(yàn)系統(tǒng)處于初始狀態(tài)。1)、在 SW7SW0上設(shè)置一個(gè)存儲(chǔ)器地址,該存儲(chǔ)器地址供設(shè)置通用寄存器使用。 該存儲(chǔ)器地址最好是不常用的一個(gè)地址, 以免 設(shè)置通用寄存器操作破壞重要的存儲(chǔ)器單元的內(nèi)容。 例如可將該 地址設(shè)置為 0FFH。按一次 QD按鈕,將 0FFH寫入 AR1和 AR2。2)在 SW7 SW0上設(shè)置 01H,作為通用寄存器 R1 的寄存器號(hào)。按 一次 QD按鈕,將 01H寫入 IR 。3)在 SW7 SW0設(shè)置 21H,按一次 QD按鈕,將 21H 寫入 IR 指定 的 R1 寄存器。4)在 SW7 SW0上設(shè)置 02H,作為通用寄存器 R2 的寄存器號(hào)。按 一次 QD按鈕,

14、將 02H寫入 IR 。5)在 SW7 SW0設(shè)置 10H,作為 R2的值。按一次 QD按鈕,將 10H 寫入 IR 指定的 R2寄存器。6)設(shè)置 R1、R2結(jié)束,按 CLR#按鈕,使實(shí)驗(yàn)系統(tǒng)恢復(fù)到初始狀態(tài)。( 2)、存程序機(jī)器代碼。本操作中,我們?cè)?10H 單元存入 01H(也可以是其他值) ,從 20 地址開始存 10個(gè)機(jī)器代碼: 0B0H,58H,00H,00H,00H,00H,00H, 00H,00H,84H。從 0A0H存入 2個(gè)機(jī)器代碼 :30H,0A0H。1)令 DP = 0,DB = 0,DZ =0,使實(shí)驗(yàn)系統(tǒng)處于連續(xù)運(yùn)行狀態(tài)。令 SWB= 1,SWA= 0,使實(shí)驗(yàn)系統(tǒng)處于寫雙

15、端口存儲(chǔ)器工作方式 KWR。D 按 CLR#按鈕,使實(shí)驗(yàn)系統(tǒng)處于初始狀態(tài)。2)置 SW7 SW0為 10H,按 QD按鈕,將 10H寫入 AR1。3)置 SW7SW0 為 01H,按 QD按鈕,將 01H寫入存儲(chǔ)器 10H單元。 寫主程序1)按 CLR#按鈕,使實(shí)驗(yàn)系統(tǒng)恢復(fù)初始狀態(tài)。2)置 SW7 SW0為 20H,按 QD按鈕,將 20H寫入 AR1。3)置 SW7SW0 為 0B0H,按 QD按鈕,將 0B0H寫入存儲(chǔ)器 20H單 元。 AR1自動(dòng)加 1,變?yōu)?21H。4)置 SW7 SW0為 58H,按 QD按鈕,將 58H寫入存儲(chǔ)器 21H單元。 AR1自動(dòng)加 1,變?yōu)?22H。5)重

16、復(fù)進(jìn)行下去,一直到將 84H寫入存儲(chǔ)器 29H 單元。按 CLR# 按鈕,使實(shí)驗(yàn)系統(tǒng)恢復(fù)到初始狀態(tài)。寫中斷程序1)置 SW7 SW0為 0A0H,按 QD按鈕,將 0A0H寫入 AR1。2)置 SW7 SW0為 30H,按 QD按鈕,將 30H寫入存儲(chǔ)器 0A0H單 元。3)置 SW7 SW0 0A0H,按 QD按鈕,將 0A0H寫入存儲(chǔ)器 0A1H單 元。4)按 CLR#按鈕,使實(shí)驗(yàn)系統(tǒng)恢復(fù)到初始狀態(tài)。 或用實(shí)驗(yàn)臺(tái)監(jiān)控系統(tǒng)或系統(tǒng)上端軟件直接寫入內(nèi)容(3)從地址 20H連續(xù)執(zhí)行程序從地址 20H連續(xù)執(zhí)行程序,在程序運(yùn)行中,按一次控制臺(tái)的 INTR。 進(jìn)入中斷后,用單拍( DP)方式執(zhí)行,直到返

17、回主程序?yàn)橹埂A斜碛?錄中斷系統(tǒng)中有關(guān)信號(hào)的變化情況,特別要紀(jì)錄好斷點(diǎn)地址和R0 的值。1)令 DP = 0,DZ = 0,DB = 0,使實(shí)驗(yàn)系統(tǒng)處于連續(xù)運(yùn)行狀態(tài)。2)置 SW7 SW0為 20H,作為程序的起始地址。按 QD按鈕,啟動(dòng) 程序從 20H 地址運(yùn)行。中斷允許指示燈亮。3)按 INTR 按鈕,發(fā)出一個(gè) INTR中斷脈沖,請(qǐng)求中斷。中斷后硬 件自動(dòng)將中斷地址存入中斷地址寄存器 IAR。微程序地址應(yīng)為 25H。4)置 SW7 SW0為 0A0H,這是中斷程序的入口地址。將 DP由置 0 改為置 1。按一次 QD按鈕,將 0A0H送入程序計(jì)數(shù)器 PC。微程序地 址應(yīng)為 26H。5)按一

18、次 QD按鈕,進(jìn)行取指微操作。微程序地址應(yīng)為 05H。6)按一次 QD按鈕,進(jìn)行置數(shù)微操作。微程序地址應(yīng)為 13H。7)按一次 QD按鈕,進(jìn)行 R0 & R0 操作, 這時(shí)微程序地址應(yīng)為 38H。 觀察 DBUS總線的值,即為 R0 的值。8)按一次 QD按鈕,進(jìn)行寫回微操作。微程序地址應(yīng)為 34H。9)按一次 QD按鈕,進(jìn)行判定有無中斷請(qǐng)求 INTQ微操作。微程序 地址應(yīng)為 0FH。10)按一次 QD按鈕,進(jìn)行取指微操作。微程序地址應(yīng)為 05H。11 )按一次 QD按鈕,進(jìn)行從中斷程序返回主程序微操作。微程序 地址應(yīng)為 1AH。這時(shí)觀察 PC地址, 即中斷地址。12)按一次 QD 按

19、鈕,進(jìn)行判有無新的中斷操作。微程序地址為 0FH。13)按一次 QD按鈕,進(jìn)行取指微操作。 微程序地址為 05H。此刻, 程序已返回主程序。由于按下 INTR按鈕的時(shí)間對(duì)主程序而言, 是隨機(jī)的, 具有不確定 性,因此各次中斷地址、 R0會(huì)具有不同的值。將 RAM中 20H單元的內(nèi)容由指令 INTS改為 INTC,重作( 4),記錄發(fā)生的現(xiàn)象。由于 INTC 是關(guān)中斷指令,因此將不會(huì)發(fā)生中斷4)控制存儲(chǔ)器代碼表1. 微程序控制器信號(hào)表指令當(dāng)前指令CM4CM3CM2CM1CM0LDA R0,R207H10H00H81H20H05H05H10H00H04H91H10H15H10H01H04H00H3

20、6H36H10H0CH20H00H34H34H00H12H00H00H0FHLDA R1,R307H10H00H04H00H05H05H10H00H04H91H10H15H10H01H04H00H36H36H10H0CH20H00H34H34H00H12H00H00H0FHADD R0,R107H10H00H04H00H05H05H10H00H04H91H10H10H10H20H00H00H3BH3BH14H82H20H00H34H34H00H12H00H00H0FHJC +507H10H00H04H00H05H05H10H00H04H91H10H19H10H00H00H00H0FHAND R

21、2,R307H10H00H04H00H05H05H10H00H04H91H10H13H10H20H00H00H38H38H0DH82H20H00H34H34H00H12H00H00H0FHSUB R3,R207H10H00H04H00H05H05H10H00H04H91H10H11H10H20H00H00H3AH3AH03H02H20H00H34H34H00H12H00H00H0FHSTA R3,R207H10H00H04H00H05H05H10H00H04H91H10H14H10H21H04H00H35H35H10H06H00H00H0FHSTP07H10H00H04H00H05H05H10

22、H00H04H91H10H16H30H00H00H00H0FHJMP R107H10H00H04H00H05H05H10H00H04H91H10H18H10H01H01H20H0FHINTS00H30H00H02H08H26H07H10H00H81H20H05H05H10H00H04H91H10H1AH10H20H00H00H3AH3AH03H02H20H00H34H34H00H12H00H00H0FHIRET07H10H00H04H00H05H05H10H00H04H91H10H1BH10H00H41H20H0FH2. 拓展控制器信號(hào)表指令CM4CM3CM2CM1CM0XOR Rd,Rs10

23、H10H04H00H05H10H00H04H91H10H10H20H00H00H31H0BH02H20H00H34H00H12H00H00H0FHINC Rd,Rs10H00H04H00H05H10H00H04H91H10H10H20H00H00H32H00H02H20H00H34H00H12H00H00H0FH? 流程圖2.拓展程序流程圖XOR Rd,RsF=121HM1S2,S110H00H04H00H05H10H00H04H91H10H10H20H00H00H33H17H82H20H00H34H00H12H00H00H0FH10H00H04H00H05H10H00H04H91H10H10H20H00H00H24H0EH02H20H00H34H00H12H INT0 0HOF H00H0FHDEC Rd,RsF=A+BR d,RsLDAR2KT00

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論