;将由text db 10,20,30,40定义的4个数相加,并输出其和。
 .386    ;指明指令集
 .model flat,stdcall ;平坦模式,函数右边的参数先入栈
 option casemap:none ;指明大小写敏感
 
 include \masm32\include\windows.inc ;windows.inc 包含头文件
 include \masm32\include\user32.inc 
 include \masm32\include\kernel32.inc
 include \masm32\include\masm32.inc
 
 includelib \masm32\lib\user32.lib ;包含库文件
 includelib \masm32\lib\kernel32.lib
 includelib \masm32\lib\masm32.lib
 .data 
text db 10,20,30,40  ;定义多个变量
buffer  db 10 dup(0)
szFmt  db '结果是:%d',0
 .code
start:
 xor eax,eax
 mov al,text
 mov bl,text+1
 mov cl,text+2
 mov dl,text+3
 add al,bl
 add al,cl
 add al,dl ;和在eax中
 
 invoke  wsprintf,  ;格式化信息串
   addr buffer, ;信息串格式化后的存放地
            addr szFmt,  ;信息串的格式:'结果是:%d",0
            eax   ;数值和
   
 invoke ClearScreen ;清屏
 invoke locate,10,10 ;光标定位(x,y)
 invoke StdOut,addr buffer  ;显示串
 invoke ExitProcess,NULL  ;中止一个进程,退出代码
 end start

修改.code部分代码

xor eax,eax
 mov al,text
 add al,text+1
 add al,text+2
 add al,text+3

0x01第一个汇编程序的更多相关文章

  1. Linux汇编教程02:编写第一个汇编程序

    学习一门语言,最好的方式就是在运用中学习,那么在这一章节中,我们开始编写我们的第一个汇编程序.当然作为第一个程序,其实十分的简单,但可以给大家一个基本的轮廓,了解汇编大概是这样的. 我们这个程序实际上 ...

  2. “Hello World”—— 第一个汇编程序

    Hello World这是每一门编程语言的第一个最简单程序,下面那个程序就是汇编语言的Hello World.学汇编一段时间了,到现在才记录下自己的第一个汇编程序笔记.虽然这是个相当简单的小程序,但这 ...

  3. 在VS2019使用MASM编写汇编程序

    具体的配置步骤可以参考: 汇编环境搭建 Windows10 VS2019 MASM32 本文主要是入门向的教程,VS2019中要调用C语言函数需要加上 includelib ucrt.lib incl ...

  4. Intel格式和AT&T格式汇编区别

    一.AT&T 格式Linux 汇编语法格式 在 AT&T 汇编格式中,寄存器名要加上 '%' 作为前缀:而在 Intel 汇编格式中,寄存器名不需要加前缀.例如: AT&T 格 ...

  5. js中this的四种使用方法

    0x00:js中this的四种调用模式 1,方法调用模式 2,函数调用模式 3,构造器调用模式 4,apply.call.bind调用模式 0x01:第一种:方法调用模式 (也就是用.调用的)this ...

  6. python写一个邮箱伪造脚本

    前言: 原本打算学php MVC的思路然后写一个项目.但是贼恶心, 写不出来.然后就还是用python写了个邮箱伪造. 0x01 第一步先去搜狐注册一个邮箱 然后,点开设置,开启SMTP服务. 当然你 ...

  7. 操作系统内核Hack:(一)实验环境搭建

    操作系统内核Hack:(一)实验环境搭建 三四年前,心血来潮,入手<Orange's:一个操作系统的实现>学习操作系统内核,还配套买了王爽的<汇编语言(第二版)>和<80 ...

  8. pwn入门之栈溢出练习

    本文原创作者:W1ngs,本文属i春秋原创奖励计划,未经许可禁止转载!前言:最近在入门pwn的栈溢出,做了一下jarvisoj里的一些ctf pwn题,感觉质量都很不错,难度循序渐进,把自己做题的思路 ...

  9. 协议—IIC

    I2C总线支持任何IC生产过程NMOS CMOS双极性,两线――串行数据 SDA 和串行时钟SCL线在连接到总线的器件间传递信息,每个器件都有一个唯一的地址识别,无论是微控制器.LCD 驱动器.存储器 ...

随机推荐

  1. Arduino

    ========================================= Sites/Blogs http://arduino.cc/ http://www.geek-workshop.co ...

  2. 获取input中的值

    先在input标签中添加一个id='getvalue'document.getElementById("getvalue").value;

  3. 微信小程序个人理解

    1:小程序不是用HTML5开发,它是由微信全新定义的规范,是基于XML+JS的,不支持也不兼容HTML,兼容受限的部分CSS写法.(wxml) weixin markup language 2:小程序 ...

  4. ruby(html)

    有的时候,我们要给汉字标记拼音,让拼音显示要汉字的上面 <ruby>中国人<rp>(</rp><rt>zhong guo ren</rt>& ...

  5. Windows 10 (or 8)Chrome 观看视频发生flash不能加载,即"could't load plugins"原因之一

    最近一直如题,不能看视频,后来发现从一个已经使用管理员权限打开的应用转到Chrome就可以加载flash,而从桌面打开Chrome就加载不了. 今天再次查找信息,从Ubuntu下Chrome不能加载f ...

  6. FMS服务器在centos下安装

    首先当然得先下载安装包了 http://pan.baidu.com/s/1jGL1Nvw #要先安装一下这个包,否则会提收提示错误,缺少libcap yum install compat-libcap ...

  7. ubuntu下安装git,sublime,nodejs

    用的是VMware10.0版本的虚拟机,很早之前下载的今天就直接用了,安装挺简单记得需要一个序列号.在这里:http://mirrors.163.com/ubuntu-releases/15.04/u ...

  8. transport

    #include<iostream> using namespace std; int transport(int a) { ; ) ; else a=a/; d=; ) { a=a*+; ...

  9. 命名空间 和 class_exist() 问题

    #namespace_test_1.php <?php namespace namespace_test_1; class test { const NAMESPACE = 'namespace ...

  10. document.write() 和 document.writeln() 区别

    写javascript页面时,看到这两个函数,第一感觉应该是一个换行,一个不换行, 但是实际使用时是一样的(writeln()函数在浏览器页面会多一个空格而不是换行). 简单搜索查阅了下: 查看源 d ...