Assembly 汇编语言程序,基于用户';以字母表的形式显示金字塔中的字母;s输入
我正在编写一个汇编程序,根据用户的输入以字母表的形式显示金字塔中的字母。例如,如果用户输入字母a,则输出为: A. ab abc . . . abcdef…z 如果用户输入字母b,这将是输出: b 卑诗省 卡介苗 bcde . . . bcdefg…z 等等 下面是我的代码,我在迭代、循环、嵌套循环等方面确实遇到了问题。我一直在尝试,但没有成功。我不熟悉汇编语言,所以我的代码真的很烂Assembly 汇编语言程序,基于用户';以字母表的形式显示金字塔中的字母;s输入,assembly,x86,dos,Assembly,X86,Dos,我正在编写一个汇编程序,根据用户的输入以字母表的形式显示金字塔中的字母。例如,如果用户输入字母a,则输出为: A. ab abc . . . abcdef…z 如果用户输入字母b,这将是输出: b 卑诗省 卡介苗 bcde . . . bcdefg…z 等等 下面是我的代码,我在迭代、循环、嵌套循环等方面确实遇到了问题。我一直在尝试,但没有成功。我不熟悉汇编语言,所以我的代码真的很烂 title print_alphabets ststack segment para stack 'stack
title print_alphabets
ststack segment para stack 'stack'
dw 200h
ststack ends
cdata segment para 'data'
inputMessage db 'Enter a letter to start from: $'
invalidInput db 10, 13, 'You have entered an invalid character. Please run the program again.$'
newline db 10, 13, '$'
cdata ends
ccode segment para 'code'
assume cs: ccode, ss: ststack, ds: cdata
main:
mov ax, cdata
mov ds, ax
mov ah, 09h
lea dx, inputMessage
int 21h
mov ah, 01h
int 21h
mov bl, al
mov ch, 26
mov cl, 26
testinput:
cmp bl, 7ah
jbe loop1
jmp invalid
loop1:
mov ah, 09h
lea dx, newline
int 21h
mov ah, 02h
mov dl, bl
int 21h
dec ch
cmp ch, 25
je loop1
cmp ch, 24
jle loop2
jmp endprog
loop2:
inc dl
mov ah, 02h
mov dl, dl
int 21h
dec cl
cmp cl, 25
je loop1
;repeat loop2 once
cmp cl, 24
je loop2
cmp cl, 23
je loop1
;repeat loop2 twice
cmp cl, 22
je loop2
cmp cl, 21
je loop2
cmp cl, 20
je loop1
;repeat loop2 thrice
cmp cl, 19
je loop2
cmp cl, 18
je loop2
cmp cl, 17
je loop2
cmp cl, 16
je loop1
;repeat loop2 4 times
cmp cl, 15
je loop2
cmp cl, 14
je loop2
cmp cl, 13
je loop2
cmp cl, 12
je loop2
cmp cl, 11
je loop1
;repeat loop2 5 times
cmp cl, 10
je loop2
cmp cl, 9
je loop2
cmp cl, 8
je loop2
cmp cl, 7
je loop2
cmp cl, 6
je loop2
jmp endprog
invalid:
mov ah, 09h
lea dx, invalidInput
int 21h
jmp endprog
endprog:
mov ah, 4ch
int 21h
ccode ends
end main
编写汇编程序最简单的方法是编写一些伪代码(或其他语言),然后将其翻译成汇编程序
c = input value
for i = c to 'a' + 26
for k = c to i
output k
next k
output space
next i
您只需要两次递增和跳跃。感谢您抽出时间回答我的问题。我想我能弄明白。我想分享我的代码,但找不到。这是很久以前的事了,那时我还在攻读学士学位干杯