【问题标题】:Printing fibonacci number in TASM assembly在 TASM 程序集中打印斐波那契数
【发布时间】:2014-10-14 15:38:35
【问题描述】:

在大学里,我们开始学习 TASM 汇编语言。关键是,我需要帮助,因为我完全迷失了我的任务。我需要从键盘扫描一个数字并打印斐波那契的 n 数。示例:你输入 6,程序打印出 8。

这是我未完成的代码:

.model small
.stack 100h

.data 
    number db 255

.code
start:
    mov dx, @data
    mov ds, dx
    mov al, 0
    mov bl, 1

.readline:
    mov ah, 0Ah
    mov dx, offset number
    mov cx, dx;
    int 21h

.fibonacci:
    add al, bl
    mov dl, al
    mov al, bl
    mov bl, dl

    loop .fibonacci
    int 21h
.writeln
    mov ah, 9
    mov dx, dl
    int 21h


end start   

在这之后,我只是不知道我应该怎么做,或者是否犯了任何错误。谁能给我建议下一步我需要做什么?

【问题讨论】:

    标签: assembly numbers fibonacci tasm


    【解决方案1】:

    Here 是一份 PDF 手册,其中包含一些实现用户输入和输出所需的代码示例。

    以下是未经测试的代码的 sn-p,可让您了解如何在没有递归的情况下计算斐波那契数列。

        mov  cx, 6
        mov  ax, 0    ;a = 0
        mov  bx, 1    ;b = 1
    fib:
        mov  dx, ax 
        add  dx, bx   ;sum = a + b
        mov  ax, bx   ;a = b
        mov  bx, dx   ;b = sum
        loop fib
    

    请注意,您必须将计数寄存器 (CX) 设置为给定的用户输入。

    另外请记住,您使用的是 32 位寄存器,因此您可以在寄存器中存储的最大斐波那契数是 46 位。

    【讨论】:

    • 斐波那契的实际计算显然不是OP遇到的问题。
    • 确实如此。我参加了 OP 的同一讲座,并且在相同的任务中苦苦挣扎。我提供的 PDF 文件包含构建最终解决方案所需的所有代码示例(不是英文的)。我现在无法访问 TASM 模拟器,所以我无法修复和测试他的代码。
    • 感谢 debes.is 的快速答复。我看一下pdf。希望它能帮助我完成我的第一个程序。
    • 链接已损坏。
    【解决方案2】:
    .MODEL SMALL
    
    .DATA
    .CODE
     MAIN PROC
    
                MOV AX,@DATA
                MOV DX,AX
    
                MOV AL,20
                MOV CL,10
                MOV AH,00
                DIV CL
                MOV DX,AX
                ADD DX,3030h
                MOV AH,02H
                INT 21H
    
                MOV DL,DH
                INT 21H
    
    
    
    
                MOV AX,4C00H
                INT 21H
    
    MAIN ENDP
    

    【讨论】:

    • 这似乎是用于打印 2 位整数的代码。有一些关于 SO 的问题可以用这段代码来回答(加上一些解释它如何/为什么工作的文字,等等!)但这个问题不在其中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2015-01-04
    • 2012-02-15
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多