汇编学习心得(二)关于字符的处理
1 TITLE MASM Template (main.asm) 2 3 ; Description: 4 ; 5 ; Revision date: 6 7 .686P ; Pentium Pro or later 8 .MODEL flat, stdcall 9 .STACK 4096 10 option casemap:none; 大小不敏感 11 12 13 printf PROTO C :dword,:vararg 14 scanf PROTO C :dword,:vararg 15 gets PROTO C :dword 16 getchar PROTO C 17 ExitProcess PROTO,dwExitCode:DWORD ; exit program 18 exit EQU <INVOKE ExitProcess,0> 19 20 INCLUDELIB C:\asm\USER32.LIB 21 INCLUDELIB C:\asm\KERNEL32.LIB 22 INCLUDELIB C:\asm\MSVCRT.LIB 23 24 chr$ MACRO any_text:VARARG ;老师的神码 25 LOCAL txtname 26 .data 27 txtname db any_text,0 28 align 4 29 .code 30 EXITM <OFFSET txtname> 31 ENDM 32 33 .data 34 buf byte 256 dup(0) 35 .code 36 main PROC 37 invoke printf,chr$("Please input the string: ") 38 invoke scanf, chr$("%s"),offset buf 39 invoke getchar ;把scanf的回车换行清掉 40 41 lea EBX,buf ;lea 将buf 的 地址给ebx 同时 用 mov EBX, offset buf 可替换该句 42 BEGIN: CMP byte ptr [EBX],0 43 JZ XCHGL 44 CMP byte ptr [EBX],'a' 45 JB NEXT 46 CMP byte ptr [EBX],'z' 47 JA NEXT 48 SUB byte ptr [EBX],20H 49 NEXT: INC EBX 50 JMP BEGIN 51 52 XCHGL: LEA ESI,buf 53 MOV EDI,EBX 54 DEC EDI 55 EXCHANGE:CMP ESI,EDI 56 JAE OVER 57 MOV AL,[ESI] 58 XCHG AL,[EDI] 59 MOV [ESI],AL 60 INC ESI 61 DEC EDI 62 JMP EXCHANGE 63 64 OVER: invoke printf,chr$("The result is: %s",0dh,0ah),offset buf ; 关于buf前面的offset问题,我觉得应该是因为字符串在存储 65 ;还是以数组的形式存的,所以前面要加上offset取数组的首地 ;址,当buf不是字符串,而是整型数时,就不用offset了 66 invoke getchar 67 exit 68 main ENDP 69 70 END main
转载于:https://www.cnblogs.com/windynight/archive/2012/04/18/2455832.html
汇编学习心得(二)关于字符的处理相关推荐
- STM32学习心得二十一:实时时钟RTC和备份寄存器BKP特征、原理及相关实验代码解读
记录一下,方便以后翻阅~ 主要内容 1) RTC特征与原理: 2) BKP备份寄存器特征与原理: 3) RTC常用寄存器+库函数介绍: 4) 相关实验代码解读. 实验内容: 因为没有买LCD屏,所以计 ...
- BT源代码学习心得(二):程序运行参数的获取 -- 转贴自 wolfenstein (NeverSayNever)
BT源代码学习心得(二):程序运行参数的获取 发信人: wolfenstein (NeverSayNever), 个人文集 标 题: BT源代码学习心得(二):程序运行参数的获取 发信站: 水木社区 ...
- STM32学习心得二十六:DAC数模转换实验
记录一下,方便以后翻阅~ 主要内容: 1) DAC数模转换原理: 2) 寄存器和库函数介绍: 3) 相关实验代码解读. 实验功能:系统启动后,按WK_UP键,输出电压加200点,对应电压值200*3. ...
- STM32学习心得二十四:内部温度传感器原理及实验
记录一下,方便以后翻阅~ 主要内容: 1) STM32内部温度传感器概述: 2) 相关实验代码解读. 实验功能:系统启动后,实时将内部温度传感器的值传至串口助手上. 官方资料:<STM32中文参 ...
- Internet路由结构学习心得二:通告汇聚和具体路由影响AS入流量
如图所示.你是R1.R2.R3所在的AS 123的网管,R3所在的子公司需要大量对AS 5中的R5所在ISP进行访问,因此在它们之间连接了一条网段为36.0.0.0/24的网段.要求:除了R3与R5之 ...
- linux设备驱动学习(二)——字符设备编写及测试
一.字符设备体结构介绍 1.字符设备作为linux内核三大驱动设备之一,主要完成字节的读写操作,常见的应用有鼠标.键盘等,结构体形式如下所示: struct cdev{ struct kobject ...
- 《深入理解计算机系统》学习心得二:关于show-bytes的 学习
此段代码,使用强制类型转换来访问和打印不同程序对象的字节表示.show-bytes打印出每个以十六进制表示的字节. /* show-bytes - prints byte representation ...
- 2020春季学期哈工大软件构造学习心得二
前言 上一章主要讲了软件构造的结果形态以及如何是一个"好"的软件 这一章主要学习软件开发遵循着一个什么样的过程 - 软件生命周期与配置管理 From 0 to 1,from 1 t ...
- 汇编学习笔记(二):转移指令
章节目录 转移指令原理 jmp 指令 jcxz 指令 loop 指令 ret 和 retf 指令 call 指令 call+ret 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人 ...
最新文章
- Ubuntu 16.04下部署Graylog日志服务器
- AWS — AWS Direct Connect
- 科学计算库Numpy——随机模块
- 1.7-06编程基础之字符串 字符翻转
- Memcached简介
- 食品安全--牛奶和蛋白质浅谈
- PS图像菜单下计算命令
- [LeetCode] Minimum Depth of Binary Tree
- python基础:字典的使用
- Linux 小知识翻译 - 「/proc 文件夹」
- 谭浩强C语言第四版第九章课后习题7--9题(建立,输出,删除,插入链表处理)...
- Linq 学习笔记(一)
- Linux 串口编程学习记录(termios.h)
- 第52届世界标准日,细数我国密码标准化工作成果
- PC客户端中的网页----问题集合(未完待续)
- 炸薯片和AI生产新闻一样样的!拢共分六步
- 命令行下转换amr为mp3
- FBX SDK动画开发
- 【vue教程】来自JSpang 技术胖的视频
- 第三方接口转换工具类
热门文章
- 邓俊辉数据结构学习-3-栈
- 熟悉常用的HBase操作
- 【BZOJ 3729】3729: Gty的游戏 (Splay维护dfs序+博弈)
- 页面上一些小icon的制作方法及技术选择
- RobotFrameWork接口报文测试-----(一)简单demo的实现
- docker: 解决centos7下cgroup.procs: no such device的错误
- 【Eclipse 插件】JD-Eclipse
- 五大存储模型关系模型、键值存储、文档存储、列式存储、图形数据
- 港中大教授研发DeepID人脸识别技术 准确率超99%
- 8.3. 测试 opensips