提示用户输入,计算字符串长度并重新打印输入
Prompting for user input, counting string length and reprinting input
我正在做一项作业,但卡住了。我需要提示用户使用 WriteString 输入一个句子并使用 ReadString 存储输入。此外,我需要计算字符串的长度,然后重新打印用户输入。我不想要代码,只是朝着正确的方向前进。让我的程序提示并接受用户输入没有问题,但我正在寻求帮助以十进制计算字符串的长度。
.data
String1 BYTE "Enter a sentence", 0
String2 BYTE 50 DUP (?)
String3 BYTE "Decimal length: ", 0
String4 BYTE "Hexidecimal length: ", 0
String5 BYTE "You entered: ", 0
.code
main proc
Exercise1 PROC
mov edx, OFFSET String1 ; move String1 to edx
call WriteString ;prompt user to enter their sentence
mov edx, OFFSET String2 ;array to store input
call ReadString ;store input to edx
;mov ecx, 20
;mov dl, 0 ;use to count length
;how do I loop through String2 to determine its length?
Exercise1 ENDP
不用算长度,ReadString
returnsEAX读取的字节数。 http://programming.msjc.edu/asm/help/source/irvinelib/readstring.htm
(此外,您必须在调用前在 ECX 中传递最大读取大小,例如 mov ecx, 50-1
。ReadString 需要知道您的缓冲区有多大,因此它不会溢出。)
如果您想自己搜索字符串中的第一个 0
字节,google x86 assembly strlen
并获取无数次命中中的任何一个。或在此处搜索 SO。
我正在做一项作业,但卡住了。我需要提示用户使用 WriteString 输入一个句子并使用 ReadString 存储输入。此外,我需要计算字符串的长度,然后重新打印用户输入。我不想要代码,只是朝着正确的方向前进。让我的程序提示并接受用户输入没有问题,但我正在寻求帮助以十进制计算字符串的长度。
.data
String1 BYTE "Enter a sentence", 0
String2 BYTE 50 DUP (?)
String3 BYTE "Decimal length: ", 0
String4 BYTE "Hexidecimal length: ", 0
String5 BYTE "You entered: ", 0
.code
main proc
Exercise1 PROC
mov edx, OFFSET String1 ; move String1 to edx
call WriteString ;prompt user to enter their sentence
mov edx, OFFSET String2 ;array to store input
call ReadString ;store input to edx
;mov ecx, 20
;mov dl, 0 ;use to count length
;how do I loop through String2 to determine its length?
Exercise1 ENDP
不用算长度,ReadString
returnsEAX读取的字节数。 http://programming.msjc.edu/asm/help/source/irvinelib/readstring.htm
(此外,您必须在调用前在 ECX 中传递最大读取大小,例如 mov ecx, 50-1
。ReadString 需要知道您的缓冲区有多大,因此它不会溢出。)
如果您想自己搜索字符串中的第一个 0
字节,google x86 assembly strlen
并获取无数次命中中的任何一个。或在此处搜索 SO。