汇编语言的艺术之三:基本认识

来源:互联网  作者:本站整理
摘要:第一节 应用工具一、对程式的认识写作程式不难,但要写出好程式却不容易。这就好像画图一样,人人都能画,而画出来的图却可能有天壤之别。想作一个好画家,首先要有观察及分析的能力,面对着杂乱的事物,先整理出头绪,找到主题。再在画布上勾出轮廓,这叫做……

四、对指令的认识

指令就是「指挥」、「命令」,用以控制电脑,一步一步地实现程式的计划。

组合语言的格式为:  
  ( 下行中凡标“[ ] ”者,表有些指令可省略 )  
  [前置元]   指令   [目的操作元,源始操作元]

1,「前置元」:以下诸例即为前置元的用法。
  11段名:表后面的操作元应属于此临时前置段。如:  
        MOV   AX,CS:BUF1  
  12定义:表示其后缓冲器的临时定义。BYTE PTR表示以一个字元定义的资料; WORD PTR表双字元资料。
        不论缓冲器的原定义为何,凡有前置元者,皆以临    时定义为准,如:  
        ADD   BYTE PTR BUF1,CL  
        前置元除了定义缓冲器长度外,亦可表示距离,  
        JMP   SHORT ABCD

2,指令:  
  11使用方法:  
    1-1 暂存器到暂存器,但限长度相同者。
        MOV   AH,BL   ; 为字元  
        XCHG  AX,BX   ; 为二字元  
    1-2 暂存器到缓冲器,或缓冲器到暂存器。
        OR    BUF1,AX   ; BUF1为缓冲器,WORD  
        ADD   CL,BYTE PTR BUF1  
    1-3 数值与暂存器或缓冲器之间。
        TEST  DI,8000H  
        AND   SI,0FFH  
        SUB   BYTE PTR BUF1,3  
        ★数值绝不可作为「目的」操作元  
    1-4 将记忆区的地址放在暂存器中,以传送该地址的内容,或传送变数以便间接调用资料。本法限用于源存器(SI)、终存器(DI)、栈用器(BP)及兼用器(BX)。如:  
        MOV   AL,BYTE PTR [DI]  
        XOR   [BP],DL  
        MOV   AX,[DI][SI]  
        MOV   AX,BUF1[DI]  
        JMP   LAB1[BX]  
    1-5 执行指令本身,不需源始或目的操作元。
        PUSH  CS  
        POP   DS  
        CALL  ABCD  
        JMP   ABCD  
        CLI  
        STD  
        LAHF  
        RET  
    1-6 执行计数者。
        LOOP  ABCD  
        REP   MOVSB  
        SAL   DL,CL  
        ROR   AX,1  
        DEC   BX  
    1-7 暂存器专用指令。
        OUT   DX,AL  
        MUL   BUF1  
        DIV   CX  
        STOSB  
        LODSW  
    1-8 条件执行者。
        JNZ   ABCD  
        JA    ABCD  
        JCXZ  ABCD  
        INT   10H  
        IRET  
           
  12应用功能可分为下列八项:  
    2-1 资料转移:1-1,1-2,1-3,1-4皆有可能。
    2-2 旗号控制:1-5 涉及旗号者。
    2-3 段址处理:1-1,1-2 项可能。
    2-4 数学计算:视指令而定,上述各项皆可。
    2-5 字串处理:1-6,1-7 项功能。
    2-6 控制转换:1-5。
    2-7 条件执行:1-8。
    2-8 中断处理:1-8。

3,操作元:可分成暂存器、缓冲器及数值(Immediate Data)。其书写方式与习惯的由前到后正好相反,使用时要小心,其余细节请参看有关组合语言手册。

【相关文章】好搜一下
小方法大作用:如何让网站PR值一路高歌

小方法大作用:如何让网站PR值一路高歌

做网站最痛苦的就是建站之初的那段时间,如长沙厂房出租网站刚建立,只是处于婴幼儿时…