Assembly 输入字符串,显示输入的字符串,并将字符串大写转换为小写?

Assembly 输入字符串,显示输入的字符串,并将字符串大写转换为小写?,assembly,x86,x86-16,assembly-resolution,Assembly,X86,X86 16,Assembly Resolution,我被输入字符串卡住了,显示输入的字符串并将字符串大写转换为小写 我必须使用emu8086.inc,但我不知道如何将下面的代码转换为接受字符串而不是数字/整数。有人愿意在这件事上提供进一步的指导吗 8086 asm代码: include 'emu8086.inc' ORG 100h LEA SI, msg1 CALL print_string CALL scan_num MOV AX, CX ; print the

我被输入字符串卡住了,显示输入的字符串并将字符串大写转换为小写

我必须使用emu8086.inc,但我不知道如何将下面的代码转换为接受字符串而不是数字/整数。有人愿意在这件事上提供进一步的指导吗

8086 asm代码:

include 'emu8086.inc'

ORG    100h 

LEA    SI, msg1      
CALL   print_string   
CALL   scan_num       

MOV    AX, CX       

; print the following string:
CALL   pthis
DB  13, 10, 'You have entered: ', 0

CALL   print_num      

RET          

msg1   DB  'Enter the number: ', 0

DEFINE_SCAN_NUM
DEFINE_PRINT_STRING
DEFINE_PRINT_NUM
DEFINE_PRINT_NUM_UNS 
DEFINE_PTHIS
END              

提前谢谢。

我不确定emu8086.inc的功能包括哪些


在Linux系统上,您可以使用系统调用,尽管我不确定您是否从未使用过Linux。在Windows上,最好通过链接MSVCRT.dll来包含C函数(如scanf),或者通过链接Kernell32.dll来包含Windows提供的控制台函数(请参阅)。我将查阅汇编程序文档,了解如何链接到dll并调用各个函数。C运行时MSVCRT.dll还包含将字符串转换为大写的函数“toupper”。Windows可能有类似的功能,但我不确定。

RTFM:看起来您需要
get\u string
。Linux和/或Windows功能正常。。。但不是在8086上!emu8086.inc是一个库通用函数。要使用emu8086.inc中的任何函数,我们应该在源文件的开头有以下行:include'emu8086.inc'