【问题标题】:Trying to print asteric triangle in ASSEMBLY Language尝试在 ASSEMBLY 语言中打印星号三角形
【发布时间】:2018-03-29 16:56:48
【问题描述】:
.model small
.stack 100h
.data
space db 10,"$"
asteric db "*$"
.code
start:
mov cl,5
mov ax,@data
mov ds,ax
mov bl,0
mov al,0
l1:
mov ah,09
lea dx,space
int 21h
inc bl
cmp bl,cl
je exit
l2:
lea dx,asteric
int 21h
cmp al,bl
jl l2
inc al
jnl l1
exit:
mov ah,4ch
int 21h
end start

我不知道我在这里做错了什么,但它给了我这样的输出 输出:

*
*
*
*

我想要这样的输出: 输出:

*
**
***
****

而不是我得到的请帮助

【问题讨论】:

  • “Assembly”不是一种编程语言。您使用的是哪种 ISA 和汇编程序?
  • 我正在使用 TASM(turbo assembler)
  • 大概是 x86 的?这是重要的部分。那里有一百万个 CPU,它们都有自己的汇编器。
  • 我使用的是 x86(8086 处理器)
  • 学习使用漂亮的 turbo 调试器。另外,注释您的代码,特别是如果您希望其他人提供帮助。 PS:10 不是空格,是换行。

标签: assembly x86 tasm


【解决方案1】:

在进入 l2 循环之前(在标签 l2 之前),您需要在 al 中输入零,因为如果不是,它将计算您之前打印的所有时间。 您还需要在执行 jl 到 l2 之前添加 al,因为您需要计算在这一行中打印了多少次,并且以您执行它的方式计算行数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多