当前位置: 首页 > news >正文

金融课程网站模板下载和平区网站建设

金融课程网站模板下载,和平区网站建设,环球设计,流感吃什么药最好文章目录 nasm - console 32bits概述笔记my_build.batnasm_main.asm用VS2019写个程序#xff0c;按照win32方式编译#xff0c;比较一下。备注END nasm - console 32bits 概述 看到一个nasm的例子(用nasm实现一个32bits控制台的程序架子) 学习一下 笔记 my_build.bat ec… 文章目录 nasm - console 32bits概述笔记my_build.batnasm_main.asm用VS2019写个程序按照win32方式编译比较一下。备注END nasm - console 32bits 概述 看到一个nasm的例子(用nasm实现一个32bits控制台的程序架子) 学习一下 笔记 my_build.bat echo off rem my_build.batrem env rem NASM version 2.16.03 compiled on Apr 17 2024 rem GoLink.Exe Version 1.0.4.6 Copyright Jeremy Gordon 2002-2025cls set pathC:\Program Files\NASM;D:\my_dev\my_study_re\src\nasm\NasmX86AndX64ProgrammingExamples\tools\Golink;%path%rem .bat默认是不支持中文的 rem echo full path name - %~f0 rem echo full path - %~dp0 rem echo file name - %~nx0 rem echo work path - %cd%if %1 build (goto build ) else if %1 clear (goto clear ) else (goto usage ):usage echo usage my_build.bat [option] echo build - build asm to EXE echo clear - clear trush on the project goto end:build echo build ...rem find file on work path if exist nasm_main.obj (del nasm_main.obj ) nasm -f win32 nasm_main.asm -o nasm_main.obj rem 用IDA打开.obj 已经可以看到实现逻辑了if exist console_win32.exe (del console_win32.exe ) rem 如果不指定要连接的dll, 会报错 golink /entry:Start /console kernel32.dll nasm_main.obj /fo console_win32.exeif exist console_win32.exe (echo run console_win32.exe console_win32.exe ) goto end:clear echo clear ... if exist nasm_main.obj (del nasm_main.obj ) if exist console_win32.exe (del console_win32.exe ) goto end:end echo END rem pause call cmd nasm_main.asm ; file nasm_main.asm ; brief 用NASM实现一个32bits控制台程序NULL EQU 0 STD_OUTPUT_HANDLE EQU -11; 调用的win32API不用特意修饰, 用API的原始名称就行, 不必搞成 _WriteFile20 extern GetStdHandle extern WriteFile extern ExitProcessglobal Startsection .dataMessage db Console Message 32, 0x0D, 0x0AMessageLength EQU $-Messagesection .bssStandardHandle resd 1Written resd 1section .text Start:push STD_OUTPUT_HANDLEcall GetStdHandlemov dword[StandardHandle], EAXpush NULLpush Writtenpush MessageLengthpush Messagepush dword[StandardHandle]call WriteFilepush NULL call ExitProcess 用VS2019写个程序按照win32方式编译比较一下。 #include Windows.hint main() {const char* pMsg Console Message 64 ...;DWORD NumberOfBytesWritten 0;system(pause);HANDLE hStdOut GetStdHandle(STD_OUTPUT_HANDLE);WriteFile(hStdOut, pMsg, strlen(pMsg), NumberOfBytesWritten, NULL);ExitProcess(0); } 然后单步调试断住后转到反汇编。比较了一下手写的NASM代码发现基本和反汇编的结果一致。 NASM的语法和VS2019反汇编出来的代码几乎一模一样。 ; file nasm_main.asm ; brief 用NASM实现一个32bits控制台程序NULL EQU 0 STD_OUTPUT_HANDLE EQU -11; 调用的win32API不用特意修饰, 用API的原始名称就行, 不必搞成 _WriteFile20 extern GetStdHandle extern WriteFile extern ExitProcessglobal Startsection .dataMessage db Console Message 32, 0x0D, 0x0AMessageLength EQU $-Messagesection .bssStandardHandle resd 1Written resd 1section .text Start:; HANDLE hStdOut GetStdHandle(STD_OUTPUT_HANDLE);; 00DB17D4 mov esi,esp ; 00DB17D6 push 0FFFFFFF5h // !; 00DB17D8 call dword ptr [__imp__GetStdHandle4 (0DBB000h)] // ! ; 00DB17DE cmp esi,esp ; 00DB17E0 call __RTC_CheckEsp (0DB1235h) ; 00DB17E5 mov dword ptr [hStdOut],eax // !push STD_OUTPUT_HANDLEcall GetStdHandlemov dword[StandardHandle], EAX; WriteFile(hStdOut, pMsg, strlen(pMsg), NumberOfBytesWritten, NULL);; 00DB17E8 mov esi,esp ; 00DB17EA push 0 // !; 00DB17EC lea eax,[NumberOfBytesWritten] ; 00DB17EF push eax // !; 00DB17F0 mov ecx,dword ptr [pMsg] ; 00DB17F3 push ecx // !; 00DB17F4 call _strlen (0DB1366h) ; 00DB17F9 add esp,4 ; 00DB17FC push eax // ! ; 00DB17FD mov edx,dword ptr [pMsg] ; 00DB1800 push edx // ! ; 00DB1801 mov eax,dword ptr [hStdOut] ; 00DB1804 push eax // ! ; 00DB1805 call dword ptr [__imp__WriteFile20 (0DBB004h)] // !; 00DB180B cmp esi,esp ; 00DB180D call __RTC_CheckEsp (0DB1235h) push NULLpush Writtenpush MessageLengthpush Messagepush dword[StandardHandle]call WriteFile; ExitProcess(0);; 00DB1812 mov esi,esp ; 00DB1814 push 0 // !; 00DB1816 call dword ptr [__imp__ExitProcess4 (0DBB008h)] // !; 00DB181C cmp esi,esp ; 00DB181E call __RTC_CheckEsp (0DB1235h) push NULLcall ExitProcess 备注 从VS2019 c console工程的代码和NASM例子代码比较可以得到一个提示。 如果用NASM手写代码不太熟练可以从VS2019 c代码的反汇编代码抽取汇编代码直接就能用在NASM工程上。 END
http://www.hkea.cn/news/14334334/

