Win32汇编(SMU—C嵌入汇编)
键盘输入任一个字符,然后以此字符填充数组a[41]。
注意:填充40个字符即可。
如:
运行后输入:A
则结果输出:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA#include "stdio.h"
void main()
{char a[41]={0},c;
scanf("%c",&c );__asm{/*【*/
;lea edi,a ;法一
;lea esi,c
;mov esi,dword ptr[esi]
;mov ecx,40
;again:
;mov dword ptr[edi],esi
;add edi,1
;loop againmov al,c ;法二
lea edi,a
mov ecx,40
rep stosb
/*】*/}printf("%s",a);
}
将字符数组a[63]中的数字删除(相当于把字母移到起始位置)。
注意:字符串结束标志也移。
如:
运行后输入:null(不输入)
则结果输出:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
请在/*【*/和/*】*/之间编写程序。#include "stdio.h"
void main()
{char a[63]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";__asm{/*【*/
lea esi,a[10]
lea edi,a[0]
mov ecx,52+1
rep movsb
/*】*/}printf("%s",a);
}
将字符数组a[63]中的字母向后移10个位置。
注意:前10个位置字母不变。
如:
运行后输入:null(不输入)
则结果输出:ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#include "stdio.h"
void main()
{char a[63]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",c;__asm{/*【*/
lea esi,a[51]
lea edi,a[51+10]
mov ecx,52
std ;反向移动
rep movsb
cld ;输出之前转正,复位寄存器的方向标志,让串操作从低地址开始(第0个元素开始传送)
/*】*/}printf("%s",a);
}
键盘输入整数x、y、z,然后输出x*y+z的值。
运行后若输入:3 4 5
则结果输出:3*4+5=17#include "stdio.h"
void main()
{int x,y,z,t;scanf("%d %d %d",&x,&y,&z);__asm{/*【*/
mov eax,x
imul y
add eax,z
mov t,eax
/*】*/}printf("%d*%d+%d=%d",x,y,z,t);
}
键盘输入任一个整数n和一个汉字(即两个字符),然后以此汉字填充p指定位置。
注意:最多填充40个汉字(n<=40)。
如:
运行后输入:4 字
则结果输出:字字字字#include "stdio.h"
void main()
{char c1,c2,p[81]={0};
int n;
scanf("%d %c%c",&n,&c1,&c2);__asm{/*【*/
mov al,c1
mov ah,c2
lea edi,p
mov ecx,n
rep stosw
/*】*/}printf("%s",p);
}
键盘输入一串字符给数组a,然后请你将其复制到数组b。
如:
运行后输入:ABCDEFG
则结果输出:ABCDEFG#include "stdio.h"
void main()
{char a[80],b[80];
scanf("%s",a);__asm{/*【*/
cld
lea esi,a
lea edi,b
mov ecx,79 ;.data -> len equ $-a -> mov ecx,len
rep movsb ;将原串a中len个数据按字节传送到b位置
/*】*/}printf("%s",b);
}
Win32汇编(SMU—C嵌入汇编)相关推荐
- 利用c#实现远程注入非托管WIN32程序,并利用嵌入汇编调用非托管WIN32程序中的内部过程...
c#通过调用windows API函数,可以很轻松的完成非托管WIN32程序的注入.内存读写等操作,以下为c#实现远程注入非托管WIN32程序,并利用嵌入汇编调用非托管WIN32程序中的内部过程的源码 ...
- Linux 应用程序 嵌汇编,Linux下嵌入汇编代码调用API(using fork())
以下关于fork()的描述来自于:jason314 首先,在Linux环境下,一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间.然后把原来的进程的所有值都复制到新的新 ...
- 实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
贺邦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数 ...
- 初学 Delphi 嵌入汇编[3] - 第一个 Delphi 与汇编的例子
前面知道了一个汇编的赋值指令(MOV), 再了解一个加法指令(ADD), 就可以做个例子了. 譬如: ADD AX,BX; 这相当于 Delphi 中的 AX := AX + BX; 另外提前来个列表 ...
- IAR 下C中嵌入汇编
最近在读<C专家编程>一书时,遇到了C中嵌入汇编的问题,刚好项目中也经常遇到这个问题,决定花时间整理一番,理清在IAR环境下的使用方法. C中嵌入汇编指令在不同的编译器下有不同的实现方式, ...
- c语言 汇编中断程序,ARM7 C语言嵌入汇编开关中断
__inline void IRQEnable(void) { int tmp; __asm { MRS tmp,CPSR ///读取CPSR的值 BIC tmp,tmp,#0x80 // ...
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
实验4:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 姓名:李冬辉 学号:20133201 注: 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http ...
- 用汇编的眼光看C++(之嵌入汇编)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 嵌入式汇编是对纯汇编文件的一种有益补充.通常会有下面几种情况使用到汇编:(1)提高代码的工作效 ...
- gnu嵌入汇编,内嵌汇编详细的介绍
GCC 提供了内嵌汇编的功能,可以在 C 代码中直接内嵌汇编语言语句,大大方便了程序设计.简单的内嵌汇编很容易理解,例: __asm__ __volatile__("hlt"); ...
最新文章
- IDEA 热启动,每次更改代码后不用重启服务
- Struts2-整理笔记(三)结果处理跳转、获得servletAPI原生
- Android服务之Service(其一)
- Unity重置Animator到初始状态和重复播放同一个Animation
- 我用 PyTorch 复现了 LeNet-5 神经网络(自定义数据集篇)!
- 三十四、深入Java中的泛型(上篇)
- unistd.h 中int access(const char * pathname, int mode); 判断进程能否以mode模式访问pathname文件(可以用来判断文件/目录是否存在)...
- CSS3弹性盒子Flex
- windows media services 2008外网无法访问
- 最简单的小程序怎么做?
- Linux用户登录日志查询
- python-编程之美
- 微信小程序-wxParse插件的使用
- 智能园区中的身份识别的原理是什么?
- Python 计算 AMR 文件的时长
- C语言:ASCII字符文件与二进制字符文件的相互转换
- 可视化系列讲解:css3D:如何绘制正方体,长方体等
- el-table中使用el-popover点击取消按钮时popover框的显示与隐藏问题
- 应广单片机003烧录器万能烧录方法
- 服务器查看账户被锁的信息吗,远程服务器帐户被锁定
热门文章
- 研发团队管理经验总结(一)
- 虚荣和骄傲会让你跌得很惨
- 安卓手机端一键抠图,这款软件适合你
- 如何配置log4j2日志记录至数据库
- sudo pycharm error:Can‘t connect to X11 window server using ‘localhost:12.0‘ as the value of
- 博客写作模板——自用
- 家用风扇控制系统c语言程序设计,智能风扇控制系统设计.doc
- torchtext使用-- 单标签多分类任务TREC
- 有关python的比赛_用 Python 写一个 Kaggle 比赛排行榜的爬虫
- 反编译打包apk后无法安装正版apk提示:Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]