第5-8章总结
Posted ntybky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第5-8章总结相关的知识,希望对你有一定的参考价值。
1、(al)、(bl)、(cl)等得到的数据为字节型;(ds)、(ax)、(bx)等得到的数据为字型。idate表示常量。
2、inc bx的含义是bx中的内容加1。
3、执行loop指令时,要进行两步操作:1)(cx)=(cx)-1;2)判断cx中的值,不为零则转至标号处执行程序,如果为零则向下执行。
4、用cx和loop指令相配合实现循环功能的3个要点:
1)在cx中存放循环的次数;
2)loop指令中的标号所标识地址要在前面;
3)要循环执行的段程序,要写在标号和loop指令之间。
5、将循环一次执行完,可以使用p命令来达到目的。
6、在汇编源程序中,如果用指令访问一个内存单元,则在指令中必须用“[···]”来表示内存单元,如果在“[]”里用一个常量idate直接给出内存单元的偏移地址,就要在“[]”的前面显式地给出段地所在的段寄存器。如果在“[]”里用寄存器,比如bx,间接给出内存单元的偏移地址,则段地址默认在ds中。当然,也可以显式地给出段地址所在的段寄存器。
7、DOS方式下,一般情况,0:200~0:2ff空间中没有系统或其他程序的数据或代码,我们需要向一段内存中写入内容时,就使用0:200~0:2ff这段空间。
8、debug中a命令不支持‘a’这样的写法,e命令支持‘a’也支持ASCII码,而汇编源程序都支持。
9、大写->小写 小写->大写 数值1->字符‘1‘ 字符‘1‘->数值1
mov dl,‘A‘ mov dl,‘a‘ mov dl,1 mov dl,‘1‘
或 或 或 或
or dl,20H and dl,0dfH add dl,30H sub dl,30H
或 或
or dl,30H and dl,ofH
10、debug不支持ds:[idate]这样有段前缀的写法。
11、si和di是8086CPU中和bx功能相近的寄存器,si和di不能够分成两个8位寄存器来使用。用16位寄存器进行内存单元之间的数据传送,一次复制2个字节,一共循环8次。
12、在8086CPU中,只有bx、si、di和bp这四个寄存器可以用在“[···]”中来进行内存单元的寻址。只要在[···]中使用寄存器bp,而指令没有显式地给出段地址,段地址就默认在ss中。
13、8086CPU的指令,可以处理两种尺寸的数据,byte和word。
14、我们用db和dw定义字节型数据和字型数据。dd是用来定义双字型数据的。dup是一个操作符,用来进行数据的重复。
以上是关于第5-8章总结的主要内容,如果未能解决你的问题,请参考以下文章