我有一個項目,我想輸入一個數字,說我進入3,它可以讓你的輸出,如何在裝配中反轉和修改我的字符串?
ZYX**XYZ
ZY****YZ
Z******Z
和一個5會給你
ZYXWV**VWXYZ
ZYXW****WXYZ
ZYX******XYZ
ZY********YZ
Z**********Z
在項目中,我不要以爲我的教練會允許我使用數組,或者至少現在還沒有,但這裏是我的想法。
我正在考慮爲數字做一個字符串,所以說我得到一個3.我會產生ZYX *,並簡單地將其扭轉以獲得另一半的三角形。唯一的問題是,我不知道如何將這些字母逐個更改爲星星。我正在考慮使用循環來做到這一點,但不知道如何去做。我只知道下一個字符串是ZY **,然後簡單地將其顛倒。
不要誤解我的意思,我並不是要求所有人都爲我做,但也許會給我一些提示或提示如何接近它。謝謝。
到目前爲止,感謝大家,我已經能夠想出這個。
TITLE MASM Template (main.asm)
; Description:
;
; Revision date:
INCLUDE Irvine32.inc
.data
x DWORD ?
msg BYTE "Please input a number: " ,0dh,0ah,0
.code
;crlf
main PROC
call Clrscr
MOV edx, OFFSET msg ; Moves message to input number into register
call WriteString ; Displays message on screen to prompt user to input number
call readInt ; Take the number that the user inputs
MOV x,eax ; Store it into x
MOV ecx, eax ; For the loop counter
MOV al, 'Z' ; Move Z to the register
L2:
MOV al, 'Z' ; Resets al to z for loop
L1: ; Start of the loop with label L1
call WriteChar ; To write the letters
;call crlf ; To put in 'enter'
SUB al, 1 ; To Move the next char going downward
LOOP L1
MOV al, ' '
call WriteChar
MOV ecx, x ; Resets ecx for outside loop
SUB x, 1 ; Decrements x for counter
call crlf ; To be tidy
LOOP L2
exit
main ENDP
END main
現在我只需要另一邊。
我在這裏看不到任何代碼,所以我認爲你是完全新裝配。你可能想從一個簡單的hello世界程序開始。 「...使用陣列」意味着什麼?一個字符串是一個數組,對嗎?無論如何,在彙編中它只是一塊內存,除非你把你的字符串放入一個或多個寄存器。 – nrz 2013-04-18 07:51:15