编程首篇-1.了解程序

          程序是通过编写代码来实现的,就如同写文章。         

          可以认为程序就是数据,数据也是程序。什么时候是程序,什么时候是数据,要通过代码中的设计来实现的。

          代码可以在编辑器中写,存放也是从左到右,从上到下。保存后叫源代码。需要编译。还可以在解释器里编写,不需编译。

          编译是把文本代码转换成二进制代码的过程。转换后才能在电脑上执行。

          写代码的第一步,了解程序模式  扁平模式是32位的主要模式,MASM语法表示

          .MODEL flat, stdcall

           就是所有存储器程序数据作为一个段。早期由于物理技术水平限制,分了4个段。名字为CS,DS,SS,ES.

           实现方法就是 CS,DS,SS,ES都指向一个位置。同时增加了两个段寄存器FS,GS。

          为了更清楚在什么机器上执行,可以指明运行cpu类型,MASM语法

          .686P

           这里指明的只是一种。

          写代码的第二步,了解程序入口和数据入口

          程序和数据放在一起,如何区分和操作是通过寄存器来实现的。寄存器包括通用寄存器有八个

          EAX.EBX,ECX,EDX,ESI,EDI,ESP,EBP。标志寄存器EFR和指令位置寄存器EIP。最主要的要记住这些约定:

          EAX为累加器,ECX为计数器,EBX,EBP为基址寄存器,ESI,EDI为变址寄存器,EBP还可以是基址指针,ESP 为堆栈指针。

          段寄存器CS+EIP是程序入口,DS+通用寄存器任何就是数据入口。MASM语法抽象为表示

          .data

          数据入口

          .code

          程序入口

          写代码的第三步,了解程序终止。

          程序需要有一些初始数据,如堆栈

          .STACK 4096

          程序不是无休无止的,必须有一个范围,和停止标志,需要一些初始数据设置。

           main:

                invoke ExitProcess,0

          end main

          ExitProcess,0 是winAPI函数,还需在代码中给编译器指明

         ExitProcess PROTO,  :DWORD

           并要放在前面。

         这样,就构成一个简单什么都不做的MASM程序。整理为:

          .686P

         .MODEL flas,stdcall

         .STACK 4096

         ExitProcess PROTO,:DWORD

         .data

         .code

         main:

               invoke ExitProcess,0

         end main

         C语言表现就更为简单,如下面.模式都由系统自动完成了。

         #include<stdio.h>

         void main(){

         }

        

         

         



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值