user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<print_instructions>:
  endbr64
  push   %rbp
  lea    D1(%rip),%rdi
  lea    D7(%rip),%rbp
  call   <puts@plt>
  lea    D27(%rip),%rdi
  call   <puts@plt>
  mov    %rbp,%rdi
  call   <getlet@plt>
  lea    D34(%rip),%rdi
  call   <puts@plt>
  mov    %rbp,%rdi
  pop    %rbp
  jmp    1070 <getlet@plt>
```

tool_calls: name: retrieve_data
arguments: data_tag: D1
data_type: string
name: retrieve_data
arguments: data_tag: D7
data_type: string
name: retrieve_data
arguments: data_tag: D27
data_type: string
name: retrieve_data
arguments: data_tag: D34
data_type: string

tool: D1: 	Welcome to 'Hunt the Wumpus'

  The Wumpus lives in a cave of 20 rooms. Each room has 3 tunnels
leading to other rooms. (look at a dodecahedron to see how this works.
If you don't know what a dodecahedron is, ask someone)


tool: D7: Type an E then RETURN 

tool: D27:      HAZARDS:
 Bottomless Pits - Two rooms have bottomless pits in them. If you go
     there, you fall into the pit (& lose!)
 Super Bats - Two other rooms have super bats. If you go there a bat
     grabs you and takes you to some other room at random. (Which may be
     troublesome)

     THE WUMPUS:
 The wumpus is not bothered by hazards (he has sucker feet and is too
 big for a bat to lift). Usually he is asleep. Two things wake him up:
 you shooting an arrow or you entering his room. If the wumpus wakes he
 moves (P=.75) one room or stays still (P=.25). After that, if he is
 where you are he eats you up and you lose!


tool: D34:      YOU:
 Each turn you may move or shoot a crooked arrow
   Moving: You can move one room (thru one tunnel)
   Arrows: You have 5 arrows. You lose when you run out. Each arrow can
           go from 1 to 5 rooms. you aim by telling the computer the
           room #s you want the arrow to go to. If the arrow can't go
           that way (if no tunnel) it moves at random to the next room.
           If the arrow hits the wumpus, you win.
           If the arrow hits you, you lose.

     WARNINGS:
When you are one room away from a wumpus or hazard the computer says:
 Wumpus:  'I smell a wumpus'
 BAT   :  'Bats nearby'
 PIT   :  'I feel a draft'


assistant: ```c
void print_instructions() {
  puts("\tWelcome to 'Hunt the Wumpus'\n\n"
       "  The Wumpus lives in a cave of 20 rooms. Each room has 3 tunnels\n"
       "leading to other rooms. (look at a dodecahedron to see how this works.\n"
       "If you don't know what a dodecahedron is, ask someone)\n");
  puts("     HAZARDS:\n"
       " Bottomless Pits - Two rooms have bottomless pits in them. If you go\n"
       "     there, you fall into the pit (& lose!)\n"
       " Super Bats - Two other rooms have super bats. If you go there a bat\n"
       "     grabs you and takes you to some other room at random. (Which may be\n"
       "     troublesome)\n\n"
       "     THE WUMPUS:\n"
       " The wumpus is not bothered by hazards (he has sucker feet and is too\n"
       " big for a bat to lift). Usually he is asleep. Two things wake him up:\n"
       " you shooting an arrow or you entering his room. If the wumpus wakes he\n"
       " moves (P=.75) one room or stays still (P=.25). After that, if he is\n"
       " where you are he eats you up and you lose!\n");
  (void)getlet("Type an E then RETURN ");
  puts("     YOU:\n"
       " Each turn you may move or shoot a crooked arrow\n"
       "   Moving: You can move one room (thru one tunnel)\n"
       "   Arrows: You have 5 arrows. You lose when you run out. Each arrow can\n"
       "           go from 1 to 5 rooms. you aim by telling the computer the\n"
       "           room #s you want the arrow to go to. If the arrow can't go\n"
       "           that way (if no tunnel) it moves at random to the next room.\n"
       "           If the arrow hits the wumpus, you win.\n"
       "           If the arrow hits you, you lose.\n\n"
       "     WARNINGS:\n"
       "When you are one room away from a wumpus or hazard the computer says:\n"
       " Wumpus:  'I smell a wumpus'\n"
       " BAT   :  'Bats nearby'\n"
       " PIT   :  'I feel a draft'\n");
  (void)getlet("Type an E then RETURN ");
}
```