當前位置:編程學習大全網 - 編程軟體 - 高級x86匯編程序。。。

高級x86匯編程序。。。

這是王爽匯編語言的另壹個例子。

這個問題我見過兩次。原因是用t命令調試時,實際上觸發了單步中斷,而單步中斷發生時,CS、IP、flag位等東西也會存儲在堆棧中。程序的壓棧操作覆蓋了壹步中斷保存的CS或IP,使用t命令後無法正確返回。

解決方法:將堆棧的大小設置得更大;不要手動設置棧段、SP等。讓編譯器自己設置。

例如:

假設cs:code,ds:data,ss:sseg

數據段

dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h

數據結束

sseg段棧;定義段時,在末尾添加stack關鍵字。

dw 512 dup(?) ;將堆棧設置得更大。

sseg結束

代碼段

開始:

移動軸,數據

移動ds,ax

;不要手動設置堆棧段和SP。

mov cx,8

mov bx,0

學生:

按[bx]

添加bx,2

循環s

mov cx,8

mov bx,0

s1:

pop [bx]

添加bx,2

循環s1

mov ax,4c00h

int 21h

代碼結束

結束開始

  • 上一篇:編程軟件Dev-cpp和Dev-c++有什麽區別嗎?
  • 下一篇:VB要怎麽學才算是精通呢?
  • copyright 2024編程學習大全網