久久综合色一综合色88欧美|久久er热在这里只有精品66|国产福利一区二区不卡|日本精品动漫二区三区

    1. <address id="l3apk"><var id="l3apk"><source id="l3apk"></source></var></address>

      語言試題及參考答案

      時間:2022-11-29 00:07:58 期末試題 我要投稿
      • 相關(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

      商法期末復(fù)習(xí)試題及參考答案11-23

      商法考試題及參考答案11-23

      資產(chǎn)評估模擬試題及參考答案11-23

      國際結(jié)算模擬試題及參考答案12-01

      電工原理模擬試題及參考答案11-23