- 相關(guān)推薦
匯編語言試題及參考答案
在現(xiàn)實的學(xué)習(xí)、工作中,只要有考核要求,就會有試題,試題可以幫助學(xué);蚋髦鬓k方考察參試者某一方面的知識才能。還在為找參考試題而苦惱嗎?以下是小編為大家收集的語言試題及參考答案,供大家參考借鑒,希望可以幫助到有需要的朋友。
語言試題及參考答案
一部分
(每小題1分,共20分)
1.指令JMP FAR PTR DONE屬于( D )
A.段內(nèi)轉(zhuǎn)移直接尋址 B.段內(nèi)轉(zhuǎn)移間接尋址
C.段間轉(zhuǎn)移直接尋址 D.段間轉(zhuǎn)移間接尋址
2.下列敘述正確的是( C )
A.對兩個無符號數(shù)進行比較采用CMP指令,對兩個有符號數(shù)比較用CMP
S指令
B.對兩個無符號數(shù)進行比較采用CMPS指令,對兩個有符號數(shù)比較用CM
P指令
C.對無符號數(shù)條件轉(zhuǎn)移采用JAE/JNB指令,對有符號數(shù)條件轉(zhuǎn)移用JGE/J
NL指令
D.對無符號數(shù)條件轉(zhuǎn)移采用JGE/JNL指令,對有符號數(shù)條件轉(zhuǎn)移用JAE/J
NB指令
3.一個有128個字的數(shù)據(jù)區(qū),它的起始地址為12ABH:00ABH,請給出這
個數(shù)據(jù)區(qū)最末一個字單元的物理地址是( )
A.12CSBH B.12B6BH C.12C59H D.12BFEH
4.在下列指令的表示中,不正確的是( C )
A.MOV AL,[BX+SI] B.JMP SHORT DONI
C.DEC [BX] D.MUL CL
5.在進行二重循環(huán)程序設(shè)計時,下列描述正確的是( A )
A.外循環(huán)初值應(yīng)置外循環(huán)之外;內(nèi)循環(huán)初值應(yīng)置內(nèi)循環(huán)之外,外循環(huán)之內(nèi)
B.外循環(huán)初值應(yīng)置外循環(huán)之內(nèi);內(nèi)循環(huán)初值應(yīng)置內(nèi)循環(huán)之內(nèi)
C.內(nèi)、外循環(huán)初值都應(yīng)置外循環(huán)之外
D.內(nèi)、外循環(huán)初值都應(yīng)置內(nèi)循環(huán)之外,外循環(huán)之內(nèi)
6.條件轉(zhuǎn)移指令JNE的測試條件為( A )
A.ZF=0 B.CF=0 C.ZF=1 D.CF=1
7.8086CPU在基址加變址的尋址方式中,變址寄存器可以為( D )
A.BX或CX B.CX或SI C.DX或SI
D.SI或DI
8.已知BX=2000H,SI=1234H,則指令MOV AX,[BX+SI+2]的源操作在
( A )中。
A.數(shù)據(jù)段中偏移量為3236H的字節(jié)
B.附加段中偏移量為3234H的字節(jié)
C.數(shù)據(jù)段中偏移量為3234H的字節(jié)
D.附加段中偏移量為3236H的字節(jié)
9.執(zhí)行如下程序:( )
MOV AX,0
MOV AX,0
MOV BX,1
MOV CX,100
A:ADD AX,BX
INC BX
LOOP A
HLT
執(zhí)行后(BX)=( C )
A.99 B.100 C.101 D.102
10.上題的程序執(zhí)行后(AX)=( B )
A.5000 B.5050 C.5100 D.5150
11.對于下列程序段:( )
AGAIN:MOV AL,[SI]
MOV ES:[DI],AL
INC SI
INC DI
LOOP AGAIN 也可用______指令完成同樣的功能。
A.REP MOVSB B.REP LODSB C.REP STOSB D.REPE SCASB
12.下面指令序列執(zhí)行后完成的運算,正確的算術(shù)表達(dá)式應(yīng)是( )
MOV AL,BYTE PTR X
SHL AL,1
DEC AL
MOV BYTE PTR Y,AL
A.y=x2+1 B.x=y2+1 C.x=y2-1 D.y=x2-1
13.在一段匯編程序中多次調(diào)用另一段程序,用宏指令比用子程序?qū)崿F(xiàn)起來。
( B )
A.占內(nèi)存空間小,但速度慢 B.占內(nèi)存空間大,但速度快
C.占內(nèi)存空間相同,速度快 D.占內(nèi)存空間相同,速度慢
14.在程序執(zhí)行過程中,IP寄存器中始終保存的是( )
A.上一條指令的首地址 B.下一條指令的首地址
C.正在執(zhí)行指令的首地址 D.需計算有效地址后才能確定地址
15.PSW寄存器中共有______位條件狀態(tài)位,有______位控制狀態(tài)位。( )
A.6、3 B.3、6 C.8、4 D.4、8
16.下列指令執(zhí)行時出錯的是( A )
A.ADD BUF1,BUF2
B.JMP DWORD PTR DAT [BX]
C.MOV AX,[BX+DI] NUM
D.TEST AL,08H
17.已知(AX)=1234H,執(zhí)行下述三條指令后,(AX)=( D ) MOV BX,AX
NEG BX
ADD AX,BX
A.1234H B.0EDCCH C.6DCCH D.0000H
18.在下列指令中,______指令的執(zhí)行會影響條件碼中的CF位。( )
A.JMP NEXT B.JC NEXT C.INC BX
D.SHL AX,1
19.串指令中的目的操作數(shù)地址是由______提供。( C )
A.SS:[BP] B.DS:[SI] C.ES:[DI]
D.CS:[IP]
20.將DX的內(nèi)容除以2,正確的指令是( )
A.DIV 2 B.DIV DX,2 C.SAR DX,1
D.SHL DX,1
二部分
(每小題4分,共12分)
1.假定(DX)=10111001B,(CL)=0.3,(CF)=1,試確定下列各條指令單獨執(zhí)行后, DX中的值。
(1)SHR DX,1
(2)RCR DL,1
(3)RCL DX,CL ?????
2.寫出完成下述功能的程序段:
(1)傳送25H到AL寄存器
(2)將AL的內(nèi)容乘以2
(3)傳送15H到BL寄存器
(4)AL的內(nèi)容乘以BL的內(nèi)容
并請寫出最后(AX)=?
3.寫一程序段,求雙字長數(shù)DX∶bX的相反數(shù)。
NEG DX
NEG AX
SBB DX, 0
三部分
(每小題6分,共36分)
1.現(xiàn)有如下程序段:
DATA SEGMENT DA3 EQU 1234H
ORG 0020H DA4 EQU $-DA2
DA1 DW 12H,23H DA5 DB 31H,32H
DA2 DB 11H,21H DATA ENDS
請回答:(1)該程序段已占有的存儲字節(jié)數(shù)是多少?
2.執(zhí)行下列程序段后,回答問題。
ORG 1221H MOV BX,OFFSET NUM
NUM DW 12H MOV CL,BYTE PTR NUM+1
… MOV CH,TYPE NUM
MOV AX,NUM HLT
請問:(AX)=__0012H____,(BX)=_1221H_____,(CX)=__0200H____。
3.閱讀如下程序:
ADRR DB XXH,XXH,……,XXH CMP ADRR[BX],0
NUM EQU $ -ADRR LOOPZ DON
RETT DB? JNZ NEXT
… MOV BL,OFFH
MOV CX,NUM NEXT:MOV RETT,BL
MOV BX,-1 HLT
DON:INC BX
請問:(1)該程序完成的功能是什么?
(2)程序執(zhí)行后指出RETT字節(jié)單元中的內(nèi)容是什么?
4.現(xiàn)有一子程序:
SUB1 PROC
PLUS:TEST BL,80H
TEST AL,80H
JE EXITO
JE PLUS
XCHANGE:XCHG AL,BL
TEST BL,80H
EXITO:RET
JNE EXITO
SUB1 ENDP
JMP XCHANGE
試回答:(1)子程序的功能是什么?
(2)若調(diào)用子程序前AL=9AH,BL=77H,則返回主程序時,AL=___
BL=______。
5.閱讀程序段:
BLOCK DB 20H,1FH,08H,81H,OFFH… LOP1:CMP AL,[SI+1]
RESULT DB? JNG NEXT
… MOV AL,[SI+1]
START:LEA SI,BLOCK NEXT:INC SI
MOV CX,[SI] LOOP LOP1
INC SI MOV RESULT,AL
MOV AL,[SI] HLT
請問:(1)該程序完成的功能是什么?
(2)該程序循環(huán)的次數(shù)是多少?
6.閱讀如下程序段,回答所提出的問題,假定X1,X2,XN為無符號數(shù)。 ORG 100H
BLOK DW X1,X2,…,XN
COUNT EQU($-BLOLOK)/2
RESULT DW COUNT,?
LEA BX,BLOK-2
MOV CX,RESULT
XOR AX,AX
GOON:ADD BX,2
CMP AX,[BX]
JAE NEXT
MOV AX,[BX]
NEXT:LOOP GOON
MOV RESULT+2,AX
程序段執(zhí)行完,回答下述問題
RESULT+2字存儲單元的內(nèi)容=______
BX=______
程序循環(huán)次數(shù)=______
四部分
一、1-10CCCCAADACB 11-20.ADBBAADDCC
二,簡答題(每小題4分,共12分)
1.答:(1) 005CH (2) 00DCH (3) 05CCH
2. 答:(1)MOV AL, 25H
(2)SHL AL, 1
(3)MOV BL, 15H
(4)MUL BL
最后,(AX)=612H =1554
3.答:NEG DX
NEG AX
SBB DX, 0
三,程序分析題(每小題6分,共36分)
1. 答:(1) 該程序段已占有的存儲字節(jié)數(shù)是8個字節(jié)
(2) 符號名DA4的值為2,符號名DA5的值是0026H。
2. 答:(AX)=0012H (BX)=1221H (CX)=0200H
3.答:(1) 在以ADRR為起始地址的數(shù)組中,查找第一個非0數(shù)據(jù)。
(2) 若找到則將第一個非0數(shù)據(jù)在數(shù)組中的偏移量送入RETT單元 中;若無非0數(shù)據(jù),則將OFFH送入RETT單元中。
4.答:(1)子程序的功能是判別AL和BL中的數(shù)是否為異號數(shù),當(dāng)為異號 時交換,否則不變。
(2) AL=77H, BL=9AH
5. 答:(1) 該程序完成的功能是從20H(32)個有符號數(shù)中找出最小的數(shù) 送入RESUL T單元中。
(2) 該程序的循環(huán)次數(shù)是1FH(31)。
6.答:RESULT+2字存儲單元的內(nèi)容是MAX(X1, X2, … XN) BX= 100H + 2×(COUNT-1)
程序循環(huán)次數(shù)= COUNT
看過“匯編語言試題”的人還看了:
1.大學(xué)《匯編語言》試題及答案
2.程序設(shè)計試題及答案
匯編語言課程設(shè)計報告
一、預(yù)備知識
匯編語言程序設(shè)計是一門實踐性很強的課程。編寫程序、上機調(diào)試、運行程序是進一步學(xué)習(xí)和掌握匯編語言程序設(shè)計的必要手段。
二、實驗?zāi)康?/strong>
1、 掌握實驗運行匯編語言所用的計算機機型
2、 熟悉常用編輯程序(行編輯程序EDLIN、全屏幕編輯程序QE及其它用于文件編輯的應(yīng)用程序。)
3、 掌握匯編程序ASM、宏匯編程序MASM1.0以上。
4、 LINK連接程序
5、 DEBUG調(diào)試程序
三、匯編語言源程序上機操作過程
編輯源文件
根據(jù)給定的任務(wù),可編寫程序。如果經(jīng)過檢查認(rèn)為所編程序無錯時,就可在計算機上通過編輯程序建立源程序文件了。一般在編輯過程中總會有錯誤產(chǎn)生,因此還要進行人工檢查、修改以致重新編輯,直到所編輯的源程序無誤為止,然后以一個源程序文件(ASM文件)存盤。
將包含QE文件的工作磁盤插入驅(qū)動器A:。進入QEA>QE進入全屏幕后可以開始編程。文件名取為Myprog。asm;Ddisplystring (09H)
CODESEGMENTPUBLIC
ASSUME CS:CODE,DS:CODE
ORG 100H
START:JMP BEGIN
MSG DB‘Hi ! This ia a dollar sign terminated string.’,’$’BEGIN:MOV AX,CS ;set up to display message
MOV DS,AX
MOV DX,OFFSET,SG ;set up to display message
MOV AH,09H;display string function request
INT 21H ;call DOS
MOV AH ,4CH ;terminate propram funct request
INT 21H ;Call DOS
CODE ENDS;end of code segment
END START;strat is the entry point
輸入完畢后,按ALT---X,存盤返回DOS
3、 匯編源程序文件(ASM,MASM)
由編輯程序所建立的ASM文件只是個文本文件,計算機無法執(zhí)行。需要經(jīng)過匯編程序的匯編,使其轉(zhuǎn)為目標(biāo)代碼文件。它是通過調(diào)用宏匯編MASM(或匯編程序ASM)程序完成這一匯編操作的。匯編程序還將對源文件進行語法檢查,如發(fā)現(xiàn)有錯,將給出錯誤原因。程序設(shè)計者可根據(jù)它分析和修改源程序,并再經(jīng)過匯編,直到無錯時為止,此時得到的是一個目標(biāo)文件(OBJ文件)。
A>masm
Source filename [.ASM]:myfile
Object filename [myfile.OBJ]:
Source Listing [Nul.LIST]:
Cross—referedce [NUL.CRF]:
4、 連接目標(biāo)文件(LINK)
目標(biāo)文件為浮動的相對地址,是不可直接執(zhí)行的。必須經(jīng)過連接,把有關(guān)模塊連接在一起,構(gòu)成統(tǒng)一的編址,從而為運行提供條件。在運行時,裝填到內(nèi)存中的具體位置由段地址來確定。連接過程是由LINK連接程序?qū)崿F(xiàn)的,止時得到的是一個可可執(zhí)行文件(EXE文件)。
A>LINK
Object Modules [.OBJ]myfile
Run File[MYFILE.EXE]:
LIST FILE [NUL.MAP]:
Libraries[.LIB]:
5、 運行可執(zhí)行文件
得到可執(zhí)行文件后就可以直接調(diào)用可執(zhí)行文件名,從盤上調(diào)到內(nèi)存中運行。
四、實驗總結(jié)
編寫好一個程序后,要想在計算機中調(diào)試、運行,必須要有一個程序來支持程序的編輯、修改等操作。這種支援程序叫編輯程序。編輯程序有很多種,但按功能劃分,主要有兩大類。一類是行編輯程序,如EDIT編輯程序;另一類是全屏幕編輯程序如Quick Edit(QE)。行編輯程序功能較弱,不如全屏幕編輯程序方便、靈活。在編輯匯編語言的源程序時,可以使用已熟悉的。
基于匯編語言的BCH解碼校驗算法
摘要:介紹數(shù)據(jù)傳輸中BCH解碼校驗用匯編語言實現(xiàn)的算法。算法包含BCH碼的差錯檢驗、差錯位查找和差錯糾正,同時列出相關(guān)主要子程序清單并予說明。
關(guān)鍵詞:BCH解碼校驗算法匯編語言
數(shù)據(jù)傳輸通信中,常常因傳輸差錯造成誤碼錯碼,尤其在無線通信中,空中的突發(fā)或隨機干擾噪聲會造成編碼差錯。為了提高傳輸?shù)恼_率,往往采用一些校驗方法,以檢驗糾正傳輸差錯。通信中校驗的方法很多,其中的BCH編碼有其獨特的優(yōu)點:不僅可以檢糾突發(fā)差錯,還能檢糾隨機差錯,被廣泛地采用在微機級的通信中。但對更低層的單片機級的數(shù)據(jù)傳輸通信糾錯,往往采用奇偶校驗等簡單的校驗方法。BCH校驗因其算法復(fù)雜,尤其是動態(tài)實時的無線通信中,單片機的通信往往無法采用BCH解碼檢糾。
筆者近幾年在工業(yè)測控和無線通信系統(tǒng)開發(fā),摸索了BCH解碼檢糾在實時的、動態(tài)的、單片機級的通信中的算法,并取得十分突出的效果。以下以BCH(31:21)碼為例進行探討。
1、BCH碼結(jié)構(gòu)
BCH碼是一種檢糾能力較強的循環(huán)碼。它由信息多項式M(X)和校驗多項式J(X)組成,如以T(X)表示整個BCH(31:21)碼字的31位碼組多項式,則:
T(X)=M(X)+J(X)(1)
在31位BCH碼的后面再加上1位,以保證整個碼字32位中“1”的個數(shù)為偶數(shù)。該位稱偶校驗位。這樣就形成BCH(31:21)加1位偶校驗位的標(biāo)準(zhǔn)碼字,其結(jié)構(gòu)為:
其中校驗多項式J(X)由公式(2)計算:
X0X1……X20X21……X30X31T(X)J(X)偶校驗位
J(X)=M(X)/S(X)(2)
式中S(X)是BCH(31:21)碼的生成多項式,見式(3):
生成多項式S(X)的值在BCH(31:21)碼的值是固定的。
BCH碼是一種循環(huán)碼,循環(huán)碼是利用除法來糾錯的。由于任一碼組多項式T(X)都能被生成多項式S(X)整除,所以在接收端可以將接收碼組R(X)用S(X)去除。若在傳輸中未發(fā)生錯誤,接收碼與發(fā)送碼相同,即R(X)=T(X),故接收碼組R(X)必定能被生成多項式S(X)整除;若碼組在傳輸中發(fā)生錯誤,即R(X)≠T(X),R(X)被S(X)除時,可能除不盡而有余項Y(X),因此,可根據(jù)余項是否為零來判斷碼中有無錯誤(檢錯),如有余項,通過一定的運算就可以確定錯誤位置,從而加以糾正(糾錯)。
這里R(X)被S(X)除,是32位被11除,這在非實時靜態(tài)的微機級實現(xiàn)非常簡單;但在實時的、動態(tài)的、單片機級的通信中實現(xiàn)要快速巧妙的算法才能實現(xiàn),否則,現(xiàn)有的碼未檢錯及糾錯完畢,下一個碼已經(jīng)到了。因為動態(tài)中位和位的時距t往往只有幾十μs,以9.6b/s的短信為例,t=104μs。在這104μs中要完成檢錯、定位和糾錯三個算法程序,才是一個完整的解碼檢糾過程。
2、檢錯
根據(jù)上述原理,檢錯過程也就是求算R(X)被S(X)除的余項Y(X)的過程,如余項Y(X)=0,則R(X)=T(X),傳輸無差錯;如余項Y(X)≠0,則R(X)≠T(X),檢出傳輸差錯。
在算法語言中,所有的運算總歸于二種運算:加和減。這是電子計算機的二進制基本電路特性所決定的,也是匯編語言唯一的算術(shù)運算方法。為此,這里把除法用模二加法再加右移位實現(xiàn)。
已知:S(X)=11101101001
R(X)=r3r4r5r6(ri為8位寄存器)
調(diào)用下面的模二加法右移子程序,得到R(X)/S(X)的余項Y(X)=r3r4。
;32位/16位模二加法右移子程序
m2add:movr7,#00
m2ddgx:mova,r3
xrla,#0edh;S(x)的高位=oed(h)
movr3a
mova,r4
cplacc.5;S(x)的低3位=001(b)
movr4,a
mova,r3
acc7e10:
jbacc.7m2addgx;R(x)的最高位為“0”,則R(x)右移
mova,r6
rlca
movr6,a
mova,r5
rlca
movr5,a
mova,r4
rlca
movr4,a
mova,r3
rlca
movr3,a
movr7
cjner7,#10h,acc7e10;右移總次數(shù)為16次
ret
余項Y(X)的高8位在r3寄存器中,低3位在r4的高3位。
3、定位
如果Y(X)=r3r4≠0,表示接收到的碼組R(X)有差錯,下一步則由Y(X)的值推算差錯在R(X)中的位置。
理論上要找出R(X)中差錯的位置,必須計算出差錯校驗子C(X)。在實踐中,校驗子C(X)的計算不僅費時間,而且多位檢糾還需多個校驗子C(X)。為此,經(jīng)過幾年的實踐,把Y(X)(即r3r4)直接作為綜合校驗子,通過快速查表找到差錯位置。查找程序的大小和檢糾差錯位數(shù)有關(guān),這里以檢糾4位差錯為例,說明定位糾錯的方法。
4位差錯位址查找子程序
bitposi:movb,0;對R(X)高位至低位的移動計數(shù)
movr2,#1fh;設(shè)表格長度
btoa:mova,b
incb
acalltabsub;調(diào)用表格子程序,讀入表格值
clrc
subba,r3;Y(X)中的r3和表格值比較
jnzbinc1:不相等,轉(zhuǎn)出
mova,b;相等,繼續(xù)
acalltabsub
clr
subba,r4;Y(X)中的r4和表格值比較
jnzr2decl:不相等,轉(zhuǎn)出
setbf0;相等,置標(biāo)志位返回
ret
bincl:incb
r2decl:djnzr2,btoa
ret;表格查畢,沒有相等的值,不置標(biāo)志位返回
從查找子程序返回的B寄存器的值,即為差錯在R(X)中從高位到低位的位數(shù)值。
;4位差錯表格子程序
tabsub:inca
movca,@a+pc;將相對位置的表格送入a寄存器
ret
db0ebh;表格開始,長度為查找子程序中
db00;r2寄存器的預(yù)置值
db76h
4、糾錯
找到了差錯在R(X)位置,就可以糾錯了。
糾錯的原理比較簡單,因為單片機處理的是二進制數(shù),而二進制數(shù)只有二個狀態(tài),即不是“0”就是“1”。也就是說,R(X)中差錯位是“0”,則改為“1”;差錯位是“1”,則改為“0”。所以糾錯要對所在位求反就行了,程序見本刊網(wǎng)絡(luò)補充版。
至此,整個檢錯、定位、糾錯的BCH碼校驗檢糾過程結(jié)束。BCH碼校驗算法,經(jīng)過實踐的檢驗,不失為單片機級的數(shù)據(jù)傳輸校驗好算法。這種方法可以對多位隨機差錯和多位突發(fā)差錯進行檢驗和糾錯,具體位數(shù)的多少僅受單片機工作頻率的限制,而不受方法的限制。
匯編語言和C語言在軟件工程中的應(yīng)用論文
一、匯編語言在軟件工程中的應(yīng)用
匯編語言是建立在傳統(tǒng)機器語言基礎(chǔ)之上的,保留了傳統(tǒng)語言的優(yōu)勢的同時,突破了傳統(tǒng)語言的弊端,能夠?qū)﹃P(guān)鍵程序代碼進行準(zhǔn)確控制,且能夠直接訪問并控制相應(yīng)的硬件系統(tǒng),促使硬件發(fā)揮積極作用,從而確保系統(tǒng)穩(wěn)定運行,不僅如此,匯編語言程序編譯后的目標(biāo)代碼空間需求較小,執(zhí)行效率較高,在系統(tǒng)軟件程序和過程控制程序中的應(yīng)用比較廣泛、且普遍,其具有獨特的優(yōu)勢,是其他語言難以取代的。但是,事物具有兩面性,匯編語言也存在一定不足,由于其基礎(chǔ)是機器語言,使得其對象沒有發(fā)生變化,沒有改變其是一種低級語言的地位,且理解難度也較高。在軟件開發(fā)中應(yīng)用此語言,效率并不明顯,且針對硬件系統(tǒng)而言,且精確度并不高,兼容性較差,即便是類似硬件也不能夠通用。在軟件工程中,匯編語言憑借自身與硬件系統(tǒng)聯(lián)系密切,且能夠?qū)崿F(xiàn)直接訪問,很多系統(tǒng)軟件都采用匯編語言進行編程,還包括一些對處理速度要求較高的程度也是通過匯編語言編寫的。不僅如此,在系統(tǒng)核心部分、軟件加密、解密及計算機病毒分析等方面也都具有廣泛的應(yīng)用。在一些行業(yè)中,匯編語言是不可缺少的,只能夠選擇它,在熟悉的程序員手中,使用匯編語言能夠顯著提升效率及性能,但是,其弊端是需要利用更長的時間進行調(diào)整和優(yōu)化。匯編語言在一些工業(yè)企業(yè)中,制作4位單片機等,以此來實現(xiàn)對工業(yè)生產(chǎn)過程的控制和管理,另外,針對需要快速及實時響應(yīng)的場合,也需要選擇匯編語言,例如:儀器儀表及工業(yè)控制設(shè)備等,一般情況下,匯編語言應(yīng)用于最底層,驅(qū)動程序及嵌入式操作程度等,隨著現(xiàn)代軟件系統(tǒng)不斷發(fā)展,匯編語言逐漸成為計算機專業(yè)學(xué)生必須了解和掌握的一門課程,能夠幫助學(xué)生認(rèn)識計算機運行原理,夯實計算機相關(guān)知識基礎(chǔ)。
二、C語言在軟件工程中的應(yīng)用
C語言自上個世紀(jì)90年代出現(xiàn)在計算機領(lǐng)域中,C語言作為一種高級語言,不僅具有人性化特點,還包括匯編語言的特性,受到軟件工程開發(fā)廣泛關(guān)注,其本質(zhì)是高級與低級語言有機結(jié)合的編程工作單元,通過函數(shù)、循環(huán)等應(yīng)用,能夠形成結(jié)構(gòu)化設(shè)計方法,提高系統(tǒng)層次性、清晰度等方面具有積極作用,且方便用戶調(diào)試和維護。C語言自身優(yōu)勢很多,運算符豐富,實現(xiàn)多樣化表達(dá),滿足多元化需求,且數(shù)據(jù)類型較多,例如:指針型、實型等類型,能夠?qū)崿F(xiàn)相對復(fù)雜的數(shù)據(jù)運算任務(wù),相比較而言,C語言更具有靈活性,兼顧人性化及實用性兩方面,能夠直接對對位地址和字節(jié)地址進行操作,另外,運用C語言編寫源程序,不僅系統(tǒng)質(zhì)量高,而且執(zhí)行效率也很高為更好地移植和修改奠定了堅實的基礎(chǔ),誠然,C語言也存在一定缺陷,靈活度高,使得其對語法規(guī)則要求并不嚴(yán)格,使得變量類型規(guī)范也受到一定影響,存在一定安全隱患,初學(xué)者剛接觸C語言時,難以更好地接受和理解,增加了學(xué)習(xí)難度。指針作為C語言在軟件工程中應(yīng)用的關(guān)注點,針對與硬件聯(lián)系較多的程序,C語言編寫程序更為高效,且多種機型及操作系統(tǒng)也可以選擇C語言,幫助人們直接訪問地址,及時檢查語法錯誤,糾正錯誤,既能夠提高系統(tǒng)質(zhì)量,也能夠有效提高系統(tǒng)運行效率。未來,C語言將會廣泛應(yīng)用于系統(tǒng)程序編寫中。綜上所述,匯編語言與C語言自身都存在優(yōu)勢及缺陷,單純的使用一種語言,難以發(fā)揮有效作用,且不利于軟件工程開發(fā),至此,可以將二者有機結(jié)合,實現(xiàn)優(yōu)勢互補,在程序編寫過程中,發(fā)揮各自優(yōu)勢,更好地滿足用戶對系統(tǒng)的需求。
三、結(jié)論
根據(jù)上文所述,軟件工程作為一項綜合性工程,在促進社會發(fā)展等方面占據(jù)不可替代的位置,而匯編語言與C語言作為實現(xiàn)軟件工程開發(fā)的核心,二者均具有自身獨特的優(yōu)勢及不足,為了更好地實現(xiàn)程序編寫,應(yīng)將二者結(jié)合在一起,取二者之長,提高系統(tǒng)軟件可讀性、靈活性,進而為用戶提供更加優(yōu)質(zhì)的服務(wù)。
匯編語言的心得體會
一、實驗?zāi)康?/strong>
1、學(xué)習(xí)使用匯編語言、連接程序?qū)R編語言源程序進行匯編、鏈接裝配操作。
2、學(xué)習(xí)使用調(diào)試程序debug對可執(zhí)行文件.exe進行調(diào)試運行。
3、訓(xùn)練分支程序的編制,逐步熟悉二元選擇、多元選擇等程序描述方法,加深對程序控制類指令的結(jié)構(gòu)和功能的理解。
4、掌握調(diào)試分支程序的基本方法,以了解程序的靜態(tài)結(jié)構(gòu)和動態(tài)執(zhí)行情況的差異性。
二、實驗設(shè)備
1、硬件:IBM PC及兼容機
2、軟件:
操作系統(tǒng)Ms dos/Windows 98/Windows2000 /Windows XP
編輯軟件:edit、記事本
匯編語言程序包:masm5.0以上(包括masm、link)
三、實驗內(nèi)容
題目A:設(shè)平面上有一點p直角坐標(biāo)(x,y),試 編制完成下列操作的程序 如點p在第i象限,則K單元←i(1,2,3,4)
如點p在坐標(biāo)軸上,則K單元←0
題目B:編制程序求A、B、C三個有符號數(shù)的中間數(shù)。(A、B、C為字節(jié)單元)
四、實驗步驟
1、編輯源程序,建立一個以后綴為 .ASM的文件.
2、匯編源程序,檢查程序有否錯誤,有錯時回到編輯狀態(tài),修改程序中錯誤行。無錯時繼續(xù)第3步。
3、連接目標(biāo)程序,產(chǎn)生可執(zhí)行程序。
4、DEBUG調(diào)試可執(zhí)行程序,記錄程序運行結(jié)果。
5、在操作系統(tǒng)狀態(tài)下,運行程序,并記錄程序運行結(jié)果。
五、實驗總結(jié)
1、實驗中遇到哪些問題?分析主要問題的出錯原因及解決方法。
2、本次實驗有何收獲和體會。
3、有何改進意見及建議。
C語言與匯編語言的混合程序設(shè)計技術(shù)論文
摘 要:
一般在較大的程序設(shè)計當(dāng)中,如果把匯編語言與高級語言程序結(jié)合起來使用,把兩種語言的優(yōu)點都發(fā)揮出來,充分利用兩種的優(yōu)勢,進行混合編程,則可以很多的難以解決的難題。在程序設(shè)計的實踐當(dāng)中,C語言和匯編語言可以相互調(diào)用,C語言可以調(diào)用匯編語言,匯編語言可以調(diào)用C語言,也可以把其中一種語言程序嵌入到另一種程序語言當(dāng)中。本文就是探討把C語言與匯編語言兩種語言進行混合編程,實現(xiàn)兩者的最佳組合,從而解決一些實踐難題。
關(guān)鍵詞:
匯編語言;C語言;混合編程
匯編語言的優(yōu)勢就是速度快,占用存儲空間不大,而且可以隨時控制硬件,這些優(yōu)點是其它的程序語言無法取代的。匯編語言也有不足之處,就是在高級程序的編寫與調(diào)試時存在著較大的困難,特別是在處理一些數(shù)據(jù)或者一些混合運算時顯得更加困難。
C語言,它的優(yōu)勢就是在于功能全面,表達(dá)形式多樣且靈活,開發(fā)使用效率很高,具有其它高級語言無法具有的優(yōu)勢。通常在軟件開發(fā)過程中,大部分程序采用高級語言編寫,以提高程序的開發(fā)效率;但在要求執(zhí)行速度快、占用空間少或要求直接控制硬件的場合,則利用匯編語言編寫,以提高程序的運行效率。
1.匯編語言和C語言混合編程的方法
C語言和匯編語言混合編程的具體方法有以下幾種。
2.1 參數(shù)傳遞
匯編語言程序和C語言程序在調(diào)用時會涉及到參數(shù)傳遞,一般采用堆棧進行傳遞。在匯編語言中將BP作為基址寄存器,調(diào)用程序先將來自于C語言程序中的參數(shù)依次壓入堆棧中,然后當(dāng)需要使用這些參數(shù)時,再用BP加上不同的偏移量依次對堆棧中的數(shù)據(jù)進行存取操作。
2.2 調(diào)用關(guān)系的確定
對于將要涉及到調(diào)用的過程或函數(shù)需要事先說明和建立調(diào)用與被調(diào)用關(guān)系。被調(diào)用的過程或函數(shù)應(yīng)預(yù)先說明為外部類型,以便被外部模塊引用,而調(diào)用程序也需要在程序中說明將要引用的外部模塊的名稱。在說明調(diào)用關(guān)系時還應(yīng)根據(jù)不同的存儲模式確定相應(yīng)的匯編語言格式。C程序小模式對應(yīng)匯編程序的近類型過程,而C程序大模式則對應(yīng)匯編程序的遠(yuǎn)類型過程。
總而言之,匯編語言和C語言的混合編程方法可以使匯編語言與C語言之間取長補短,充分發(fā)揮各自優(yōu)勢,相互交叉調(diào)用,進行參數(shù)傳遞,共享數(shù)據(jù)信息和數(shù)據(jù)結(jié)構(gòu),使由此開發(fā)的軟件更實用、更安全可靠,使開發(fā)和編程工作達(dá)到事半功倍的效果。
【語言試題及參考答案】相關(guān)文章:
面試試題及參考答案12-09
商法模擬試題及參考答案11-23
數(shù)字邏輯試題及參考答案11-23
化工制圖試題及參考答案11-23
商法考試題及參考答案11-23
資產(chǎn)評估模擬試題及參考答案11-23
國際結(jié)算模擬試題及參考答案12-01
電工原理模擬試題及參考答案11-23