回覆列表
  • 1 # 使用者9866520236700

    我給你舉個例子:

    比如在資料段裡定義以下資料:

    data segment

    XXX1 db ?

    XXX2 db ?

    table db "TXSB"

    data ends

    然後執行下面的指令:

    (mov ax,data mov ds,ax 我就不寫出來了,你知道段暫存器指向資料段就行了)

    mov al,0

    mov bx,offset table

    xlat

    執行之後,AL中的資料就是T的ASCII碼了,如果前面的AL中的值為1的話那麼執行之後AL中就是X的ASCII碼,2就是S,3就是B

    XLAT叫做換碼指令,顧名思義,它肯定要換,其實它的作用就是將一個數據換成另一個數據,前提是轉換後和轉換前的資料沒有對應的邏輯關係,當然有關係的你願意用xlat也沒人管你,比如上面的TXSB的ASCII碼和0,1,2,3就沒有對應的關係,xlat對於快速轉換資料是非常有用的

    另外 BlueWanderer 你說的那個 xlat ss:[bp] 我試了一下,編譯之後還是xlat啊?xlat好像會忽略所有的運算元吧?我查指令參考好像也沒有你說的那種形式啊?

    ---------------------------------------

    哦,我是用masm5試的,用masm6試了一下出來段了

    xlat好像確實沒用了

    因為現在的CPU可以執行這條指令了:

    mov eax,[ebx+eax]

    昨天晚上2點回答的,看了幾個小時的動畫片腦子有點亂了 - -

  • 中秋節和大豐收的關聯?
  • 釋迦果是什麼?