匯編語言語句類型格式


    匯編語言源程序的中的語句分為兩大類:指令性語句和指示性語句

指令性就是能夠被CPU執行的語句;指示性就是不被CPU執行的指令,不能生成目標代碼,又稱為偽操作語句或偽指令。

操作數可以是寄存器或存儲器或數據段。數據段可以是常量,表達式,變量,標號。

標號代表存放一條指令的存儲單元的符號地址,后面必須加冒號。有段值,段偏移量,類型三個屬性。

 

表達式:

  1 諸如算術運算符值類的運算:

      MOV AL,8+5 等價於MOV AL,13

  2 同時還有邏輯運算符,名字和指令的AND,OR,XOR等相同。

     MOV AL,0AH AND 0CCH

  3 關系運算符EQ NE LT LE GT GE

     MOV AX,4 EQ 3  匯編指令為 MOV AX,0

 

關於偽指令:

1 數據定義的偽指令

  常用的指令有DB,DW,DD,DQ,DT,分別代表定義變量為1,2,4,8,10個字節類型。

  定義操作書的相關偽代碼如下:

  DATA DB 11H,33H;  包含兩個元素的字節變量DATA

  NUM DW 100*5+88

  STR DB 'HELLO

  數據定義的操作數 還可以是 ? ,對變量保留相應的存儲單元,但不賦予變量的值。小編在寫程序的時候 需要加引號。

2 重復操作符 DUP

  DATA1 DB 20 DUP('?')   ; 20代表為變量DATA1分配20個字節的存儲空間,初值為任意值,或者為 相對應的存儲單元本來的值。

關於DOS的調用:

輸入單個字符顯示:

CODE SEGMENT
    ASSUME CS:CODE
    START: MOV AH,1
    INT 21H
    JMP START
    CODE ENDS
END START

顯示單個字符:

CODE SEGMENT
    ASSUME CS:CODE
    START: MOV DL,'B'
    MOV AH,2
    INT 21H
    CODE ENDS
END START

輸入字符串:

DATA SEGMENT
    STRING DB 10,0,10 DUP('?')
    DATA ENDS
CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
    MOV DS,AX
    LEA DX,STRING
    MOV AH,0AH
    INT 21H
    MOV CL,STRING+1
    XOR CH,CH
    ADD DX,CX
    MOV BX,DX
    MOV BYTE PTR[BX+2],'$' 
    MOV AH,4CH
    INT 21H
    CODE ENDS
END START     

顯示字符串:

DATA SEGMENT
   STR DB '123ABC'
   DATA ENDS
CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
    START:MOV AX,DATA 
    mov ds,ax
    lea bx,str
    MOV CX,6
    LPP: MOV AH,2
    MOV DL,[BX]
    INC BX
    INT 21H
    LOOP LPP
    MOV AH,4CH
    INT 21H
    CODE ENDS
END START     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM