- 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
您可能关注的文档
- 2026年及未来5年市场数据中国卷烟行业竞争状况及投资发展前景分析报告.docx
- 2026年及未来5年市场数据中国咖啡机行业市场运营态势与投资潜力咨询报告(定制版).docx
- 2026年及未来5年市场数据中国咖啡连锁产业深度调研与投资决策咨询报告.docx
- 2026年及未来5年市场数据中国精氨酸行业市场深度调研及发展趋势与投资前景研究报告.docx
- 2026年及未来5年市场数据中国精细化工市场运行格局及投资战略研究报告.docx
- 2026年及未来5年市场数据中国聚氨酯发泡料市场发展规划及投资战略可行性预测报告.docx
- 2026年及未来5年市场数据中国聚晶金刚石复合片行业市场研究及投资战略预测报告.docx
- 2026年及未来5年市场数据中国聚氯乙烯用阻燃剂行业全景调研及投资方向研究报告.docx
- 2026年及未来5年市场数据中国巨灾保险市场全景调查与投资可行性报告.docx
- 2026年及未来5年市场数据中国卡车车载充电器行业市场前景预测及投资价值评估分析报告.docx
- 三年级下册语文1-8单元默写通关训练(含答案)(2).docx
- 2026年及未来5年市场数据中国金属钒市场发展规划及投资战略可行性预测报告.docx
- 2026年及未来5年市场数据中国金属工艺品行业全景调研及投资可行性报告.docx
- 2026年及未来5年市场数据中国金属家具市场分析及投资战略研究预测可行性报告.docx
- 2026年及未来5年市场数据中国金属膜电阻器行业市场需求预测与投资战略规划分析报告.docx
- 2026年及未来5年市场数据中国金银花行业市场发展战略分析及投资前景专项预测报告.docx
- 2026年及未来5年市场数据中国金银花行业市场研究及投资战略预测报告.docx
- 2026年及未来5年市场数据中国抗氧化剂市场专项调查分析及投资前景预测报告.docx
- 2026年及未来5年市场数据中国救护车市场运行格局及投资战略研究报告.docx
- 2026年及未来5年市场数据中国精细化工行业发展前景预测及投资分析报告.docx
最近下载
- T WSJD 84—2025 等离子体空气消毒器卫生要求.pdf
- 党员领导干部2025年专题民主生活会对照检查材料汇编(8篇).docx VIP
- 2025年松滋市国企考试真题.docx
- 成都高新区桂溪街道公办幼儿园招聘编外人员笔试考试备考试题及答案解析.docx VIP
- 2024年度主题公园委托招商运营管理协议3篇.docx VIP
- 偏瘫患者膝过伸的预防.ppt VIP
- 产品形态与设计.pptx VIP
- 2025年腰椎间盘突出病例讨论ppt.pptx
- AP物理C电磁 2024年真题 附答案和评分标准 AP Physics C Electricity and Magnetism 2024 Real Exam with Answers.pdf VIP
- 深度解析(2026)《FZT 63012-2023涤纶长丝缝纫线》.pptx VIP
原创力文档

文档评论(0)