匯編漢諾塔

 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.pswp.cn/news/531981.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/531981.shtml
英文地址,請注明出處:http://en.pswp.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, 費用為正向邊的相反數(也就是沿著反…