Hola,
En el problema 1.b del exámen de Julio 2020 se tiene el siguiente código en 8086
mov CL, BL
and CL, 0xF
cmp CL, 10
jb fin_if1
Cuál es el motivo del `and CL, 0xF` y el `cmp CL, 10`?
Hola,
En el problema 1.b del exámen de Julio 2020 se tiene el siguiente código en 8086
mov CL, BL
and CL, 0xF
cmp CL, 10
jb fin_if1
Cuál es el motivo del `and CL, 0xF` y el `cmp CL, 10`?
Santi,
entendemos lo mismo, creo, sí. Como la carga de la ROM se hace de manera iterativa-incremental en los posibles valores de los BCD(a y b), cuando se toma el caso de que el BCD ya no representa un dígito (10,11,12,13,14,15) se le suma 6 para poder ir al "0". Pero fijate que a 11,12,13,14 y 15 nunca se le suma 6; solo pasa con el 10 (por ser iterativo).
O sea, el ">9" se puede comportar como un (==10), porque al ser incremental, una vez que se entra en ese caso, ya se saltea toda esa zona.
Lo que comentás de que la solución nunca las carga, es verdad, lo entiendo así también. Pero justamente, para esas entradas no va a haber una salida - a priori codificada - en la ROM. Mi pregunta iba en esa dirección ¿Qué pasa en ese caso? ¿Puede quedar basura? ¿Habría que dejarlo con alguna marca especial?