日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

當(dāng)前位置:電子發(fā)燒友網(wǎng) > 圖書頻道 > 電子 > 《計算機(jī)組成原理與匯編語言》 > 第3章 指令系統(tǒng)與匯編語言設(shè)計

第11節(jié) 匯編語言源程序結(jié)構(gòu)

數(shù)據(jù)段應(yīng)放在代碼段之前,這是因?yàn)樵跀?shù)據(jù)段中先定義了變量,而后才能在代碼段中使用,否則匯編時,在代碼段中用到的變量將不能確定其類型,
         
致使匯編時得不到正確的機(jī)器代碼,如:

         MOVAL,WA

匯編程序不能確定WA是字節(jié)還是字,因而將給出錯誤信息,只有在數(shù)據(jù)段中對WA定義為字節(jié)型變量時,這條指令才能正確匯編。

由上所述可知,一個源程序模塊,一般都應(yīng)有一個相同的結(jié)構(gòu),它們可以復(fù)制。編程時只要改變有關(guān)的名稱,填入自己的程序內(nèi)容即可。一個標(biāo)準(zhǔn)的程序結(jié)構(gòu)如下: 

   STACK SEGMENT PARASTACK′STACK′
   DB 500DUP(0)
   STACK ENDS
   DATAS EGMENT
    …DATA ENDS
   CODE SEGMENT
   MAIN PROC FAR
   ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK
   PUSH DS
   MOV AX,0
   PUSH AX
   MOV AX,DATA
   MOV DS,AX
   MOV ES,AX… RET
   MAIN ENDP
   CODE ENDS
   END MAIN
      ①必須用ASSUME偽指令告訴匯編程序,哪一個段和哪一個段寄存器相對應(yīng),即某一段地址應(yīng)放入哪一個段寄存器。
 
       ②DOS的裝入程序在裝入執(zhí)行時,將把CS初始化為正確的代碼段地址,把SS初始化為正確的堆棧段地址,因此在源程序中不需要再對它們進(jìn)行初始化。

                            MOV AX,DATA
                        MOV DS,AX
      ③模塊在要執(zhí)行時,通常先由DOS的裝入程序?qū)?zhí)行模塊裝入內(nèi)存。 
   
    由上述我們知道,PSP的段地址為DS中的值,而該地址又指向INT20H指令,因此偏移量應(yīng)該為0。

                         PUSH DS ;壓入PSP的段地址
                         MOV AX,0
                     PUSH AX ;壓入INT20H的偏移量

    以上3條指令就是為主模塊返回DOS所做的準(zhǔn)備。當(dāng)然,如果不是主模塊,這3條指令是不需要的。
    

 

?
崇礼县| 漳平市| 无极县| 洛南县| 湖口县| 柘荣县| 阜新| 蒙山县| 当阳市| 阜南县| 麦盖提县| 湟中县| 顺昌县| 罗平县| 广西| 杭州市| 衡阳县| 阿瓦提县| 古蔺县| 文安县| 天祝| 太白县| 巴中市| 米脂县| 班戈县| 万年县| 铜陵市| 隆德县| 鹤壁市| 酉阳| 怀集县| 隆化县| 修武县| 陆河县| 湘西| 禄丰县| 新蔡县| 泰和县| 阜城县| 吉隆县| 鹰潭市|