日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汇编学习笔记50

發布時間:2024/4/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编学习笔记50 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

二、段的簡化定義

新版匯編語言提供了段的簡化定義方法,從而使程序員可以方便地定義段。

無論是編寫獨立的匯編語言程序還是編寫供高級語言程序調用的函數,簡化的段定義偽指令幾乎總是使程序設計更容易。

本節介紹段的簡化定義

(一) 存儲類型說明偽指令

? 在程序員使用段簡化定義偽指令之前,必須首先使用存儲類型說明偽指令描述程序采用的存儲類型。

? 存儲類型說明偽指令的格式如下:

? .MODEL 存儲模型

? 常用的存儲模型有:

(1) SMALL (小型模型)

? 全部數據限制在單個64KB段內,全部代碼也限制在單個64KB段內,這是獨立的匯編語言程序最常用的模型。在這種存儲模型下,數據段寄存器可保持不變,所有轉移均可變為是段間轉移。

(2) MIDDLE (中型模型)

? 全部數據限制在單個64K段內,但代碼可大于64KB,在這種存儲模型下,數據段寄存器可保持不變,但會出現段間轉移情形。

(3) COMPACT (緊湊模型)

? 全部代碼限制在單個64KB段內,數據總量可大于64KB,但一個數組不能大于64KB

(4) LARGE (大型模型)

? 代碼可超過64KB,數據也可以超過64KB,但一個數組不能大于64KB。

(5) HUGE (巨型模型)

? 代碼可超過64KB,數據也可以超過64KB,并且一個數組也能大于64KB.

獨立的匯編程序可選用任一種存儲類型,對大多數完全用匯編語言編寫的程序來說,小(SMALL)模型就足夠了。

(二) 簡化段定義偽指令

1. 簡化的段定義偽指令

簡化的段定義偽指令均以符號點引導。

常用的簡化段定義偽:

(1)代碼段簡化定義偽指令

.CODE

例1:

寫一個使系統喇叭發出嘟的一聲的程序

.MODEL SMALL

.CODE

START: MOV DL, 7

MOV AH, 2

INT 21H

MOV AX, 4C00H

INT 21H

END START?? ; 結束代碼段

偽指令.CODE說明代碼段的開始,偽指令END說明段結束。

簡化段定義偽指令說明一個段的開始,同時也表示上一個段的結束,偽指令END說明是一個段的結束。

(2) 定義堆棧段偽指令

.STACK [大小]

它表示一個堆棧段開始,若沒有指令堆棧段的大小,則采用缺省值1024

(3) 定義數據段的偽指令

.DATA

例2:

如下偽指令定義了一個數據段

.DATA

VAR3 DB 5

LARRAY DW 50DUP( 0 )

MESS DB 'HELLO', 0DH, 0AH, '$'

例3:

增加一個大小為1024字節的堆棧段

.MODEL SMALL

.STACK 1024

.DATA

MESS DB 'HELLO' 0DH, 0AH, '$'

.CODE

START: MOV AX, DGROUP

MOV DS, AX

MOV DX, OFFSET MESS

MOV AH, 9

INT 21H

MOV AH, 4C00H

INT 21H

END START

在一個源程序模塊中可定義多個由偽指令.DATA開始的數據段,如同在一個源程序模塊中定義多個同名的數據段

(4) 定義遠程(獨立)數據段指令

定義獨立數據段偽指令的一般格式如下:

它表示一個獨立數據段的開始

.FARDATA [名字]

名字是可選項,如果使用,則設成該數據段的段名

例: 如下偽指令定義了一個獨立數據段

.FARDATA

BUFF DB 1024(?)

此外,還有偽指令.DATA?和偽指令.CONST, .FARDATA?等。它們分別用于說明未初始化數據段的開始和常規數據的開始,未初始化的獨立數據段,在編寫純粹的匯編語言程序時,一般不使用這些偽指令

2. 有關的預定義符

在上述程序片斷中使用符號@CODE等是匯編程序提供的若干騎了定義符,它們類似于用偽指令EQU所定義的符號。

與簡化的段定義偽指令相關的一些預定義符號有:

(1) 符號@CODE表示代碼段的段名

(2) 符號@DATA表示DATA段和STACK段等集合而成的段組的組名

(3) 符號@FARDATA表示獨立數據段的段名

轉載于:https://www.cnblogs.com/hailong/archive/2011/01/27/1946457.html

總結

以上是生活随笔為你收集整理的汇编学习笔记50的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。