Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops (装配语言)需要菱形图案的帮助_Loops_Assembly_X86_Dos - Fatal编程技术网

Loops (装配语言)需要菱形图案的帮助

Loops (装配语言)需要菱形图案的帮助,loops,assembly,x86,dos,Loops,Assembly,X86,Dos,我目前正在visual studio中使用带星号(*)的汇编语言创建菱形图案。目前,我正在创建钻石图案的上半部分。我的钻石的上半部分有10根柱子长;我想知道的是如何在我的“print_star”循环函数中为每列打印额外的2个星号。(对于exmaple,我的菱形的第2列将多打印2个*,我的菱形的第3列将多打印4个*,等等),因此我的问题是如何在我的print_star函数中的每列中添加+2个星号 如何在程序中为菱形的每一列添加两个星号字符?(例如:我需要在菱形图案的第二列中再输出2个*,在第三

我目前正在visual studio中使用带星号(*)的汇编语言创建菱形图案。目前,我正在创建钻石图案的上半部分。我的钻石的上半部分有10根柱子长;我想知道的是如何在我的“print_star”循环函数中为每列打印额外的2个星号。(对于exmaple,我的菱形的第2列将多打印2个*,我的菱形的第3列将多打印4个*,等等),因此我的问题是如何在我的print_star函数中的每列中添加+2个星号


如何在程序中为菱形的每一列添加两个星号字符?(例如:我需要在菱形图案的第二列中再输出2个*,在第三列中再输出4个*,直到第十行。

你应该写一个循环来控制每行的星号打印量。你需要在菱形的上半部分加上2,在下半部分减去2。我是literally刚刚为我的计算机组织课程做了这个项目。从你展示的工作中,你需要在顶部打印一颗星星,然后下降到下一个坐标,在第二排打印三颗星星,依此类推,直到你到达钻石的中间(取决于你希望它有多大)

您的问题是什么?我的问题是如何在程序中为我的菱形的每一列添加两个星号字符。(例如:我需要在菱形图案的第二列中再输出2个*,在第三列中再输出4个*,直到第十行。我添加了第二张图片以显示我试图完成的问题。每行都有一个循环。因此,你需要在该行中添加另一个循环来处理每列。将其写在如果直接在x86汇编中实现它有困难,请首先使用高级语言。
  .386
.model flat,c
.stack 4096

include cisc225.inc

.data
star BYTE '*'

.code
main PROC

call Randomize  ; initializes the random number generator

mov al, star
mov dh, 1   ; moves text to row 1 (X-Coordinate)
mov dl, 40  ; moves text to column 40 (Y-Coordinate)
call GotoXY ; relocates cursor to coordinate

mov ecx, 10 ; counter-loop

call print_star

    call Readchar           ; Hold console window open until a key press
    call EndProgram         ; Terminates the program

main ENDP

;//////////////////////////////////////////////////////////////

print_star PROC

L1:
    mov eax,256     ; for random color value (foreground and background)
    call RandomRange ; Sets EAX to random color
    call SetTextColor   ; Sets foreground to a random color

    mov al, star ; move character to 8 bit register for display
call Writechar ; displays 8-bit character in al register.
inc dh ; moves 1 space down
dec dl ; moves 1 space to the left
call GotoXY ; relocates cursor to new coordinates


loop L1
    ret
    print_star ENDP
END