什么是8位数据 16位数据
什么是8位寄存器 16位寄存器
在使用mov指令时,要保证数据与寄存器之间位数的一致性



注意:数据与寄存器之间要保持一致性 8位寄存器给8位寄存器 8位数据给8位寄存器 16位数据给16位寄存器

debug中只认识16进制
mov al,0005(error)··
这里只是移动指令,那么我们进行数据处理,比如加法超过了al或者ax表示的最大值怎么办?
做实验,看一下加法超过寄存器的最大值会怎么样。
-a:以汇编指令的形式向内存中写入指令
-t:执行CS:IP指向的内存单元处的指令
-r:查看、修改CPU中寄存器的内容
-d:查看内存中的内容
-u:将内存中的内容解释为机器指令和对应的汇编指令
-e:修改内存中的内容(可以写入数据、指令,在内存中,他们实际上没有区别)
dosbox -debug -a
mov ax,18
mov ah,78
add ax,8 ——》ax=ax+8 16位加法
mov bx,ax
add ax,bx 16位加法
Mov ax,0
mov ax,93H
add al,95H 8位寄存器进行8位运算 保存8位数据
mov ax,0
mov al,90H
add ax,05H 十六位加法 寄存器是互相独立的 AL就是AL AH就是AH 不会互相影响 (高位舍弃 ,实际是保存到其他地方去了,并没有消失)
16位寄存器 进行16位运算 保存16位数据

本文介绍了8位数据和16位数据的概念,以及8位寄存器和16位寄存器的区别。在使用汇编指令如`mov`时,强调了数据与寄存器位数一致性的原则。通过实例展示了当加法运算超出寄存器最大值时,如何观察和处理溢出情况,包括16位加法和8位运算。通过调试工具如`debug`的命令来演示这些操作,如`-a`写入指令,`-t`执行,`-r`查看寄存器,`-d`查看内存,`-u`解释指令,`-e`修改内存。
1万+

被折叠的 条评论
为什么被折叠?



