section .text
global _start
_start:
mov eax, [inputOrder]
mov ecx, inputOrder
mov edx, inputLen
mov ebx, 1
mov eax, 4
int 0x80
mov eax, 1
mov ebx, 0
int 0x80
section .data
inputOrder db 065,066,067,068,069,070,071,072,073,074,075,076,077,078,079,080,081,082,083,084,085,086,087,088,089,090
inputLen equ $ - inputOrder
我需要帮助。我需要使用循环来打印出A-Z。需要什么代码来解决这个问题?我将在此代码中添加什么来生成循环而不是 inputOrder?
2条答案
按热度按时间jtoj6r0c1#
此指令将0x 44434241加载到EAX寄存器,但随后您就不用它了。要删除。
一个循环按照请求,将输出一个字符,增加字符的ASCII码,并继续直到Z字符得到处理。没有必要使用实际的
loop
指令!一个更快的版本会将所有字符一起输出。我们将使用一个循环在位于.bss部分的多用途缓冲区中构建字母顺序:
另一个版本使用堆栈作为缓冲区,并有一个迭代次数较少的循环:
zwghvu4y2#
首先你写下没有
loop
的代码,然后你把它推广到可以使用loop
。今天,没有人使用loop
,因为它太慢了,但是如果你坚持使用loop
: