专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »汇编语言 » 数据段代码段:把数据写到代码段 »正文

数据段代码段:把数据写到代码段

来源: 发布时间:星期四, 2009年1月8日 浏览:86次 评论:0
  看下面很简单你认为执行结果会是什么?

  ------------------------------------------------------------

  ;文件名:11.ASM
;利用console显示串信息
    .386
    .model flat,stdcall
    option map:none
\MASM7\INCLUDE\windows.inc
\MASM7\INCLUDE\kernel32.inc
\MASM7\INCLUDE\masm32.inc
lib \MASM7\LIB\kernel32.lib
lib \MASM7\LIB\masm32.lib
    .code
messAdd dd 0
mess  db 'How are you !',0
start: 
    lea eax,mess
    mov messAdd,eax   ;写代码段中数据
    invoke StdOut,messAdd
    invoke ExitProcess,NULL
    end start


  -----------------------------------------------------------

  太简单啦不就是利用console输出串?对啦这就是原意!

  但结果却不是想象在执行映入我们眼帘首先是消息框!

  为什么会这样呢?Windows在链接时设置代码段个属性那就是“读\执行\代码”就是不允许写所以就出错啦!有没有解决办法呢?

  照着下面操作吧它可使代码段有写属性:

  D:\MASM7>ml /coff 4.asm /link /subsystem:console /section:.text,rw  ;R-读W-写
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.
Assembling: 4.asm
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/subsystem:console /section:.text,rw
"4.obj"
"/OUT:4.exe"
D:\MASM7>11
How are you !
D:\MASM7>_


0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: