李鵬+趙立輝
摘要:討論了在《微機原理及應用》或《微機原理與接口技術》等教材中,編寫匯編語言程序設計部分的兩種方法,作者運用這兩種方法從提高教學效率的目的出發,編寫與出版了兩本教材,并分析了這兩種方法的特點。
關鍵詞:匯編語言;16位機;32位機;指令系統
中圖分類號:TN79-4 文獻標識碼:A 文章編號:
1.引言
在《微機原理與接口技術》、《微機原理及應用》等教材中,80X86匯編語言一般僅占有1-3章的篇幅,但是,如果專門開設《匯編語言程序設計》課程,則要選用專門的《匯編語言程序設計》教程,一般安排48學時左右的教學時間。在我們出版的《微機原理與接口技術》和《微機原理及應用》兩本教程中,分別用了兩章和一章的篇幅來介紹80X86匯編語言程序設計,但是,80X86指令集包括16位和32位計算機指令系統,指令復雜,16位和32位匯編語言格式有所不同,內容廣泛,要保護匯編語言的完整性,但又受到篇幅的限制,因此,從提高匯編語言程序設計的教學效率出發,結合教學實際,精心組織內容,兩本教材采用了兩種不同的撰寫方式。
2.采用32位機的方式撰寫匯編語言(第一方式)
《微機原理與接口技術》教材只介紹32位匯編語言程序設計,但含蓋了16位計算機的指令系統及匯編語言程序設計。《微機原理及應用》教材則按照80X86的發展先后,首先介紹了16位機指令系統及編程,然后介紹了32位機指令系統及編程,從提高教學效率及培養實用性人才方面分析,各有特色。
2.1 首先介紹16位段和32位段
32位機上電或復位后,CPU首先工作在實地址模式,它與8086CPU的工作方式有相同的基本結構,存儲器分段每段最多64KB,稱為16位段,32位機既可以工作在32位段又可以工作在16位段。
2.2第二步講解尋址方式
介紹尋址方式之前,明確指出了指令格式中出現的符號及含義,包括8、16以及32位,顯然,介紹32位機指令系統的同時,也就包含了16位計算機的指令系統。
尋找操作數或操作數地址的方式稱為尋址方式,16位和32位指令系統的尋址方式基本上是相同的,只不過32位微處理器多兩個段寄存器,在CPU訪問存儲器時,有效地址的形成比較復雜,增加了“變址*比例因子”一個累加項。
2.3 第三步分析32位微處理器指令系統
因為已經聲明了指令系統中出現的符號及含義,所以,每條指令的通用格式中就含蓋了8、16及32位指令,通過舉例說明,可以達到事半功倍的效果。
2.4最后介紹匯編語言編程
介紹了匯編語言中的常量、變量、標號以及許多規定,按照先后順序,介紹了16位完整段匯編語言程序設計、16位簡化段匯編語言程序設計、32位匯編語言程序設計,簡單指出了匯編語言程序的格式,并按照匯編語言程序的格式編寫了經典的匯編程序。
3.采用先介紹16位后介紹32位的方式撰寫匯編語言(第二方式)
《微機原理及應用》教材只用一章的篇幅(包括3小節),表述了16位和32位機的指令系統及匯編語言編程,第一節是8086 CPU的尋址方式,第二節是16位微處理器的指令系統,第三節是匯編語言編程。
匯編語言編程一節包括比較多的內容:
機器語言與匯編語言;
匯編語言中的常量、變量和標號;
16位完整段匯編語言程序設計;
32位尋址方式;
32位微處理器擴充與新增指令;
簡化段匯編語言程序設計。
從以上可以看出,待講完16位完整段匯編語言程序設計之后,接著介紹32位尋址方式、32位微處理器擴充與新增指令以及32位程序設計,最后使用簡化段格式編寫32位程序,并用實際程序例子進行說明。
4.兩種方式的特點
共同點:
(1)保護了16、32位匯編語言編程的完整性。
(2)內容精煉,便于自學,便于教學,介紹指令系統時列舉了大量指令、講解匯編語言編程時,列舉了較豐富的典型程序例子。
差異:
第一方式知識起點高,結構嚴謹,一旦入門后就不難學習;不需要另外闡述16位匯編語言編程,舉例時,既可以列舉16位也可以列舉32位。
第二方式做到了先易后難、便于自學、只有一章,篇幅僅是第一方式的2/3,重點突出。
5.結語
在《微機原理及應用》等包含有匯編語言編程的教材中,編寫匯編語言部分可以運用該文中提到的兩種方法,但是,一定要從提高教學效率出發,優化結構,充實實例,便于自學。
參考文獻:
[1]李鵬等.微機原理及應用[M].北京:電子工業出版社,2014.
作者簡介:
李鵬(1978-),男(漢族),湖北仙桃人,長江大學計算機科學學院,副教授,碩士endprint