Register Number vs Modbus Address

In Modbus, the main registers that are used to send data between a master and a slave are holding registers.

Holding registers start with a '4' and can carry 16 bits or 2 bytes of data in each one.  The reason that holding registers are predominantly used is because of flexibility.  As long as the Master and Slave support a particular data type it can be used.  That is because the data type is not part of the protocol. If a slave has a mapped register configured as a 16 bit signed integer then the Master has to be configured to decode that register as a 16 bit signed integer.  Modbus will not control what data type it is transmitting.  It just transmits  bits and bytes.  In that way it is a very simple or low level protocol.