また(1)(2)のところなのですが、最初は
 mov ax, x
とだけ書いていたのですがまたOperand types...
というエラーが出て悩みました
(1byte除算なのでaxレジスタにいれているのになぜ)
ログをもう一度よんだら「alにmovする…」とあった
のでこうしました。
もしかして(1)は不要ですか?
(このテストでは不要だが普段は必要とか?)

あとmovzxとは?説明をみつけれなかった…
ほかにコンパイラにアセンブラコードを
吐かせるとmovszとかもよくみるし…