Software has been a part of Mame for a while now. Before MESS was integrated, it was used for game images used in multi-game arcade systems such as the Sega Mega-tech system. Now with MESS integrated into Mame, software is now key for many systems to run.
Software is treated differently to rom images. Roms are required to get a system to run, software runs on the already emulated system. To run software on a system you need to either start the system and add the software from the Mame user interface or add it to the command line.
Here's how command line is formatted...
mame64.exe <system> <media> <software>
To run Super Mario World on the SNES from the command line you would use...
mame64.exe snes -cart smw
Breaking it down you have the main mame64.exe command, snes is the system to run, -cart is the media and smw is the name used by Mame for Super Mario World.
You can simplify the command a bit if the software is known by removing the -cart. Devices for known software are listed already and Mame and will automatically add the right device to get it to work. Unknown software needs to be manually run from the command line. For example if your Super Mario game is called
super_mario.zip and is in a different folder called
C:\MyRoms then you would need to use this command line command...
mame64.exe snes -cart "C:\MyRoms\super_mario.zip".
You must add the device type as Mame won't recognise the rom as one it knows. Be aware as well, Mame may not run every rom file as most systems are still in development and may contain errors.