相关文章:

  • 搭建外文网站济南小程序开发多少钱
  • 基于网站的网络营销方法有哪些有没有咨询求助做任务的网站
  • 教如何做帐哪个网站好项目营销推广策划
  • 网页设计如何建立网站网店代理免费一件代发
  • 服装加工厂网站建设方案计划书常用网站开发工具
  • 成都网站开发企业自己做小卡用什么软件
  • 京东网站建设流程图对网站开发课程的建议
  • 全球最大的平面设计网站html5快速建站
  • 外贸网站建设注意事项和建议浙江联科网站开发
  • 洛阳网站建设制作多少钱北京市住房建设投资建设网站
  • 网站建设与管理心得体会和总结签约做网站模板
  • 莆田网站建设收费标准网页制作培训苏州
  • 网站设计师图片至少保存十个以上域名网站
  • 怎么查询公司网站备案虚拟货币交易网站建设
  • 医药网站前置审批设计logo的软件有哪些
  • 网站建设收费标准行情中云建设集团网站
  • 凉山建设机械网站企业官方网站需要备案吗
  • 建设局网站管理办法湘潭关键词优化报价
  • 制作网站教学宣传产品网站
  • 手机网站和电脑网站一样吗兴县做网站的公司
  • 绍兴手机网站制作郑州网站建设方案书
  • 定制东莞网站制作公司丽水网站建设
  • 网站后台多个管理员免费一键生成个人网站
  • 有没有接做网站私活的平台扁平化网站设计欣赏
  • 青岛网站设计制作百度举报网站
  • 房地产网站模版成都市城乡建设网站
  • 网站风格设计如何做网络营销推广方案
  • 评测网站做的那些条形图男做基视频网站
  • 电子产品网站建设硬件开发软件有哪些
  • 做网站的收获php网站开发需要学什么软件