汇编汉诺塔

 1 .386
 2 .model flat
 3 .stack 4096
 4 include io.h
 5 ExitProcess proto near32 stdcall, ExitCode:dword
 6 cr equ 0dh
 7 lf equ 0ah
 8 .data
 9 string1 byte "请输入汉诺塔数:", cr, lf
10 strNum byte 10 dup(?)
11 result byte 10 dup(' ')
12        byte cr, lf, 0
13 .code
14 ;递归时注意:在每一层的递归中,保证ebp基址指针的只是一样的(如果你使用了它)
15 Hanoi Proc near32
16   push ebp
17   mov ebp, esp
18   mov ecx, [ebp+20];得到当前剩余的砖块的数目
19   jecxz Finish
20 
21   ;完成n-1块从a柱子借助c柱子移向b柱子
22   dec ecx
23   push ecx
24   pushd [ebp+16]; a
25   pushd [ebp+8]; c
26   pushd [ebp+12]; b
27   call Hanoi
28   add esp, 16;移除参数 a, b, c, 和砖块数目
29 
30   ;完成a柱子上的最后一块移向c柱子
31    mov al, [ebp+16];得到a柱子的编号
32    mov result, al
33    mov al, '-'
34    mov result+1, al
35    mov al, '>'
36    mov result+2, al
37    mov al, [ebp+8];得到c柱子的编号
38    mov result+3, al
39    output result;输出移动结果
40  
41    ;完成n-1块从b柱子借助a柱子移向c柱子
42    mov ecx, [ebp+20]
43    dec ecx
44    push ecx; 得到剩下的盘子
45    push [ebp+12]; b
46    push [ebp+8]; c
47    push [ebp+16]; a
48    call Hanoi
49    add esp, 16;移除参数
50 Finish:
51     pop ebp;还原ebp指针
52     ret ;
53 Hanoi Endp
54 
55 _start:
56 output string1
57 input strNum, 10
58 atod strNum
59 push eax;初始化操作
60 pushd 'a'
61 pushd 'b'
62 pushd 'c'
63 call Hanoi
64 invoke ExitProcess, 0
65 public _start
66 end

 

转载于:https://www.cnblogs.com/hujunzheng/p/3789629.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle精度说明符1~38_Oracle 错误代码总结及解决方案

ORA-00001:违反唯一约束条件(主键错误)ORA-00028:无法连接数据库进程ORA-00900:无效sql语句ORA-00904:字段名写错或是建表时最后一个字段有逗号ORA-00907:缺少右括号ORA-00911:无效字符ORA-00917&#xff1…

opencv为matlab,OpenCV与matlab部分函数的对应关系(转)

2、matlab中的zeros函数相当于OpenCV中的cvSetZero函数。3、matlab中的两矩阵点乘 .*相当于OpenCV中的cvMul函数。4、matlab中的两矩阵点除 ./相当于OpenCV中的cvDiv函数。5、matlab中的两矩阵相加 相当于OpenCV中的cvAdd函数。6、matlab中的两矩阵相减 -相当于OpenCV中的cvSub…

预测分析算法的设计与实现_基于LD(编辑距离算法)的单词速记数据库分析设计与实现...

2020-21-1学期《最新数据库管理系统》结课作业展示。作者:牟伦利 褚四浩 陈思琴 曹鹏飞(电商11802)分工陈思琴:系统需求分析 、系统相关算法分析和ER图曹鹏飞:系统数据字典 、业务流程图、数据流程图和PPT制作牟伦利:存储过程、触…

参考文献要不要首行缩进_参考文献格式要求(2015-2016-2)

1参考文献统一使用下列格式一、参考文献构成参考文献分为两个部分:正文部分的夹注和文后参考文献处的参考文献条目。1.正文部分的夹注(作者的姓页码)正文引用了他人的观点后,在后面紧靠引用处给出夹注。例如:The contemporary text linguisti…

c++与java中子类中调用父类成员的方法

