如何使用ReadString宏x86程序集(NASM)

时间:2014-03-09 16:23:54

标签: assembly macros x86 nasm intel

我一直在尝试整个周末来解决这个问题,我终于来到StackOverflow尝试获得一些答案。

目标:提示用户输入字符串,将字符串存储在内存中并将其打印出来。 << - 简单!但是我在组装时如此新鲜,因为存储用户输入而被绊倒。我认为只需要2个宏 - WriteStringReadString。这就是我到目前为止所做的:

%include "CPsub32.inc"
%include "Macros_CPsub32.inc"  ; needed to use the ReadString and WriteString macros

section .data  ; Declaration of labels 
type:   db 0Ah,0Dh, 'Type Here:',0Ah,0Dh,OOh     ;String plus CRLF

section .text
        global main

main    equ   $          ; main, start of program

        mov edx, type    ; Moves the contents of the label type into the edx register
        call WriteString ; Prints contents of edx
        call ReadString  ; Prompts for users input

My Exit equ  $           ; Exit program
        Exit 0

现在,我的主要问题是:如何获取用户输入,将其存储在内存中然后将其打印回屏幕?

我认为可以实现此目的的一种方法是在我调用它并将其移动到edx寄存器后取ReadString,但这不起作用。我尝试在许多不同的位置玩WriteStringReadString,但是,所有这些都失败了。在汇编中是否有一种方法可以将用户输入存储到变量中然后将其移动到寄存器中?我知道我想做什么,但不知道我需要的工具。

我知道对于一个非常简单的问题,这是一个非常简单的解决方案。我是大会上的超级初学者,习惯了OOP,所以我的时间非常具有挑战性。我已经尝试查找如何使用ReadString宏,但我真的找不到明确的说明。非常感谢任何帮助。

先谢谢!! :)

0 个答案:

没有答案