标签:没有 异常 c语言 字节 cpu 观察 goto data 判断
两个约定:
约定符号():表示寄存器或者一个内存单元的内容,如(ax)表示ax中内容,(bx)表示bx内容,(20000H)表示内存20000H单元的内容。
约定符号idata表示常数。
[bx]用法:[bx]为一个内存单元,其中bx是偏移地址,也就是内存ds:bx处
如mov ax,[bx]就是把ds:bx处的值赋值给ax
loop指令:
格式:loop 标号
标号有些类似在C语言中goto的用法.
CPU执行loop时,先进行cx=cx-1,然后判断cx如果不为0就跳转至标号处执行程序,如果为0就继续向下执行。
cx中存放循环次数.
例如:
mov ax 2
mov cx,3
s:add ax,ax
loop s
就可以计算2^4。
也可以在debug中通过t,p,r命令来单步调试,观察程序运行的过程。
段前缀:在访问内存单元的指令中,用于显式指明内存单元的段地址的ds,cs,ss,es.
在8086中,0:200-0:02ff的256个字节的空间中,一般不会被别的程序使用,因此我们可以用debug查看一下,如果全部是0,则说明dos和其他合法程序没有使用这里,可以使用。
而如果向其他空间写入可能导致一些异常,甚至dos崩溃。
标签:没有 异常 c语言 字节 cpu 观察 goto data 判断
原文地址:https://www.cnblogs.com/g56355/p/10127972.html