c 汇编语言小程序100例,汇编语言100例
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1.冒泡排序
.386
.model flat,stdcall
option casemap:none
includelib \masm32\lib\msvcrt.lib
printf proto C:dword,:vararg
.data
array dd 34,12,3,18
szMsg db "%d",0ah,0
.code
start:
mov ecx,3 ;N-1
L2:
push ecx
xor esi,esi
mov ecx,3 ;N-1
L0:
mov ebx,array[esi]
cmp ebx,array[esi 4]
jb L1
xchg ebx,array[esi 4]
mov array[esi],ebx
add esi,4
L1:
loop L0
pop ecx
loop L2
xor esi,esi
mov ecx,4
L3:
push ecx
invoke printf,offset szMsg,array[esi]
add esi,4
pop ecx
loop L3
ret
end start
2,题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
.386
.model flat,stdcall
option casemap:none
includelib \masm32\lib\msvcrt.lib
printf proto C:dword,:vararg
.data
canshu db "%d%d%d",0ah,0
x dd 1
y dd 1
z dd 1
.code
start:
mov ecx ,4
L0:
push ecx
mov y,1
mov ecx,4
push ecx
mov eax,x
L1:
cmp eax,y
jz L2
mov z,1
mov ecx ,4
L3:
push ecx
mov ebx,z
cmp ebx,x
jz L4
cmp ebx,y
jz L4
invoke printf ,offset canshu,x,y,z
L4:
inc z
pop ecx
loop L3
L2:
inc y
pop ecx
loop L1
inc x
pop ecx
loop L0
ret
end start
3 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
.386
.model flat,stdcall
option casemap:none
includelib \masm32\lib\msvcrt.lib
printf proto C:dword,:vararg
.data
szMsg db "%d",0ah,0
x dw 100 ;被除数16位
midvalue dw ? ;中间值16位
chushu db ? ;除数8位
.code
start:
L1:
mov chushu,9
inc x
L0:
inc chushu
mov ax,x
div chushu
cmp al,chushu ;al存商
ja L0
jb L1
cmp ah,0 ;ah存余数
ja L1
mov bx,x
mov midvalue,bx
add midvalue,168
L2:
mov ax,midvalue
inc chushu
div chushu
cmp al,chushu
ja L2
jb L1
cmp ah,0
ja L1
sub x,100
mov ax,x
cwde
invoke printf,offset szMsg,eax
ret
end start
4 题目:编写简单的交换数字的程序
c语言实现:
swap(*a,*b)
汇编实现:
.386
.model flat,stdcall
option casemap:none
includelib \masm32\lib\msvcrt.lib
printf proto C:dword,:vararg
.data
aa dword 8
bb dword 9
szMsg db "%d",0ah,0
.code
swapnum proc c a:ptr dword,b:ptr dword
local temp:dword
push eax
push ebx
push ecx
mov eax,a
mov ebx,ds:[eax];不要使用[a]的方式 ,mov ebx,[a]与mov ebx,a效果相同
mov temp ,ebx;[eax]为a
mov ecx,b
mov ebx,[ecx]
mov [eax],ebx
mov ebx,temp
mov [ecx],ebx
pop ecx
pop ebx
pop eax
ret
swapnum endp
start proc
invoke swapnum, offset aa, offset bb;与子程序参数要匹配
invoke printf,offset szMsg,aa
invoke printf,offset szMsg,bb
ret
start endp
end start
5.递归实现5的N次方
.386
.model flat,stdcall
option casemap:none
includelib \masm32\lib\msvcrt.lib
printf proto C:dword,:vararg
.data
szMsg db "%d",0ah,0
.code
power proc c n:dword
cmp n,0
jle L0
dec n
mov ebx,n;?????
invoke power,ebx
mov ecx,5;5是底数
imul ecx;结果实际保存在EDX:EAX,但我们假设不越界,即结果只在EAX,EDX为0
ret ;从子程序退出,相当于C语言的return
L0:
mov eax,1
ret
power endp
start:
invoke power,3;3是指数
invoke printf,offset szMsg,eax
ret
end start
6 字符串操作练习
.386
.model flat,stdcall
option casemap:none
includelib \masm32\lib\msvcrt.lib
printf proto C:dword,:vararg
.data
strsrc db "source string",0ah,0
strdst db 15 dup (?),0
szMsg db "%s",0ah,0
.code
strcopy proc
push ecx
push esi
push edi
mov ecx,lengthof strsrc
lea esi,strsrc
lea edi,strdst
cld ;df=0,esi edi是增加的
rep movsb
pop ecx
pop esi
pop edi
ret
strcopy endp
strdel proc c asc:byte ;传入将要删除的字符
push ecx
push esi
push edi
push ebx
xor ebx,ebx
mov ecx,lengthof strsrc
lea esi,strsrc
lea edi,strdst
L1:
cld
mov bl,asc
cmp [esi],bl
jnz L2
jz L0
L2:
movsb ;执行后esi,edi自动加1
jmp L3
L0:
inc esi
L3:
loop L1
pop ecx
pop esi
pop edi
pop ebx
ret
strdel endp
start:
;invoke strcopy
;invoke printf,offset szMsg,offset strdst
invoke strdel,'i'
invoke printf,offset szMsg,offset strdst
ret
end start
7 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
.386
.model flat,stdcall
option casemap:none
includelib \masm32\lib\msvcrt.lib
printf proto C:dword,:vararg
.data
strtest db "adsf",0
szMsg db "%d",0ah,0
numcount dword 0 ;数字个数
asccount dword 0 ;字母
spacecount dword 0 ;空格
othercount dword 0 ;其他字符
.code
start:
push esi
push ecx
push eax
lea esi,strtest
mov ecx,lengthof strtest
L0:
mov al,20h ;空格的ascii码为20h
cmp [esi],al
jnz L1
inc spacecount
jmp L4
L1:
mov al,'0'
cmp [esi],al;注意在以后的比较也是这样,不可以cmp al,[esi]
;因为比较的是[esi]中的数。
jb other
mov al,'9'
cmp [esi],al
ja L2
inc numcount
jmp L4
L2:
mov eax,'A'
cmp [esi],al
jb other
mov al,'Z'
cmp [esi],al
ja L3
inc asccount
jmp L4
L3:
mov al,'a'
cmp [esi],al
jb other
mov al,'z'
cmp [esi],al
ja other
inc asccount
jmp L4
other:
inc othercount
L4:
inc esi
loop L0
pop esi
pop ecx
pop eax
invoke printf,offset szMsg, numcount
invoke printf,offset szMsg, asccount
invoke printf,offset szMsg, spacecount
invoke printf,offset szMsg,othercount
ret
end start
c 汇编语言小程序100例,汇编语言100例相关推荐
- 【小程序】获取快递100物流信息
[小程序]获取快递100物流信息 // 点击时间调用 getKdCookie // 中通查不到物流信息 // 小程序开发 要注意 url https 才行 getKdCookie(){wx.reque ...
- 微信小程序scroll-view高设置100%在苹果6p下的兼容性问题
微信小程序scroll-view高设置100%在苹果6p下的兼容性问题 home.wxml <view class='main'><view class='crumbs'>&l ...
- dw网页插入java小程序_DW网页设计100例35:构建Java插入模块
Java 是一种程序设计语言, Java applet ( Java 小程序)是在 Java 的基础上演变而成的.能够嵌入在网页中的.可以执行一定小任务的应用程序. 20060407140110aa1 ...
- python小程序代码50 到100行-Python代码不到四十行简单暴力,微信跳一跳小程序轻松过万...
群内不定时分享干货,包括最新的python企业案例学习资料和零基础入门教程,欢迎初学和进阶中的小伙伴入群学习交流 最近微信有个小程序,并不知道大家有没有被这个游戏给刷屏,这个游戏就是跳一跳 今天就用P ...
- 微信小程序高度设置为100%
在网页中设置body,html{height:100%}; 将body和html设置为100%,这样我们就可以在他们的子元素中使用height:100%来使的我们的容器元素占满屏幕的高度啦. 但是在微 ...
- 续集关于上次简单微信小程序制作 (快递100查询)
上次给大家简单介绍了小程序的实现原理以及传统APP与小程序的对比,这次给大家点干货: 一,移动互联网的八大平台 IOS.Android.H5.BAT.头条.手机厂商 动态App平台阵营(H5.BAT. ...
- Zblog如何使用PHP插件搭建微信小程序-从0到100完整教程
官方效果图: PS:下方步骤中文字颜色蓝色为重点关键字,红色字为可点击链接文字 准备工作: 1:微信小程序账号及微信开发者工具,没有或者不会注册请参考文章:微信小程序初章-注册微信小程序账户及安装微信 ...
- 用计算机汇编语言的程序是经过,汇编语言程序
汇编语言程序也称为汇编语言源程序,就是用汇编语言编写的一种计算机程序, 属于计算机低级语言程序,是属性为ASM的源文件.汇编语言程序在经过汇编.链接后得到可执行程序即EXE文件. 汇编语言程序里面包括 ...
- 基于微信小程序的毕业设计题目50例
基于微信小程序的毕业设计题目1-10题 1.基于微信小程序的线上交易平台 2.基于微信小程序的高职招生服务平台的设计与实现 3.基于微信小程序的图书馆座位预约系统的设计与实现 4.基于微信小程序的项目 ...
- 微信小程序的全局变量和单例
每个小程序都需要在 app.js 中调用 App 方法注册小程序实例,绑定生命周期回调函数.错误监听和页面不存在监听函数等. 详细的参数含义和使用请参考 App 参考文档 . // app.js Ap ...
最新文章
- Quartus II11.0安装教程
- 如何使用知识图谱增强信息检索模型?
- r软件时间序列分析论文_高度比较的时间序列分析-一篇论文评论
- 认识网页 网页的组成 0907
- python测验9答案_【Python基础测试】你知道这些答案吗?
- 【带着canvas去流浪(14)】Three.js中凹浮雕模型的生成方式
- MySql计算百分比
- c语言酒店管理系统,C语言酒店管理系统.pdf
- 这样就算会了PHP么?-7
- 设计一个方法输入字符串,字节数,输出截取的字符串
- Spark SQL Catalyst源代码分析之Analyzer
- SPSS回归分析案例
- Android 中Goolgle 相关服务的移植[转]
- 站在巨人肩膀上优雅地分蛋糕
- 2019成长复盘2020成长规划
- ubuntu安装软件包命令
- tomcat宕机自动重启和每日定时启动tomcat
- 麒麟子Javascript游戏编程零基础教程一:序言
- java生成带星号条形码_Code39生成条形码加星号的解决办法以及当扫描枪扫描不到条码的解决办法 | 学步园...
- TMC4671-LA完全集成伺服控制器电机驱动芯片带FOC控制
热门文章
- java调用用友eai_U811.1接口EAI系列之二--生成销售出库单调用U8的EAI通用处理方法--PowerBuilder语言...
- win7计算机打开显卡设置在哪里,Win7系统nvidia控制面板在哪里?Win7系统nvidia控制面板设置方法...
- [GUET-CTF2019]re-[SUCTF2019]SignIn-相册-[ACTF新生赛2020]usualCrypt
- [NOIP2013]表达式求值
- pandorabox 潘多拉固件路由器作为无线打印机服务器记录
- 易灵思FPGA--PLL资源
- 读书笔记《浪潮之巅》感悟
- GD32使用IAR编程详细教程
- excel 汉字转拼音
- 擎标带你了解CMMI3与CMMI5的区别