回覆列表
  • 1 # 使用者5010666567480

    下面舉一個實現同一功能,採用不同方法的例子。

    比如:

    dseg segment

    data db 1, 2, 3, 4

    dseg ends

    cseg segment

    assume cs:cseg, ds:dseg

    start:

    mov ax, dseg

    mov ds, ax

    mov ax, word ptr[data]

    mov ah, 4ch

    int 21h

    cseg ends

    end start

    因為data是位元組型別,所以如果直接用mov ax, [data]是不行的,要用mov ax, word ptr[data]。

    這裡的ptr可以理解為C語言裡的強制型別轉換。

    如果用LABEL實現這個功能的話,可以這樣:

    dseg segment

    wdata label word

    data db 1, 2, 3, 4

    dseg ends

    此時,wdata與data的起始地址是相同的,但是它的型別是word。

    在程式裡,可以直接使用:mov ax, [wdata]

    至於this,你可以認為它的功能是和label一樣的。比如:

    dseg segment

    wdata equ this word

    data db 1, 2, 3, 4

    dseg ends

    效果和用label的時候一樣。即可以理解為equ this = label

  • 中秋節和大豐收的關聯?
  • 為什麼拖鞋會有臭味,怎麼去除?