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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

masm汇编标号用法总结

發布時間:2024/4/18 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 masm汇编标号用法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據(程序)段外使用
數據(程序)段內使用
代碼段中標號一般都有“:”
非代碼段中“:”一般不使用
有:與無:
:的作用是將它前面的標號標記為地址,方便cs:ip指向它(調用子程序)
而數據段中的數據一般不為指令,用不含“:”的標號表示偏移地址也表示后面的數據格式,可利用這個特性方便的引用數據段中的數據

匯編如何識別是代碼段還是數據段呢,是通過assume定義
所以我們也可以在assume處將數據段定義為代碼段,從而使用:來直接定位所需要的標號處數據地址

之所以assume cs:code(此處code代指代碼段,可以重命名)不能去掉,是因為code段中會用到標號,assume cs:code的作用就是默認code段中的標號的段地址為cs
如果我們為數據段也通過assume指定一個段寄存器(假設為ds),那么數據段的標號默認段地址為ds

總結:
:的使用使得前面的標號成為偏移地址,而偏移地址需要搭配段地址才能使用
assume就能將標號處偏移地址與一個段寄存器相聯系(段地址)
沒有“:”的標號不僅表示此處的偏移地址也表示了后面的每個數據所占內存大小
例:
assume ds:Data
Data segment
a db 1,2,3,4,5
b db 0,6,7,8,9
c dw a,b
d dd a,b
Data ends

Data段中標號a中的1可以這樣表示,于是有((Data * 16)+a+0)=a[0]=1,其中0為偏移量
Data段中標號b中的6可以這樣表示,于是有((Data * 16)+b+1) =b[1]=6,其中1為偏移量
a[偏移量]能夠表示數據是因為assume將Data與一段寄存器ds聯系,Data中標號的默認段寄存器就是ds

補充:c為字型數據存儲的是a,b的偏移地址
d為雙字型數據存儲的是a,b的段地址+偏移地址
offset a:取偏移地址
seg a:取段地址

總結

以上是生活随笔為你收集整理的masm汇编标号用法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

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