小组作业

程序员小x大约 1 分钟汇编语言

小组作业

小组作业#1

为了让你可以更加熟悉汇编语言, 这里是我们的小组作业:

编写一个汇编程序,提示用户输入姓名,打印 What is your name?然后接受最多255个字符的输入,然后打印出Hello,name,nice to meet you!随后是换行符。

您必须同时使用 SYS_WRITE (= 1) 和 SYS_READ (= 0) 系统调用。使用以下 .data 部分:

section .data

prompt:       db      "What is your name?"
prompt_len:   equ     $-prompt

buffer:       times 255 db '!'

resp1:        db      "Hello, "
resp1_len:    equ     $-resp1
resp2:        db      ", nice to meet you!", 10
resp2_len:    equ     $-resp2

buffer是传递给SYS_READ调用的输入缓冲区。它由 255 个组成组成。请注意,SYS_READ 将返回在 rax 中读取的实际字节数,然后在打印缓冲区内容时必须使用该字节数。(如果输入的长度错误,您会看到用户名被截断,或者在其末尾添加!!!!。)

SYS_READSYS_WRITE 的fd参数是一个文件描述符,一个标识文件或流的数字。始终可用的标准文件描述符是:

文件描述符含义
0标准输入
1标准输出
2标准错误

因此,您将从 FD #0 进行 SYS_READ,然后从 FD #1 进行 SYS_WRITE(就像我们之前所做的那样)。

不要忘记使用 SYS_EXIT (= 60) 系统调用来结束您的程序,以优雅地结束您的程序!

附录

原文链接:https://staffwww.fullcoll.edu/aclifton/cs241/group_proj1.htmlopen in new window

Loading...