汇编语言语句类型格式

andyljn 2020-03-27

    汇编语言源程序的中的语句分为两大类:指令性语句和指示性语句

指令性就是能够被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

相关推荐