加减法的实现过程
库文件目录说明

版本一:包含库文件
TITLE AddandSubtract (Addsub.asm) ;TITLE伪指令将整行标为注释 ;This program adds and subtracts 32-bit integers.注释 ;INCLUDEIrvine32.inc;INCLUDE伪指令从Irvine32.inc文件中复制必须的定义和设置信息, include Irvine32.inc ;包含与lrvine32链接库一起使用的文件(32位应用程序) .code ;代码段开始 main PROC ;mov ax,@data ;16位汇编数据段赋值 ;mov ds,ax ;实模式 mov eax,10000h ; EAX = 10000h eax,40000h ; EAX=50000h eax,20000h sub ; EAX=30000h call DumpRegsI ;调用显示寄存器值的过程-子程序 Exit ;调用一个预定义的Ms-Windows函数来终止程序。Irvine32.inc文件中定义,不是MASM的关键字,DOS系统MOVAX,4C00HINT21H main ENDP ;过程结束标记 END main ;汇编源程序结束
版本二:不依赖包文件;直接使用操作系统函数
段: 禾程序是以段组织的,代码段CS,数据段DS,堆栈段SS, 附加段ES,FS,GS
编码风格:为了增强代码的可读性,建议以下规则
关键字全部小写,标识符大小写混合,常量全部大写。这种方案符合C/C++,JAVA的一般规则
1 TITLE AddandSubtract (AddSubAlt.asm) 2 ; Thisprogramaddsandsubtracts32-bitintegers. 3 .386 最低CPU要求386 4 .model flat,stdcall ;伪指令.model指示汇编器为保护模式程序生成代码,STDCALL允许调用MS-WindoWS函数 5 .stack4096 ;定义堆栈段空间4096 6 ExitProcessproto,dwExitCode:dword;ExitProcess是一个MS-Windows函数,作用是终止当前进程 7 DumpRegsProto ;DumpRegs是lrvine32链接库中一个显示寄存器的过程。proto伪指令声明该程序使用的过程原型 8 .code 9 mainPROC 10 eax,10000h mov ;EAX= 10000h 11 add eax,40000h ;EAX=50000h 12 sub eax,20000h ;EAX=30000h 13 call DumpRegs 14 15 INVOKEExitProcess,0 ;INVOKE是带参数类型检查的调用过程或函数的伪指令,参数为 16 ;返回码0 17 main ENDP 18 END main
总结:
程序模板:
使用注释:程序开始位置及代码中必须写注释
使用库文件:Irvine32.inc
使用操作系统文件
1 TITLE ProgramTemplate (Template.asm) 2 ;程序的描述: 3 ;作者: 4 ;创建日期 5 ;修改 6 ;日期: 修改者: 7 INCLUDE Irvine32.inc 8 .data 9 ;(在此插入变量) 10 .code 11 Main proc 12 ;(在此插入代码) 13 exit 14 Main endp 15 ;(在此插入其他程序) 16 end main

浙公网安备 33010602011771号