结结 發表於 2020-3-27 20:20:00

汇编语言语句类型格式

<p>&nbsp; &nbsp; 汇编语言源程序的中的语句分为两大类:指令性语句和指示性语句</p>
<p>指令性就是能够被CPU执行的语句;指示性就是不被CPU执行的指令,不能生成目标代码,又称为伪操作语句或伪指令。</p>
<p>操作数可以是寄存器或存储器或数据段。数据段可以是常量,表达式,变量,标号。</p>
<p>标号代表存放一条指令的存储单元的符号地址,后面必须加冒号。有段值,段偏移量,类型三个属性。</p>
<p>&nbsp;</p>
<p>表达式:</p>
<p>&nbsp; 1 诸如算术运算符值类的运算:</p>
<p>&nbsp; &nbsp; &nbsp; MOV AL,8+5 等价于MOV AL,13</p>
<p>&nbsp; 2 同时还有逻辑运算符,名字和指令的AND,OR,XOR等相同。</p>
<p>&nbsp; &nbsp; &nbsp;MOV AL,0AH AND 0CCH</p>
<p>&nbsp; 3 关系运算符EQ NE LT LE GT GE</p>
<p>&nbsp; &nbsp; &nbsp;MOV AX,4 EQ 3&nbsp; 汇编指令为 MOV AX,0</p>
<p>&nbsp;</p>
<p>关于伪指令:</p>
<p>1 数据定义的伪指令</p>
<p>  常用的指令有DB,DW,DD,DQ,DT,分别代表定义变量为1,2,4,8,10个字节类型。</p>
<p>  定义操作书的相关伪代码如下:</p>
<p>  DATA DB 11H,33H;&nbsp; 包含两个元素的字节变量DATA</p>
<p>  NUM DW 100*5+88</p>
<p>  STR DB 'HELLO</p>
<p>  数据定义的操作数 还可以是 ? ,对变量保留相应的存储单元,但不赋予变量的值。小编在写程序的时候 需要加引号。</p>
<p>2 重复操作符 DUP</p>
<p>  DATA1 DB 20 DUP('?')&nbsp; &nbsp;; 20代表为变量DATA1分配20个字节的存储空间,初值为任意值,或者为 相对应的存储单元本来的值。</p>
<p>关于DOS的调用:</p>
<p>输入单个字符显示:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">CODE SEGMENT
    ASSUME CS:CODE
    START: MOV AH,</span>1<span style="color: rgba(0, 0, 0, 1)">
    INT 21H
    JMP START
    CODE ENDS
END START</span></pre>
</div>
<p>显示单个字符:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">CODE SEGMENT
    ASSUME CS:CODE
    START: MOV DL,</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">B</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
    MOV AH,</span>2<span style="color: rgba(0, 0, 0, 1)">
    INT 21H
    CODE ENDS
END START</span></pre>
</div>
<p>输入字符串:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">DATA SEGMENT
    STRING DB </span>10,0,10 DUP(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">?</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
    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</span>+1<span style="color: rgba(0, 0, 0, 1)">
    XOR CH,CH
    ADD DX,CX
    MOV BX,DX
    MOV BYTE PTR,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">$</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
    MOV AH,4CH
    INT 21H
    CODE ENDS
END START   </span></pre>
</div>
<p>显示字符串:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">DATA SEGMENT
   STR DB </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">123ABC</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
   DATA ENDS
CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
    START:MOV AX,DATA
    mov ds,ax
    lea bx,str
    MOV CX,</span>6<span style="color: rgba(0, 0, 0, 1)">
    LPP: MOV AH,</span>2<span style="color: rgba(0, 0, 0, 1)">
    MOV DL,
    INC BX
    INT 21H
    LOOP LPP
    MOV AH,4CH
    INT 21H
    CODE ENDS
END START   </span></pre>
</div>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/a-runner/p/12584077.html
頁: [1]
查看完整版本: 汇编语言语句类型格式