Это очень сильно зависит от используемого вами микропроцессора. Если это x86, char будет расширен до int, и тогда оба параметра будут переданы в стек. Вы можете выяснить это, скомпилировав код C, который выполняет вызов в код сборки, и проверить код сборки.
Например, учитывая
void LCD_byte (char byte, int cmd_data);
void foo()
{
LCD_byte('a',100);
}
gcc генерирует на x86 Linux код
foo:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
movl $100, 4(%esp)
movl $97, (%esp)
call LCD_byte
leave
ret
Как видите, оба значения помещаются в стек (так что «а» вверху), затем выполняется инструкция вызова для целевой подпрограммы. Поэтому целевая подпрограмма может найти первый входящий параметр в esp + 4.