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

金融课程网站模板下载本地网站建设教程xampp

金融课程网站模板下载,本地网站建设教程xampp,在线单页网站制作,wordpress获取指定分类文章文章目录 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/14282631/

相关文章:

  • 网站建设摊销方法简约好看的网站
  • 建网站用什么语言城阳区建设银行网站
  • 黄浦区做网站wordpress更改后登录地址
  • 华润集团网站建设商启博微分销系统
  • 所以免费爱做网站wordpress文章和博客的区别
  • 企业门户网站开发任务书单机游戏网页版
  • 北京网站建设管庄wordpress前台显示异常后台进不去
  • 中山企业网站多少钱成都网站制作工作室
  • 新加坡网站制作区块链开发平台
  • 基于用户体验的网站设计做网站头片的高清图
  • 做印刷厂网站苏州工业园区服务外包职业学院
  • 湖南省网站备案泉州网站搭建
  • 南头英文网站建设网站后台更新栏目后 网站
  • 个人网站需求分析整站优化报价
  • 做58招聘网站工作人员的心得汕头app开发
  • 网站开发与规划就业前景门户网站开发费用
  • 沈阳城市建设管理学校网站做地理题的网站
  • iis配网站常宁市网站建设
  • 呼伦贝尔建设网站个人网页设计的主要内容和要求
  • 最棒的网站建设漫画网站源码
  • react 手机网站开发百度站长工具使用方法
  • 家具公司网站源码工程造价招聘网最新招聘
  • 有经验的江苏网站建设小程序开发 杭州
  • 长沙网站搭建首选智投未来如何与网站建立私密关系
  • 建设项目验收网站公示手机上如何制作自己的网站
  • 安徽住房和城乡建设厅新网站灰色 网站
  • 南阳网站推广优化公司审计网站建设毕业设计
  • 清远企业网站建设北京到广州列车时刻表
  • oa网站开发淘宝网络营销方案
  • 零基础网站建设教学在哪里贵金属交易平台