关于 “Hello world” 的程序

zhulinjia 2009-03-13 04:40:00
include		windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib

; 数据段

.data
szCaption db 'A MessageBox !',0
szText db 'Hello, World !',0

; 代码段

.code
start:
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK
//第二个参数 和第三个参数 不是用来接收地址的吗? 怎么偏移地址也行?偏移地址不是一个完整的地址啊
invoke ExitProcess,NULL

end start

谢谢 帮忙讲解下
...全文
101 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnzdgs 2009-03-13
  • 打赏
  • 举报
回复
这里要求的就是偏移地址,Windows程序中通常使用的都是偏移地址(因为cs、ds、es、ss都是完全重叠的)。
BAYNPU 2009-03-13
  • 打赏
  • 举报
回复

这条指令也可以写出成: invoke MessageBox,NULL,ADDR szText,ADDR szCaption,MB_OK
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK
主要是引用局部变量的地址和全局变量的地址.
hjjdebug 2009-03-13
  • 打赏
  • 举报
回复
我来讲解一下,先给出反汇编代码:
00401000 >/$ 6A 00 PUSH 0 ; /Style = MB_OK
00401002 |. 68 00304000 PUSH messageb.00403000 ; |Title = "A MessageBox !"
00401007 |. 68 0F304000 PUSH messageb.0040300F ; |Text = "Hello, World !"
0040100C |. 6A 00 PUSH 0 ; |hOwner = NULL
0040100E |. E8 0D000000 CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
00401013 |. 6A 00 PUSH 0 ; /ExitCode = 0
00401015 \. E8 00000000 CALL <JMP.&kernel32.ExitProcess> ; \ExitProcess


由此可以看出,offset szText = 0x403000
offset szCaption = 0x40300F
这里的offset 修饰符,实际上就是内存的完整地址。编译器帮我们计算好了。
随着通信电子技术的迅速发展,信息技术给家居行业产生了深远的影响,家居环境的智能化监控已经成为智能家居的一个重要的发展方向。人们逐渐对自己的生活提出一种更高的要求,他们需要一种智能化、可交互,并且融合现代创新科技的产品来改善他们的生活环境,使他们生活更加安全、舒适、便捷、智能。本文根据智能家居的发展背景和研究现状,并且从实用性和可行性角度出发,研究设计了一种基于STM32单片机的智能家居系统。该系统由一个多功能综合的技术系统组成,各个多功能子系统间具有协同配合能力。基于STM32单片机实现的功能子系统包括:智能温度检测,智能湿度检测,智能烟雾/火灾检测智能检测,无线传输,人机交互机构,风扇调节,报警模块。 整个系统分为前端51单片机采集板和后端STM32单片机接收板。 采集板使用DHT11温湿度传感器、MQ烟雾传感器完成室内家居环境的采集。然后通过nRFL24L01将采集到的数据发送给后端。接收板使用LCD1602完成数据显示、使用蜂鸣器模块报警,使用风扇驱动模块调节室内家居环境。本文完成了智能家居控制系统前端、后端软硬件的设计,使用Altium designer绘制了电路原理图,使用Keil C完成了51单片机和STM32单片机的编程与调试。 最后,对本文设计的基于STM32的智能家居控制系统进行部署调试。试验结果表明,该系统可成功应用在智能家居环境检测调节和火灾安全防护的领域,可提高家居生活智能化水平。

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