assembly x86(nasm)串比较】的更多相关文章

预留字符串口令,输入口令串与预留密码串比较.若匹配则显示“MATCH!CONGRATULATION”,否则显示“NOMATCH!”,并让用户重新输入,程序能对口令进行测试,但测试次数最多3次,若3次输入密码皆错,给出相应的提示信息,程序退出. 两种做法: data segment message db 'This is a sample program of passward' db 0dh,0ah,'Please strike the key!',0dh,0ah,'$' passward db…
data segment ENG db 'SUNdayS Coming I Wanna Drive My Car,SUN,SUN$' ;9,3 sun1 db 'SUN' swcount db 0ah,0dh,'single word number:',?,?,'$' suncount db 0ah,0dh,'SUN:',?,'$' data ends code segment assume cs:code,ds:data,es:data start: mov ax,data mov ds,ax…
T: 将BUF开始的10个单元中的二进制数转换成两位十六进制数的ASCII码,在屏幕上显示出来.要求码型转换通过子程序HEXAC实现,在转换过程中,通过子程序DISP实现显示. 思路: Main主调程序,循环调用HEXAC子程序10次 HEXAC子程序,将十六进制数,除以16分解成两个独立部分,再利用数据结构堆栈的后进先出的性质来调整顺序,同时进行转码. DISP子程序,起显示作用. 问题:子程序中对栈的使用需要小心,一个子程序push后,在return之前必须有对应的pop,要不然子程序无法返…
cs的日常打卡. data segment ENG db 'SUNdayS Coming I Wanna Drive My Car,SUN,SUN$' ;43,35 sun1 db 'SUN' swcount db 0ah,0dh,'single word number:',?,?,'$' suncount db 0ah,0dh,'SUN:',?,'$' data ends code segment assume cs:code,ds:data,es:data start: mov ax,dat…
https://www.cnblogs.com/lanclot-/p/10962702.html接上一篇 本来就有放弃的想法,可是有不愿退而求次, 然后大神室友写了一个集海伦公式计算三角形面积, 三点坐标计算的程序, data segment message db 'Please input 3 numbers',0dh,0ah,'$' message1 db 'These numbers can not make up a triangle','$' num db ?,?,? zuobiao…
参考了一位大佬的博客 https://blog.csdn.net/qq_40298054/article/details/84496944传送门 https://blog.csdn.net/qq_40818798/article/details/83758281 事情是这样的,原本愉快的一天因为一道题目而被毁掉 原题: 就很头疼(于是改成了输入三个坐标) 看一下成果: 代码如下: data segment message db 'This is a sample program of keybo…
有一个首地址为NUM的N字无序无符号整数数组,编制程序采用选择排序法使该数组中的数按照从小到大的次序排序输出. 选择排序: data segment message db 'This is a program of Selection sort',0dh,0ah,'$' NUM dw ,,,,, ;0ch,4eh,37h,4h,7dh,60h count db $-NUM data ends code segment assume cs:code,ds:data start: mov ax,da…
关于ffmpeg FFmpeg是一個自由軟體,可以執行音訊和視訊多種格式的錄影.轉檔.串流功能,包含了libavcodec——這是一個用於多個專案中音訊和視訊的解碼器函式庫,以及libavformat——一個音訊與視訊格式轉換函式庫. --以上内容摘自 https://zh.wikipedia.org/wiki/FFmpeg 环境 Ubuntu Desktop 16.04 LTS FFmpeg配置 1.关于yasm 在安装ffmpeg之前,还是先安装下yasm吧 (其实,也可以不装,在编译ffm…
简述 https://libjpeg-turbo.org/的网站上是有已经编译好的版本下载的,但是VC下是使用的VC10.0编译的.虽然在VC14.0下也能用,但是我还是需要编译一个VC14.0版本的. 准备工作 先去下载源码包https://jaist.dl.sourceforge.net/project/libjpeg-turbo/1.5.3/libjpeg-turbo-1.5.3.tar.gz 然后需要安装一下NASM汇编工具,这个可以在https://www.nasm.us/网站找到.…
1 缘起 原来就了解些libcurl,一直没有机会在项目实际使用libcurl.   恰好最近一个云存储的项目,服务器使用openstack 恰好我负责现在的一个云存储SDK c++版本的开发中. 与服务器的通信都是基于HTTP/HTTPS协议通信.先做window下的sdk,在逐步移植到linux和MAC平台下. 在curl的官方网站 **http://curl.haxx.se/download.html** 提供编译好libcurl包,用于老外的使用的 VC++编译器过高,本人使用VC201…
本文是我在追查一个诡异core问题的过程中收获的一点心得,把公司项目相关的背景和特定条件去掉后,仅取其中通用的C++虚函数实现部分知识记录于此. 在开始之前,原谅我先借用一张图黑一下C++: “无敌”的C++ 如果你也在写C++,请一定小心…至少,你要先有所了解: 当你在写虚函数的时候,g++在写什么? 先写个例子 为了探索C++虚函数的实现,我们首先编写几个用来测试的类,代码如下: C++ #include <iostream> using namespace std; class Base…
Hello World这是每一门编程语言的第一个最简单程序,下面那个程序就是汇编语言的Hello World.学汇编一段时间了,到现在才记录下自己的第一个汇编程序笔记.虽然这是个相当简单的小程序,但这也算是一个开始吧,有了开始,以后自己的笔记也许才会更新的更勤.   Assembly (x86)   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 stack      segment stack 'stack'            dw 32 d…
On a 32-bit machine: Any CPU: runs as a 32-bit process, can load Any CPU and x86 assemblies, will get BadImageFormatException if it tries to load an x64 assembly. x86: same as Any CPU. x64: BadImageFormatException always. On a 64-bit machine: Any CPU…
最近的项目又回到了Linux上运行,这就需要在Linux下编译项目,写Makefile针对习惯了Windows的程序员来说是一件痛苦的事,如果有一个通用的Makefile该多好啊,本着这样的目的,我再次研究了一下Makefile,写出了一个实用的通用Makefile,该Makefile在Windows以及Linux平台下作了一些简单测试,未发现问题,如果大家在使用过程中发现有问题可以联系我.话不多说,直接上代码: #########################################…
一.libcurl描述: 在curl的官方网站 **http://curl.haxx.se/download.html** 提供编译好libcurl包,  最后写一个demod工程,演示下libcurl强大的威力和自己使用libcurl的一些心得. 二. curl/libcurl 介绍 先看的baidu 百科是怎么介绍curl 它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP. curl同样支持HTTPS认证,H…
Assembly on x86_64 Linux Some instructions in Intel assembly set are invalid in x86_64 env. e.g. aaa push eax ... Solutions Use 64-bit instructions instead.(You can refer to Intel developer manual) Add 32-bit options: For nasm: nasm -f elf32 xxx.asm…
While 64-bit x86 processors have now been on the market for more than 5 years, software support is only slowly catching on. 64-bit x86, or x86-64 as its inventors at AMD called it, not only offers programmers the ability to manipulate and address dat…
制作DLL xxx.asm: %macro fb 0 push ebp mov ebp,esp %endmacro %macro fa 1 mov esp,ebp pop ebp ret %1 %endmacro section .text global dllmain dllmain: mov eax,1 ret 12 f1: fb mov eax,[ebp+8] add eax,[ebp+12] fa 8 xxx_link.fil: ; > golink @xxx_link.fil /ent…
getArguments.asm: extern VirtualAlloc section .text global dllmain export getArguments dllmain: mov eax,1 ret 12 getArguments: push ebp mov ebp,esp push 0x40 ; PAGE_EXECUTE_READWRITE push 0x3000 ; MEM_COMMIT | MEM_RESERVE push 8 ; size push 0 ; lpAdd…
xxx.asm %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export astrlen dllmain: mov eax,1 ret 12 astrlen: push ebp mov ebp,esp mov ecx,[p1] ; char ptr xor eax,eax .for: cmp byte [ecx],0 je .return inc ecx inc eax jmp…
hello.asm: extern MessageBoxA extern ExitProcess section .data title db "caption.",0 message db "hello world....",0 section .text global main main: push 0 push title push message push 0 call MessageBoxA _exit: push 0 call ExitProcess h…
在淘宝定了<<C++程序设计语言(特别版)>> 后天才能到货.从网上下了<<C++ Primer中文版>>的电子书看看.找找C++的感觉先. 先看看基本类型的传值方式: 写了3个方法.反编译看看. void fun1(int a){     a ++;} void fun2(int &a){    a++;} void fun3(int *a){    (*a)++;} fun1的汇编代码: push    ebpmov     ebp, espmo…
xxx.asm: %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export astrstr dllmain: mov eax,1 ret 12 ;-------------------------------------------------------------; ; 返回一个指针,该指针指向字符串中第一次出现的搜索字符串 ;-----------------------…
xxx.asm %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export astrspn dllmain: mov eax,1 ret 12 ;---------------------------------------------------; ; 返回不属于一组字符的字符串中第一个字符的索引 ;---------------------------------------…
xxx.asm %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export astrset_s dllmain: mov eax,1 ret 12 ;------------------------------------------------; ; 将字符串的字符设置为字符 ;------------------------------------------------;…
xxx.asm %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export astrrev dllmain: mov eax,1 ret 12 ;------------------------------------------------; ; 反转字符串的字符. ;------------------------------------------------; astrr…
xxx.asm %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export astrrchr dllmain: mov eax,1 ret 12 ;------------------------------------------------; ; 扫描字符串以查找字符的最后一次出现. ;---------------------------------------------…
xxx.asm: %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export astrncmp dllmain: mov eax,1 ret 12 ;------------------------------------------------; ; 比较最多两个字符串的指定字符数. ;----------------------------------------------…
xxx.asm: %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 %define p4 ebp+20 section .text global dllmain export astrncat_s dllmain: mov eax,1 ret 12 ;------------------------------------------------; ; 将字符追加到字符串 ;---------------------------------…
xxx.asm %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export astrlwr_s dllmain: mov eax,1 ret 12 ;-----------------------------------------; ; 将字符串转换为小写 ;-----------------------------------------; astrlwr_s: push e…