0x01第一个汇编程序

;将由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

时间: 2024-10-21 21:46:21

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

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

Hello World这是每一门编程语言的第一个最简单程序,下面那个程序就是汇编语言的Hello World.学汇编一段时间了,到现在才记录下自己的第一个汇编程序笔记.虽然这是个相当简单的小程序,但这也算是一个开始吧,有了开始,以后自己的笔记也许才会更新的更勤. Assembly (x86) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 stack      segment stack 'stack' dw 32 dup(0) stack    

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

学习一门语言,最好的方式就是在运用中学习,那么在这一章节中,我们开始编写我们的第一个汇编程序.当然作为第一个程序,其实十分的简单,但可以给大家一个基本的轮廓,了解汇编大概是这样的. 我们这个程序实际上没什么作用,只是简单的推出而已.下面就是程序的范例 # 目的: 退出程序并向Linux内核返回一个状态码 # 输入: 无 # 输出: 返回一个状态码.在程序运行结束后可以通过 echo $? 来读取状态码 # 变量: %eax保存系统调用号 %ebx保存返回状态 .section .data .se

小甲鱼零基础汇编语言学习笔记第四章之第一个汇编程序

1.使用工具 代码编写:NotePad++,代码编译器:MASM 2.一个源程序从写出到执行的过程 第一步,使用文本编辑器,用汇编语言编写汇编源程序,这一步产生一个存储源程序的文本文件. 第二步,对源程序进行编译,连接.使用MASM.exe对源程序文件进行编译,产生目标文件,再使用LINK.exe对目标文件进行连接,生成可在操作系统中直接运行的可执行文件.可执行文件包括两个部分,程序(从源程序的汇编指令翻译过来的机器码)和数据(源程序中定义的数据):相关的描述信息 (程序有多大,要占多少内存空间

masm32基本配置与写出第一个汇编程序

在windows系统上,如果编写C/C++等程序,只需利用visual Studio即可,但如果打算编写汇编程序,往往需要另外配置很多东西,另新手望而却步. masm32是由个人开发的一套可以在Windows平台上编写汇编的工具,只需要简单配置,就可以编写汇编程序. 注意:不要与微软的masm宏编译器搞混,两者不是一个概念. 一.masm32的安装 去官网,然后DownLoad,一路下来,安装到C盘或D盘根目录下即可. 二.配置环境变量(用户变量) 分别配置 include(xx.inc的头文件

第一个汇编程序

assume cs:codesg codesg segment mov ax,0123h mov bx,0456h add ax,bx add ax,ax mov ax,4c00h int 21hcodesg ends end

Android安全专项-Apk加固

参考文章 Android APK加壳技术方案[1] Android APK加壳技术方案[2] Android中的Apk的加固(加壳)原理解析和实现 0x00 原理部分我不献丑了,上面3篇文章说的很清楚,我直接实战,讲述从0开始如何最终实现加固的整个过程,踩了不少坑. 0x01 第一步创建被加固Apk,就是你的源码Apk.你做的工作就是防止这个Apk被破解.这个APK要注意以下几点: 记住你的主Actvitiy名和其他Activity名 从途中可知我们的主Activity为doctorq.com.

汇编语言学习01

汇编语言(8086cpu) 恩,学习一门课程,我觉得应该有一定的条理性,而且自己要勤加思考才能学好,条理性:最好就是先整体的介绍一下全本书,然后再详细的介绍各个章节,而且,书籍的章节安排目录有一定的条理性,是渐进式的,前面的学习,为后面的内容做好了铺垫,打好了基础.不能随便排版(深入理解计算机系统是我读过数里面最好的) 读书教材:王爽的<汇编语言>教材比较好. 下面在阅读了三章以后写一下自己的收获. 汇编语言:基于底层的一门语言.在学习这本书时,学过计算机组成原理会对这本书的学习起到良好的作用

#程序媛生活#大二暑假小学期#X86-32汇编语言

X86-32汇编语言 0.示例helloworld程序 a.生成汇编文件 使用命令 $gcc -On -S helloworld.c -m32 会生成32位汇编文件 b.helloworld.s汇编代码内容简析 以“.”开头的是汇编指示,以“:”结尾表示函数或变量地址,其余为汇编指令 1.第一个汇编程序 a.linux汇编命令 使用命令as -o --32 my-object-file.o helloworld.s运行汇编文件 使用命令ld -o -m elf_i386 my-exe-file

对汇编语言第4周的总结反馈

汇编语言程序设计课到第4周.这周的课后总结中,让同学们写下"我的疑惑".这倒好,真引出了一大堆好问题,其实,这也就是大家学习的最真实情况. 为同学们的解答公布如下.下一周,老贺不做这种一对多的事情了,我们开启互评模式,靠同学们的多对多,完成更有意义的深入交流. 学号 学生小结 老师点评 (14)1147 我得到的知识: loop指令和[bx]指令的运用及其相关的内容,还有源程序文件.目标文件和可执行文件的相互转换.我得到的技能: 用editplus去编写源程序,使用masm进行编译.我