现在的位置: 首页 > 综合 > 正文

【Inter汇编语言程序设计】中的第一个例子

2014年02月18日 ⁄ 综合 ⁄ 共 909字 ⁄ 字号 评论关闭
TITLE Add and Subtract
;整数相加减的例子

;Include文件定义
include Irvine32.inc  
includelib Irvine32.lib
includelib kernel32.lib
includelib user32.lib

;代码段
.code
main PROC                  ;定义main过程
mov eax,10000h
  add eax,40000h
  sub eax,20000h
  
  call DumpRegs     ;调用一个显示CPU寄存器值的过程
  exit   ;调用预定义的MS-Windows函数来终止程序,exit并不是MASM的关键字,而是Irvine32.inc中定义的命令
main ENDP
END main  ;结束,并定义入口

 

 

    在练习这个例子的时候,由于Include文件定义不全,导致程序在Link的时候总是报错

    比如说是: unresolved external symbol _ExitProcess@4 

 

 

 上述例子的另一种写法,直接调用MS-Windows函数,不使用Irvine32.inc中的定义命令来结束程序。

Title Add and Subtract  second


includelib Irvine32.lib
includelib kernel32.lib
includelib user32.lib


.386                              ;指出了该程序要求的最低CPU(Intel386)
.model flat,stdcall          ;指示汇编器为保护模式程序生成代码,Stdcall允许调用MS-Windows函数
.stack 4096
ExitProcess PROTO,dwExitCode:DWORD            ;PROTO伪指令声明了该程序使用的过程原型:ExitProcess是一个MS-Windows函数,其作用是终止当前进程。
DumpRegs PROTO                                             ; DumpRegs是Irvine32链接库中一个显示寄存器的过程


.code
main PROC
mov eax,10000h
add eax,40000h
sub eax,20000h
call DumpRegs
invoke ExitProcess,0                        ; 通过调用ExitProcess来结束程序
main ENDP
end main

 

 

 

 

抱歉!评论已关闭.