上一节:16、知识总结、原书第6章习题
下一节:18、INTEL8086处理器的寻址方式
01、字符串的定义和累加过程
看原视频,或原书配套代码c07_mbr.asm
。主要讲了显示字符串、计算1到100的累加过程。
02、栈的原理和使用
栈的结构:
内存中的栈SS
:
栈的操作:push
指令的操作数必须是16位的
压栈、出栈的过程:使用SS
左移4位加上SP
内容形成20位的有效地址访问内存,之后SP指针加/减去 操作数的大小(字节数)。
03、栈在数位分解和显示中的应用
当前程序的内存布局:
代码为:
...
;以下计算累加和的每个数位
xor cx,cx ;设置堆栈段的段基地址
mov ss,cx
mov sp,cx
mov bx,10
xor cx,cx
@d:
inc cx
xor dx,dx
div bx
or dl,0x30 ;也可以为:add dl, 0x30
push dx
cmp ax,0
jne @d
;以下显示各个数位
@a:
pop dx
mov [es:di],dl
inc di
mov byte [es:di],0x07
inc di
loop @a
...
程序执行时栈的变化:
04、调试器中观察栈的状态
使用print-stack
命令观察栈的内容:
05、栈和栈的特点
push
、pop
操作过程:
保持栈平衡:push
和pop
数量需要一致。
需要充分估计栈所需空间,以免破坏其他数据。
06、逻辑或指令OR、逻辑与指令AND
OR
操作:
AND
操作:
上一节:16、知识总结、原书第6章习题
下一节:18、INTEL8086处理器的寻址方式