【汇编语言-3】 代码、数据、堆栈在同一个段
生活随笔
收集整理的這篇文章主要介紹了
【汇编语言-3】 代码、数据、堆栈在同一个段
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
(1) 代碼段中使用數據
?
編程計算8個數據的和,結果保存在ax中。代碼如下:
code?segmentassume?cs:code
????dw?0123H,0456H,0789H,00bcH,00efh,0667h,072fh,0990H
????mov?bx,0
????mov?ax,0
????mov?cx,8
s:??add?ax,cs:[bx]
????add?bx,2
????loop?s
????mov?ax,4c00h
????int?21h
code?ends
end
?
用debug調試跟蹤如下:
?
Debug跟蹤,修改ip指向代碼,讓程序合法運行:
?
修改源代碼,指明程序入口,使程序合法化:
code?segmentassume?cs:code
????dw?0123H,0456H,0789H,00bcH,00efh,0667h,072fh,0990H
start:?? mov?bx,0
???? ? mov?ax,0
???????? mov?cx,8
s:?????? add?ax,cs:[bx]
???????? add?bx,2
???????? loop?s
???????? mov?ax,4c00h
???????? int?21h
code?ends
end?start
?
?
(2) 代碼段中使用棧
?
利用棧將程序中定義的數據逆序存放:
code?segmentassume?cs:code
????dw?0123H,0456H,0789H,00bcH,00efh,0667h,072fh,0990H
????dw?0,0,0,0,0,0,0,0
start:????mov?ax,cs
????????? mov?ss,ax
????????? mov?sp,32; 設置棧頂ss:sp指向cs:32
????????? mov?bx,0
????????? mov?cx,8
s:??????? push?cs:[bx]
????????? add?bx,2
????????? loop?s
????????? mov?bx,0
????????? mov?cx,8
s0:???????pop?cs:[bx]
????????? add?bx,2
????????? loop?s0
????????? mov?ax,4c00h
????????? int?21h
code?ends
end?start; 指明程序的入口在start處
?
?
?
總結
以上是生活随笔為你收集整理的【汇编语言-3】 代码、数据、堆栈在同一个段的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做梦梦到蛇缠身是什么意思
- 下一篇: 怀孕梦到狗追着咬我预示着什么