Я пишу новый код в сборке прямо сейчас, и мне нужна ваша помощь! Я использовал 16-кратное прерывание, и я хочу проверить, доступно ли нажатие клавиши или нет, поэтому я хочу проверить, хотите ли теперь нулевой флаг. - как мне это сделать?Assembly- Как проверить, является ли ZF 0 или 1?
Спасибо! :)
Я полагаю, x86-16, верно? 'jz' или' je' (в зависимости от вашего стиля) проверит, будет ли ZF = 1. 'jnz' /' jne' проверит ZF = 0. См. [Наш документ] (https://stackoverflow.com/documentation/x86/5808/control-flow/20470/conditional-jumps#t=201702060901496425342). –
Как минимум, получите копию руководства по набору инструкций Intel x86 и/или x86_64. –
Также, если вы не хотите входить в ветви, но значение 0/1 может быть полезно для вас в следующем коде, вы можете использовать 'setz/setnz' для установки значения 8b в 0/1 в соответствии с ZF (вместо' jz/jnz'). Поскольку вам действительно нужно протестировать ZF после 'int 16h, ah = 1', этот ответ НЕ имеет значения, но может быть следующее, что нужно узнать (как определить, является ли значение равным нулю): http://stackoverflow.com/a/41175294/4271923 – Ped7g