16 位汇编操作对象位数不一致问题

寄存器与数值

若是数值超过了寄存器位数,编译器会报溢出错误;否则将数值解释为与寄存器位数相同,高位补 \(0\)

寄存器与寄存器

编译器会强行将低位寄存器转为对应的高位寄存器,如 mov ax, bl 会被改为 mov ax, bx

P.S.

在 debug 中尝试用 a 指令写入操作对象位数不一致的汇编指令,debug 都会报错。

posted @ 2020-12-08 20:15  可爱的小凯凯  阅读(95)  评论(0)    收藏  举报