user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<uiclhelp>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    $0x0,%eax
  call   <uiclhint@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D418(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D68(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D252(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D50(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D490(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D621(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D332(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D875(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D776(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D351(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D456(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D952(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D410(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D147(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D354(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D603(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D439(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D575(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D758(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D570(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D424(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D28(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D447(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D304(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D948(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D425(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D708(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D761(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D551(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D59(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D527(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D719(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D87(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D557(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D683(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D956(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D232(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D856(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D820(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D209(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D9(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D253(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D614(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D831(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D40(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D3(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D381(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D336(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D712(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D732(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D764(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D471(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D395(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D756(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D368(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D814(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D140(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D158(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D793(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D318(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D270(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D341(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D139(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D506(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D286(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D592(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D131(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D194(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D507(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D597(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D29(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D62(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D917(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D86(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D177(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D771(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D866(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D302(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D202(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D536(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D881(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D340(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D370(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D824(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D4(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D634(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D884(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D778(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D671(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D730(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D711(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D452(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D596(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D891(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D258(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  nop
  leave
  ret
```

tool_calls: name: read_data
arguments: tag: D418
data_type: string
name: read_data
arguments: tag: D68
data_type: string
name: read_data
arguments: tag: D184
data_type: string
name: read_data
arguments: tag: D252
data_type: string
name: read_data
arguments: tag: D50
data_type: string
name: read_data
arguments: tag: D490
data_type: string
name: read_data
arguments: tag: D621
data_type: string
name: read_data
arguments: tag: D332
data_type: string
name: read_data
arguments: tag: D875
data_type: string
name: read_data
arguments: tag: D776
data_type: string
name: read_data
arguments: tag: D351
data_type: string
name: read_data
arguments: tag: D456
data_type: string
name: read_data
arguments: tag: D952
data_type: string
name: read_data
arguments: tag: D410
data_type: string
name: read_data
arguments: tag: D147
data_type: string
name: read_data
arguments: tag: D354
data_type: string
name: read_data
arguments: tag: D603
data_type: string
name: read_data
arguments: tag: D439
data_type: string
name: read_data
arguments: tag: D575
data_type: string
name: read_data
arguments: tag: D758
data_type: string
name: read_data
arguments: tag: D570
data_type: string
name: read_data
arguments: tag: D424
data_type: string
name: read_data
arguments: tag: D28
data_type: string
name: read_data
arguments: tag: D447
data_type: string
name: read_data
arguments: tag: D304
data_type: string
name: read_data
arguments: tag: D948
data_type: string
name: read_data
arguments: tag: D425
data_type: string
name: read_data
arguments: tag: D708
data_type: string
name: read_data
arguments: tag: D761
data_type: string
name: read_data
arguments: tag: D551
data_type: string
name: read_data
arguments: tag: D59
data_type: string
name: read_data
arguments: tag: D527
data_type: string
name: read_data
arguments: tag: D719
data_type: string
name: read_data
arguments: tag: D87
data_type: string
name: read_data
arguments: tag: D557
data_type: string
name: read_data
arguments: tag: D683
data_type: string
name: read_data
arguments: tag: D956
data_type: string
name: read_data
arguments: tag: D232
data_type: string
name: read_data
arguments: tag: D856
data_type: string
name: read_data
arguments: tag: D820
data_type: string
name: read_data
arguments: tag: D209
data_type: string
name: read_data
arguments: tag: D9
data_type: string
name: read_data
arguments: tag: D253
data_type: string
name: read_data
arguments: tag: D614
data_type: string
name: read_data
arguments: tag: D831
data_type: string
name: read_data
arguments: tag: D40
data_type: string
name: read_data
arguments: tag: D3
data_type: string
name: read_data
arguments: tag: D381
data_type: string
name: read_data
arguments: tag: D336
data_type: string
name: read_data
arguments: tag: D712
data_type: string
name: read_data
arguments: tag: D732
data_type: string
name: read_data
arguments: tag: D764
data_type: string
name: read_data
arguments: tag: D471
data_type: string
name: read_data
arguments: tag: D395
data_type: string
name: read_data
arguments: tag: D756
data_type: string
name: read_data
arguments: tag: D368
data_type: string
name: read_data
arguments: tag: D814
data_type: string
name: read_data
arguments: tag: D140
data_type: string
name: read_data
arguments: tag: D158
data_type: string
name: read_data
arguments: tag: D793
data_type: string
name: read_data
arguments: tag: D318
data_type: string
name: read_data
arguments: tag: D270
data_type: string
name: read_data
arguments: tag: D341
data_type: string
name: read_data
arguments: tag: D139
data_type: string
name: read_data
arguments: tag: D506
data_type: string
name: read_data
arguments: tag: D286
data_type: string
name: read_data
arguments: tag: D592
data_type: string
name: read_data
arguments: tag: D131
data_type: string
name: read_data
arguments: tag: D194
data_type: string
name: read_data
arguments: tag: D507
data_type: string
name: read_data
arguments: tag: D597
data_type: string
name: read_data
arguments: tag: D29
data_type: string
name: read_data
arguments: tag: D62
data_type: string
name: read_data
arguments: tag: D917
data_type: string
name: read_data
arguments: tag: D86
data_type: string
name: read_data
arguments: tag: D177
data_type: string
name: read_data
arguments: tag: D771
data_type: string
name: read_data
arguments: tag: D866
data_type: string
name: read_data
arguments: tag: D302
data_type: string
name: read_data
arguments: tag: D202
data_type: string
name: read_data
arguments: tag: D536
data_type: string
name: read_data
arguments: tag: D881
data_type: string
name: read_data
arguments: tag: D340
data_type: string
name: read_data
arguments: tag: D370
data_type: string
name: read_data
arguments: tag: D824
data_type: string
name: read_data
arguments: tag: D4
data_type: string
name: read_data
arguments: tag: D634
data_type: string
name: read_data
arguments: tag: D884
data_type: string
name: read_data
arguments: tag: D778
data_type: string
name: read_data
arguments: tag: D671
data_type: string
name: read_data
arguments: tag: D730
data_type: string
name: read_data
arguments: tag: D711
data_type: string
name: read_data
arguments: tag: D452
data_type: string
name: read_data
arguments: tag: D596
data_type: string
name: read_data
arguments: tag: D891
data_type: string
name: read_data
arguments: tag: D258
data_type: string

tool: D418: nmond %s



tool: D68: For Interactive-Mode

tool: D184: 	-s <seconds>  time between refreshing the screen [default 2]

tool: D252: 	-c <number>   count of screen refreshes [default millions]

tool: D50: 	-g <filename> User Defined Disk Groups [hit g to show them]

tool: D490: 	              - file = on each line: group_name <disks list> space separated

tool: D621: 	              - like: database sdb sdc sdd sde

tool: D332: 	              - upto 64 disk groups, 512 disks per line

tool: D875: 	              - disks can appear more than once and in many groups

tool: D776: 	-g auto       - will make a file called "auto" with just disks fron "lsblk|grep disk" output

tool: D351: 	-b            black and white [default is colour]

tool: D456: 	example: nmond -s 1 -c 100

tool: D952: For Data-Collect-Mode = spreadsheet format (comma separated values)

tool: D410: 	Note: use only one of f,F,z,x or X and make it the first argument

tool: D147: 	-f            spreadsheet output format [note: default -s300 -c288]

tool: D354: 			 output file is <hostname>_YYYYMMDD_HHMM.nmon

tool: D603: 	-F <filename> same as -f but user supplied filename

tool: D439: 	-r <runname>  used in the spreadsheet file [default hostname]

tool: D575: 	-t            include top processes in the output

tool: D758: 	-T            as -t plus saves command line arguments in UARG section

tool: D570: 	-s <seconds>  between snap shots

tool: D424: 	-c <number>   of snapshots before nmon stops

tool: D28: 	-d <disks>    to increase the number of disks [default 256]

tool: D447: 	-l <dpl>      disks/line default 150 to avoid spreadsheet issues. EMC=64.

tool: D304: 	-g <filename> User Defined Disk Groups (see above) - see BBBG & DG lines

tool: D948: 	-g auto       As above but makes the file "auto" for you of just the disks like sda etc.

tool: D425: 	-D            Use with -g to add the Disk wait/service time & inflight stats.

tool: D708: 	-N            include NFS Network File System

tool: D761: 	-I <percent>  Include process & disks busy threshold (default 0.1)

tool: D551: 	              don't save or show proc/disk using less than this percent

tool: D59: 	-m <directory> nmon changes to this directory before saving to file

tool: D527: 	example: collect for 1 hour at 30 second intervals with top procs

tool: D719: 		 nmond -f -t -r Test1 -s30 -c120

tool: D87: 	To load into a spreadsheet:

tool: D557: 	sort -A *nmon >stats.csv

tool: D683: 	transfer the stats.csv file to your PC

tool: D956: 	Start spreadsheet & then Open type=comma-separated-value ASCII file

tool: D232: 	 The nmon analyser or consolidator does not need the file sorted.

tool: D856: Capacity planning mode - use cron to run each day

tool: D820: 	-x            sensible spreadsheet output for CP =  one day

tool: D209: 	              every 15 mins for 1 day ( i.e. -ft -s 900 -c 96)

tool: D9: 	-X            sensible spreadsheet output for CP = busy hour

tool: D253: 	              every 30 secs for 1 hour ( i.e. -ft -s 30 -c 120)

tool: D614: Interactive Mode Commands

tool: D831: 	key --- Toggles to control what is displayed ---

tool: D40: 	h   = Online help information

tool: D3: 	r   = Machine type, machine name, cache details and OS version + LPAR

tool: D381: 	c   = CPU by processor stats with bar graphs

tool: D336: 	l   = long term CPU (over 75 snapshots) with bar graphs

tool: D712: 	m   = Memory stats

tool: D732: 	L   = Huge memory page stats

tool: D764: 	V   = Virtual Memory and Swap stats

tool: D471: 	k   = Kernel Internal stats

tool: D395: 	n   = Network stats and errors

tool: D756: 	N   = NFS Network File System

tool: D368: 	d   = Disk I/O Graphs

tool: D814: 	D   = Disk I/O Stats

tool: D140: 	o   = Disk I/O Map (one character per disk showing how busy it is)

tool: D158: 	g   = User Defined Disk Groups        (assumes -g <file> when nmon started)

tool: D793: 	G   = Change Disk stats to just disks (assumes -g auto   when nmon started)

tool: D318: 	j   = File Systems 

tool: D270: 	t   = Top Process stats: select the data & order 1=Basic, 3=Perf 4=Size 5=I/O=root only

tool: D341: 	t   = Top Process stats use 1,3,4,5 to select the data & order

tool: D139: 	u   = Top Process full command details

tool: D506: 	v   = Verbose mode - tries to make recommendations

tool: D286: 	P   = Partitions Disk I/O Stats

tool: D592: 	b   = black and white mode (or use -b option)

tool: D131: 	.   = minimum mode i.e. only busy disks and processes

tool: D194: 	key --- Other Controls ---

tool: D507: 	+   = double the screen refresh time

tool: D597: 	-   = halves the screen refresh time

tool: D29: 	q   = quit (also x, e or control-C)

tool: D62: 	0   = reset peak counts to zero (peak = ">")

tool: D917: 	space = refresh screen now

tool: D86: Startup Control

tool: D177: 	If you find you always type the same toggles every time you start

tool: D771: 	then place them in the NMON shell variable. For example:

tool: D866: 	 export NMON=cmdrvtan

tool: D302: Others:

tool: D202: 	a) To you want to stop nmon - kill -USR2 <nmon-pid>

tool: D536: 	b) Use -p and nmon outputs the background process pid

tool: D881: 	c) To limit the processes nmon lists (online and to a file)

tool: D340: 	   Either set NMONCMD0 to NMONCMD63 to the program names

tool: D370: 	   or use -C cmd:cmd:cmd etc. example: -C ksh:vi:syncd

tool: D824: 	d) If you want to pipe nmon output to other commands use a FIFO:

tool: D4: 	   mkfifo /tmp/mypipe

tool: D634: 	   nmon -F /tmp/mypipe &

tool: D884: 	   grep /tmp/mypipe

tool: D778: 	e) If nmon fails please report it with:

tool: D671: 	   1) nmon version like: %s


tool: D730: 	   2) the output of cat /proc/cpuinfo

tool: D711: 	   3) some clue of what you were doing

tool: D452: 	   4) I may ask you to run the debug version

tool: D596: 	Developer Nigel Griffiths

tool: D891: 	Feedback welcome - on the current release only and state exactly the problem

tool: D258: 	No warranty given or implied.

assistant: ```c
void uiclhelp(char *version) {
  uiclhint();
  printf("nmond %s\n\n", version);
  printf("For Interactive-Mode\n");
  printf("\t-s <seconds>  time between refreshing the screen [default 2]\n");
  printf("\t-c <number>   count of screen refreshes [default millions]\n");
  printf("\t-g <filename> User Defined Disk Groups [hit g to show them]\n");
  printf("\t              - file = on each line: group_name <disks list> space separated\n");
  printf("\t              - like: database sdb sdc sdd sde\n");
  printf("\t              - upto 64 disk groups, 512 disks per line\n");
  printf("\t              - disks can appear more than once and in many groups\n");
  printf("\t-g auto       - will make a file called \"auto\" with just disks fron \"lsblk|grep disk\" output\n");
  printf("\t-b            black and white [default is colour]\n");
  printf("\texample: nmond -s 1 -c 100\n");
  printf("\n");
  printf("For Data-Collect-Mode = spreadsheet format (comma separated values)\n");
  printf("\tNote: use only one of f,F,z,x or X and make it the first argument\n");
  printf("\t-f            spreadsheet output format [note: default -s300 -c288]\n");
  printf("\t\t\t output file is <hostname>_YYYYMMDD_HHMM.nmon\n");
  printf("\t-F <filename> same as -f but user supplied filename\n");
  printf("\t-r <runname>  used in the spreadsheet file [default hostname]\n");
  printf("\t-t            include top processes in the output\n");
  printf("\t-T            as -t plus saves command line arguments in UARG section\n");
  printf("\t-s <seconds>  between snap shots\n");
  printf("\t-c <number>   of snapshots before nmon stops\n");
  printf("\t-d <disks>    to increase the number of disks [default 256]\n");
  printf("\t-l <dpl>      disks/line default 150 to avoid spreadsheet issues. EMC=64.\n");
  printf("\t-g <filename> User Defined Disk Groups (see above) - see BBBG & DG lines\n");
  printf("\t-g auto       As above but makes the file \"auto\" for you of just the disks like sda etc.\n");
  printf("\t-D            Use with -g to add the Disk wait/service time & inflight stats.\n");
  printf("\t-N            include NFS Network File System\n");
  printf("\t-I <percent>  Include process & disks busy threshold (default 0.1)\n");
  printf("\t              don't save or show proc/disk using less than this percent\n");
  printf("\t-m <directory> nmon changes to this directory before saving to file\n");
  printf("\texample: collect for 1 hour at 30 second intervals with top procs\n");
  printf("\t\t nmond -f -t -r Test1 -s30 -c120\n");
  printf("\n");
  printf("\tTo load into a spreadsheet:\n");
  printf("\tsort -A *nmon >stats.csv\n");
  printf("\ttransfer the stats.csv file to your PC\n");
  printf("\tStart spreadsheet & then Open type=comma-separated-value ASCII file\n");
  printf("\t The nmon analyser or consolidator does not need the file sorted.\n");
  printf("\n");
  printf("Capacity planning mode - use cron to run each day\n");
  printf("\t-x            sensible spreadsheet output for CP =  one day\n");
  printf("\t              every 15 mins for 1 day ( i.e. -ft -s 900 -c 96)\n");
  printf("\t-X            sensible spreadsheet output for CP = busy hour\n");
  printf("\t              every 30 secs for 1 hour ( i.e. -ft -s 30 -c 120)\n");
  printf("\n");
  printf("Interactive Mode Commands\n");
  printf("\tkey --- Toggles to control what is displayed ---\n");
  printf("\th   = Online help information\n");
  printf("\tr   = Machine type, machine name, cache details and OS version + LPAR\n");
  printf("\tc   = CPU by processor stats with bar graphs\n");
  printf("\tl   = long term CPU (over 75 snapshots) with bar graphs\n");
  printf("\tm   = Memory stats\n");
  printf("\tL   = Huge memory page stats\n");
  printf("\tV   = Virtual Memory and Swap stats\n");
  printf("\tk   = Kernel Internal stats\n");
  printf("\tn   = Network stats and errors\n");
  printf("\tN   = NFS Network File System\n");
  printf("\td   = Disk I/O Graphs\n");
  printf("\tD   = Disk I/O Stats\n");
  printf("\to   = Disk I/O Map (one character per disk showing how busy it is)\n");
  printf("\tg   = User Defined Disk Groups        (assumes -g <file> when nmon started)\n");
  printf("\tG   = Change Disk stats to just disks (assumes -g auto   when nmon started)\n");
  printf("\tj   = File Systems \n");
  printf("\tt   = Top Process stats: select the data & order 1=Basic, 3=Perf 4=Size 5=I/O=root only\n");
  printf("\tt   = Top Process stats use 1,3,4,5 to select the data & order\n");
  printf("\tu   = Top Process full command details\n");
  printf("\tv   = Verbose mode - tries to make recommendations\n");
  printf("\tP   = Partitions Disk I/O Stats\n");
  printf("\tb   = black and white mode (or use -b option)\n");
  printf("\t.   = minimum mode i.e. only busy disks and processes\n");
  printf("\n");
  printf("\tkey --- Other Controls ---\n");
  printf("\t+   = double the screen refresh time\n");
  printf("\t-   = halves the screen refresh time\n");
  printf("\tq   = quit (also x, e or control-C)\n");
  printf("\t0   = reset peak counts to zero (peak = \">\")\n");
  printf("\tspace = refresh screen now\n");
  printf("\n");
  printf("Startup Control\n");
  printf("\tIf you find you always type the same toggles every time you start\n");
  printf("\tthen place them in the NMON shell variable. For example:\n");
  printf("\t export NMON=cmdrvtan\n");
  printf("\n");
  printf("Others:\n");
  printf("\ta) To you want to stop nmon - kill -USR2 <nmon-pid>\n");
  printf("\tb) Use -p and nmon outputs the background process pid\n");
  printf("\tc) To limit the processes nmon lists (online and to a file)\n");
  printf("\t   Either set NMONCMD0 to NMONCMD63 to the program names\n");
  printf("\t   or use -C cmd:cmd:cmd etc. example: -C ksh:vi:syncd\n");
  printf("\td) If you want to pipe nmon output to other commands use a FIFO:\n");
  printf("\t   mkfifo /tmp/mypipe\n");
  printf("\t   nmon -F /tmp/mypipe &\n");
  printf("\t   grep /tmp/mypipe\n");
  printf("\te) If nmon fails please report it with:\n");
  printf("\t   1) nmon version like: %s\n", version);
  printf("\t   2) the output of cat /proc/cpuinfo\n");
  printf("\t   3) some clue of what you were doing\n");
  printf("\t   4) I may ask you to run the debug version\n");
  printf("\n");
  printf("\tDeveloper Nigel Griffiths\n");
  printf("\tFeedback welcome - on the current release only and state exactly the problem\n");
  printf("\tNo warranty given or implied.\n");
}
```