在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 匯編入門學(xué)習筆記 (三) —— 第一個程序

            匯編入門學(xué)習筆記 (三) —— 第一個程序

            作者: 時間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
            瘋狂的暑假學(xué)習之 匯編入門學(xué)習筆記 (三)—— 第一個程序

            本文引用地址:http://www.biyoush.com/article/201611/317777.htm

            參考:《匯編語言》 王爽 第四章

            1.一個源程序從寫到執(zhí)行的過程

            第一步:編寫匯編源程序

            第二步:對源程序進行編譯連接

            第三步:在操作系統(tǒng)中執(zhí)行

            2.源程序

            代碼:

            1. assumecs:first
            2. firstsegment
            3. start:movax,2
            4. addax,ax
            5. addax,ax
            6. movax,4C00H
            7. int21H
            8. firstends
            9. endstart

            代碼解釋:

            assume 、segment、ends、end 等都是偽指令

            end 表示 程序結(jié)束。

            segment與ends(注意與end的區(qū)分)成對出現(xiàn),表示一個段,segment前面的 first 表示段的名字,標號,可以任意取。一個程序至少有一個段。

            assume 用來把寄存器跟段關(guān)聯(lián)起來。

            start:這個可以隨便取名字,但要與end 后面的一樣。表示程序的入口。CS:IP 指向。

            3.編譯連接

            (在win7 64位,可能有問題,用DOSBox 模擬)

            使用masm編譯,link鏈接

            把上面的代碼保存到 1.asm中

            編譯:在cmd中輸入 masm 1.asm; 生成 1.obj

            鏈接:在cmd中輸入 link 1.obj; 生成 1.exe

            4.程序的運行

            在cmd中輸入1 ,運行不會有任何輸出,一閃而過

            程序的運行過程:首先必須有一個正在運行的P1程序,將要運行的P2程序從可執(zhí)行文件中加載進入內(nèi)存后將CPU控制權(quán)交給P2,P2才能運行。P2開始運行后P1暫停運行。當P2運行完畢后,將CPU的控制權(quán)交給P1,此后P1繼續(xù)運行。DOS中運行1.exe P1可以是command,將1.exe加載如內(nèi)存。command設(shè)置CPU的CS:IP z指向程序的第一條指令(即程序的入口),從而使其運行。程序運行結(jié)束后,返回command,CPU繼續(xù)運行command。

            前面代碼中的:mov ax,4C00H

            int 21H

            功能就是程序返回

            int 跟c英語中的int沒有任何關(guān)系,表示中斷。

            5.程序執(zhí)行過程的跟蹤

            在cmd中輸入:debug 1.exe 即可跟蹤運行1.exe

            這時輸入r查看寄存器信息,可以看到CX存放源程序中指令的長度。

            DS跟CS相差0010H,原因:

            程序在運行前,DOS系統(tǒng)先找到一個XX:0000H地址,在這段內(nèi)存區(qū)的前256個這個中 創(chuàng)建一個程序段前綴(PSP)的數(shù)據(jù)區(qū),DOS要利用PSP來和被加載的程序進行通信。從XX:0010H開始將程序裝入。

            輸入t 單步執(zhí)行,到int 21H時,輸入p結(jié)束。



            關(guān)鍵詞: 匯編入門第一個程

            評論


            技術(shù)專區(qū)

            關(guān)閉