程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi嵌入式匯編一例

Delphi嵌入式匯編一例

編輯:Delphi
用Delphi寫的程序,把x指針指向的4個字節次序顛倒過來:
  function toulong(x: pchar): longWord;
  begin
    result := (longWord(x^) shl 24) or
      (longWord((x + 1)^) shl 16) or
      (longWord((x + 2)^) shl 8) or
      (longWord((x + 3)^));
  end;
  
  以下是用Delphi的嵌入式匯編寫法:
  function toulong(x: pchar): longWord;
  asm
    mov esi,eax
    mov ax,[esi]
    xchg ah,al
    shl eax,16
    mov ax,[esi+2]
    xchg ah,al
  end;
  
  說明:默認情況下,Delphi使用“register”方式,若參數在3個已內,
  將分別使用eax、edx和ecx,超過3個參數部分將使用堆棧。返回參數的
  存放視長度而定,例如8位用al返回,16位用ax,32位用eax,64位用用兩個
  32位寄存器edx:eax,其中eax是低位。
  
  
  效率:本例asm大約比Delphi或c快50%。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved