第五章
Posted 101whw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第五章相关的知识,希望对你有一定的参考价值。
5.1,2
mov ax,[bx]表示将偏移地址和段地址分别在BX,DS的内存单元的内容放入ax中。
inc bx含义为bx内容加一。
loop指令格式:
mov cx,11 (cx存储循环次数,每次循环后-1,为0时转到loop s后继续执行指令)
s: add ax,ax (循环执行的程序段)
loop s 【效果相当于(ax)的12次方。】
5.3 在debug中跟踪用loop指令实现的循环程序:P103
重点:图5.8
可用g命令直接跟踪循环。
g 0012 意思为执行代码段到当前代码段的0012h处(段地址在cs中)
当希望将循环一次执行完时,用P命令完成,具体:遇到loop指令时,用p命令Debug自动重复执行循环的指令直到(cx)=0.
5.4Debug和汇编编译器masm对指令的不同处理
mov al,[0] debug认为【0】为内存单元的偏移地址;masm解释为0。
解决:
mov ax,2000h
mov ds,ax
mov bx,0 将内存单元地址赋给bx
mov al,[bx]
或在内存地址单元的偏移地址前加上段地址所在寄存器如:
mov ax,2000h
mov ds,ax
mov al,ds:0 --------(ds就是5.6中的段前缀)
5.5 loop,bx联合运用
mov ax,0ffffh
mov ds,ax
mov bx,0 ds:bx指向ffff:0
mov dx,0 (累加寄存器)
mov cx,12
s: mov al,[bx]
mov ah,0
add dx,ax
inc bx (bx)每次循环加一
loop s
5.6参上
5.7
8086模式中,随意向一段内存地址写入内容很危险(可能存放重要的系统数据或代码),如果我们需要向内存空间写入数据时要使用操作系统分配的空间。(可以在操作系统下安全,规矩地编程,也可以自由地用汇编语言操作硬件)
DOS模式下,0:200~0:2ff没有系统或其他程序的数据或代码,我们可以使用这段空间。
5.8
参见P121程序5.9
以上是关于第五章的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript DOM编程艺术-学习笔记(第五章第六章)
《DOM Scripting》学习笔记-——第五章第六章 案列改进