汇编语言学习笔记 .docVIP

  • 0
  • 0
  • 约3.4万字
  • 约 63页
  • 2026-01-08 发布于广东
  • 举报

汇编语言

学习笔记

目录

编程环境的搭建

深入理解汇编语言的数据

顺序程序设计

分支结构程序设计

循环

数组及指针

函数

结构

综合运用

一:编程环境的搭建

首先装好masm32v10和windbg,和editplus,然后在editplus中输入下面的程序,具体的请参考罗云彬的那本书,里面有详尽的说明,编译运行看看:

.386

.modelflat,stdcall

optioncasemap:none

includelib msvcrt.lib

printf protoC:VARARG

.data

msg dbhello,thisisthefirsttestprogram!,0dh,0ah,0

.code

start:

call main

ret

mainproc

push offsetmsg

call printf

add esp,4

push offsetmsg

call printf

add esp,4

ret

main endp

end start

下面是运行结果:

这里输出两行消息主要是我在写这个最简单的程序的时候发现他不换行,于是我在数据定义后面我加了“0ah,0dh”,呵呵,就是回车换行的十六进制表示,你也可以用其他方法试试,

程序就不多解释了,后面会有更多的解释,不过你一定要走到这以步,才能进行下一章。

2.深入理解汇编语言的数据

整数常量及变量,先看一段很简单的汇编程序:

.386

.modelflat,stdcall

optioncasemap:none

includelib msvcrt.lib

printf protoC:VARARG

.data

PRICE EQU 30

msg1 db total=%d,0dh,0ah,0

.code

start:

call main

ret

mainproc

local num:dword

local total:dword

mov num,10

mov eax,num

imul eax,eax,PRICE

mov total,eax

push offsetmsg1

call printf

add esp,4

ret

main endp

end start

程序的意思很简单就是在屏幕上打印出某个东西的价格,如过要你拿笔和纸算,拿你肯定很快就能算出来,但你让电脑怎么算呢?当电脑执行到第一个语句的时候,也就是num=10,

它就把10放到某个地方并且记住这个值,寄存器或者内存,呵呵,它也就这两个地方,为什么要这么做呢?因为后面要用它来计算啊,为了算出这个值,电脑好的办法就是放在它的内存里,为什么不是寄存器?因为寄存器太少了,就那么几个,呵呵,所以了它就把10存在一个叫num的内存里,注意了哦,num是程序里的变量名,是存中里的一个位置的名称,它的值是10,你可能会问,不起名不行么?行,等下在调试器中你看到的就是没名的。来看看它在调试器中的样子:

num变成了[ebp-4]了,现在你想象有个几千行的程序如果都用[ebp-4]这样的名字的话,那我们会疯的,所以汇编程序就让我们给程序里面的变量起个直观的名字,而不是用具体的数字去让你去记住变量内存的位置。程序中imuleax,eax,1eh中的1eh就是个整形常量,也就是30.现在你应该对常量和变量有点感觉了吧。

再看个例子:

.386

.model flat,stdcall

option casemap:none

includelib msvcrt.lib

printf protoC:VARARG

.data

a db 12h

b dw 1234h

c1 dd

msg1 db thenumberis=%xh,0dh,0ah,0

.code

start:

call main

ret

main proc

mov al,a

cbw

cwde

push eax

push offset msg1

call printf

add esp,8

mov ax,wordptra

cwde

push eax

push offsetmsg1

call printf

add esp,8

mov eax,dwordptra

push eax

push offset msg1

call printf

add sp,8

ret

main endp

end start

首先,你得想a,b,c1三个变量在程序中到底是怎么存的,是12123412345678,还是7

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档