1 java中:2 import java.util.Scanner;3 public class ClassTest{4 public static void main(String args[]){5 child chnew child(2);6 parent pch;7 p.print();8 //p.print2();//调用错误,父类中没有改成员方法&#xff0c…

华为畅享max有没有人脸识别_华为畅享7s有人脸识别吗 让我来告诉你

现在大家使用手机的频率越来越频繁,手机也为我们提供了许多的便利,今天小编也来说一下这个华为畅享7s有人脸识别吗 让我来告诉你相关的文章,这个操作其实不复杂,接下来就给大家介绍一下华为畅享7s有人脸识别吗 让我来告诉你&#…

matlab knnsearchidx,matlab查找最临近搜索knnsearch

[Idx,D] knnsearch(___) additionally returns the matrix D, using any of the input arguments in the previous syntaxes. D contains the distances between each observation in Y and the corresponding closest observations in X.使用先前语法中的任何输入参数返回矩阵…

php导出excel数据代码,phpspreadsheet导出数据到Excel的方法介绍(代码示例)

本篇文章给大家带来的内容是关于phpspreadsheet导出数据到Excel的方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。之前我们使用PHP导出Excel数据时使用的是PHPExcel库,但是phpoffice已经官方宣…

sp 导出unity哪个_GitHub上发现的一个导出Unity3D场景数据的工具

1、源地址2、导出脚本脚本名:Unity3DExporter.csC#using UnityEditor;using UnityEngine;using System;using System.Collections.Generic;using System.Linq;using System.IO;public class Unity3DExporter : EditorWindow{private static bool mIsWindowOpen;private bool mE…

poj3422 Kaka's Matrix Travels(最小费用最大流问题)

1 /*2 poj3422 Kakas Matrix Travels 3 不知道 k次 dp做为什么不对???4 看了大牛的代码,才知道还可以这样做! 5 开始没有理解将a 和 a‘ 之间建立怎样的两条边,导致程序一直陷入死循环,真心花了…

java把对象转成图片格式转换器安卓版,java 万能图片格式转换

话不多说,直接上代码import java.awt.image.BufferedImage;import java.awt.image.Raster;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;public class IOUtil {public static void pgm2png(String src, String dest) throws IOExc…

hadooppythonsql_python - hadoop,mapreduce demo

Hadoop,mapreduce 介绍59888745qq.com大数据工程师是在Linux系统下搭建Hadoop生态系统(cloudera是最大的输出者类似于Linux的红帽),把用户的交易或行为信息通过HDFS(分布式文件系统)等存储用户数据文件,然后通过Hbase(类似于NoSQL)等存储数据&#xff0c…

hdu 2896 病毒侵袭 ac自动机

1 /*2 hdu 2896 病毒侵袭 ac自动机 3 从题意得知,模式串中没有重复的串出现,所以结构体中可以将last[](后缀链接)数组去掉 4 last[]数组主要是记录具有相同后缀模式串的末尾节点编号 。本题中主要是计算每一个模式串5 在主串中有没…

axure原件 总是丢失_Axure实现提示文本单击显示后自动消失的效果

FORM一 .新增的input输入属性 1.email类型 在表单提交E-mail地址时,无效的输入会生成很多无效数据,对后期的数据检索造成一定的影响.所以在表单提交之前,需要对输入的E-mail地址进行有效 ...Google的Protobuf协议分析protobuf和thrift类似,也是一个序列化的协议实现,简称PB(下文…

linux php不能写文件内容,php 在linux系统下写出文件问题

最近写了一个简单的生成文件,服务器用的linux 但是在将文件写出到路径的时候就会写出一个其他的文件夹其中一些代码如下define("paddy",dirname(__FILE__));$gkrequest_uri();$filepathpaddy.$gk;createfile($filefath,$file);//$f…

python mysql删除数据_python-mysql删除和更新数据

删除数据import codecsimport MySQLdbdef connect_mysql():db_config {host: 192.168.48.128,port: 3306,user: xiang,passwd: 123456,db: python,charset: utf8}cnx MySQLdb.connect(**db_config)return cnxif __name__ __main__:cnx connect_mysql()sql select * from S…

xlat指令...

1 ;就是一个串str1, lea ebx, str1 然后我们ebx1总是加上的是一个字节, 无论(串是word, byte, dword)2 .3863 .model flat4 .stack 40965 include io.h6 ExitProcess proto near32 stdcall, deExitCode:dwo…

php 串口通信例程,HAL库串口通信例程

请问下 为什么要 用void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)这个函数呢?不用不行吗?static void MX_USART1_UART_Init(void){huart1.Instance USART1;huart1.Init.BaudRate 9600;huart1.Init.WordLength UART_WORDLENGTH_8B;huart1.Init.Stop…

char 类型与lpcwstr_「lpctstr」char* 与 LPCTSTR 类型的互相转换 - seo实验室

lpctstr1.char* 转换成 LPCTSTRchar ch[1024] "wo shi ni baba";int num MultiByteToWideChar(0,0,ch,-1,NULL,0);wchar_t *wide new wchar_t[num];MultiByteToWideChar(0,0,ch,-1,wide,num);解析:num 获得长字节所需的空间MultiByteToWideChar()表示将…

poj 2195 Going Home

1 /*2 做网络流的题建图真的是太重要了!3 本题是将人所在的位置和房子所在的位置建立边的联系,其中man到house这一条边的流量为 1, 费用为两者的距离4 而方向边的流量为 0, 费用为正向边的相反数(也就是沿着反…