Предел памяти сборочного бита в арифметике

Я хотел добавить следующие числа: 40, 90, 50 и 155, и я получил в общей сложности 355.

Я хотел поэкспериментировать и проверить, будет ли регистр AL иметь битовый предел (2 ^ 8) - 1, и когда я скомпилировал код и выполнил код, я получил десятичное число 1376331855. Как это произошло?

Кроме того, я думал, что 355 больше, чем 255, и в результате должно отображаться исключение переполнения.

Я понимаю, что если я использую MOVZX, я смогу перенести вычисления в верхний регистр AX.

Также меня очень смущает разница между AL и AH. Есть ли различия в распределении памяти для AL и AH?

TITLE Adding              
INCLUDE Irvine32.inc

.code
main PROC

    mov al,0h             ; 
    add al,28h            ; 40

    add al,5Ah            ; 90 
    add al,32h            ;50
    add al,9Bh            ;155
                            ; total is 355
    call DumpRegs
    call writedec

exit
main ENDP
END main

Ответы на вопрос(2)

Ваш ответ на вопрос