1、用同一种方法处理地址连续的内存单元中的数据时,可以用变量[idata]代替常量[0],[1]...用循环访问。
2、用于显式的指明内存单元的段地址的"ds”“cs”“ss”“es”在汇编语言中称为段前缀。 mov ax,cs:[0]
3、一般PC机中,dos方式下,dos和其他合法的程序一般都不会使用
0:200~0~2ff(00200h-002ffh)的256个字节的空间。最好是用debug查看下这段空间的内容是否为0....


- [tomato] 第二个改对了,第三个还不太对哦! 12/08 08:41
- [fish_u] 2、 assume cs:code code segment mov ax,0 12/07 17:48
- [tomato] 这就对了。要养成一个多试验求证结果的习惯。 11/26 23:16
- [fish_u] 学生错了,没有认真实验,比对编译后代码。 把mov ax,code改为mov ax,start后 11/26 11:29
- [tomato] 第一题是一个细小的问题,运行看不出,提示一下,对字节操作应该用8位寄存器,16位寄存器会覆盖其它内存 11/25 19:16
- [tomato] 计算机最忌讳的是懒了! 11/25 19:01
- [tomato] “1、不清楚对错 ”不清楚对错的可以实验一下啊! 11/25 19:00
- [fish_u] 运行没有发现什么问题啊? 11/25 13:27
- [tomato] 路过! 11/24 20:23
- [tomato] 是的。 11/24 20:22
[2011-11-24 17:40] 5.5-5.8
阅读全文 |
评论次数(1) |
浏览次数(1098) |
所属类型(章节摘要)
[2011-11-24 16:44] 第五章 [BX]和LOOP 指令-5.4
1、完整的描述一个内存单元,需要2种信息:①内存单元的地址②内存单元的长度(类型)。
2、mov ax,[bx]
将一个内存单元的内容送入ax,这个内存单元的长度为2字节(字单元),存放一个字,偏移地址在bx中,段地址在ds中。
mov al,[bx]
将一个内存单元的内容送入al,这个内存单元的长度为1字节(字节单元),存放一个字节,偏移地址在bx中,段地址在ds中。
3、用“()”表示一个寄存器或一个内存单元的内容。
()中的元素有3中,寄存器名,段寄存器名,内存单元的物理地址。
例如:(ax)=(ax)+(bx)
4、“(X)”所表示的数据有2种类型:...
2、mov ax,[bx]
将一个内存单元的内容送入ax,这个内存单元的长度为2字节(字单元),存放一个字,偏移地址在bx中,段地址在ds中。
mov al,[bx]
将一个内存单元的内容送入al,这个内存单元的长度为1字节(字节单元),存放一个字节,偏移地址在bx中,段地址在ds中。
3、用“()”表示一个寄存器或一个内存单元的内容。
()中的元素有3中,寄存器名,段寄存器名,内存单元的物理地址。
例如:(ax)=(ax)+(bx)
4、“(X)”所表示的数据有2种类型:...
阅读全文 |
评论次数(1) |
浏览次数(990) |
所属类型(章节摘要)
[2011-11-17 20:58] 第四章4.3-4.9
1、编辑源程序
在DOS下使用EDIT编辑。
编辑过程中注意事项:
①另存为.ASM文件。
②注意结构对齐,便于检查错误。
③不要忘了数据后的格式(H),要不会出现severe errors.导致生成目标文件失败
2、编译过程。
①进入DOS运行MASM.EXE
②输入要编辑的源程序文件名后,按ENTER
③确认目标文件夹名称后,提示输入:列表文件名称。
④编译程序提示输入:交差引用文件名称。
⑤最后屏幕确认没有警告和错误。
3、得不到目标文件的错误。
程序中有“severe errors”出现。
找不到所给出的源程序文件。
4、编译过程中,有一个输入(源...
在DOS下使用EDIT编辑。
编辑过程中注意事项:
①另存为.ASM文件。
②注意结构对齐,便于检查错误。
③不要忘了数据后的格式(H),要不会出现severe errors.导致生成目标文件失败
2、编译过程。
①进入DOS运行MASM.EXE
②输入要编辑的源程序文件名后,按ENTER
③确认目标文件夹名称后,提示输入:列表文件名称。
④编译程序提示输入:交差引用文件名称。
⑤最后屏幕确认没有警告和错误。
3、得不到目标文件的错误。
程序中有“severe errors”出现。
找不到所给出的源程序文件。
4、编译过程中,有一个输入(源...
阅读全文 |
评论次数(3) |
浏览次数(732) |
所属类型(章节摘要)
[2011-11-17 17:42] 第四章 第一个程序
1、一个源程序从写出到执行的过程?
①编写汇编源程序。
使用文本编辑器,用汇编语言编写汇编源程序。
②对源程序进行编译连接。
使用编译程序,对源程序进行编译,产生目标文件;
在用连接程序对目标文件进行连接,生成可执行文件。
③执行可执行文件
可执行文件包含两部分内容
a,程序(源程序中汇编指令翻译过来的机器码)和数据(源程序中定义的数据)。
b,相关描述信息
2、源程序包含两种指令,汇编指令和伪指令。
3、segment和ends是一对成对使用的伪指令,必须用到的伪指令,用来定义一个段。
4、end是一个汇编程序的结束标记。
5、a...
①编写汇编源程序。
使用文本编辑器,用汇编语言编写汇编源程序。
②对源程序进行编译连接。
使用编译程序,对源程序进行编译,产生目标文件;
在用连接程序对目标文件进行连接,生成可执行文件。
③执行可执行文件
可执行文件包含两部分内容
a,程序(源程序中汇编指令翻译过来的机器码)和数据(源程序中定义的数据)。
b,相关描述信息
2、源程序包含两种指令,汇编指令和伪指令。
3、segment和ends是一对成对使用的伪指令,必须用到的伪指令,用来定义一个段。
4、end是一个汇编程序的结束标记。
5、a...
阅读全文 |
评论次数(1) |
浏览次数(688) |
所属类型(章节摘要)
[2011-11-11 14:13] 3.4-3.10
1、ADD 和SUB指令同MOV一样,都是有两个操作对象。
ADD 寄存器,数据 比如 ADD AX,8
ADD 寄存器,寄存器 比如 ADD AX,BX
ADD 寄存器,内存单元 比如 ADD AX,[0]
ADD 内存单元,寄存器 比如 ADD [0],AX
SUB 寄存器,数据
SUB 寄存器,寄存器
SUB 寄存器,内存单元
SUB 内存单元,寄存器
2、将一组长度为N(N≤64KB)、地址连续、起始地址为16的倍数的内存单元当作专门存储数据的内存空间,定义为一个数据段。数据段中段地址DS指定。偏移地址[......
ADD 寄存器,数据 比如 ADD AX,8
ADD 寄存器,寄存器 比如 ADD AX,BX
ADD 寄存器,内存单元 比如 ADD AX,[0]
ADD 内存单元,寄存器 比如 ADD [0],AX
SUB 寄存器,数据
SUB 寄存器,寄存器
SUB 寄存器,内存单元
SUB 内存单元,寄存器
2、将一组长度为N(N≤64KB)、地址连续、起始地址为16的倍数的内存单元当作专门存储数据的内存空间,定义为一个数据段。数据段中段地址DS指定。偏移地址[......
阅读全文 |
评论次数(1) |
浏览次数(245) |
所属类型(章节摘要)
[2011-11-07 18:07] 第三章 寄存器(内存访问)
1、CPU中,用16位寄存器来存储一个字。高8位存放高位字节,低8位存放低位字节。
2、任意连续的两个内存单元,N号单元和N+1号单元,可以将它们看成2个内存单元,也可以将它们看成一个地址为N的字单元中的高位字单元和低位字单元。
3、DS寄存器,用来存放要访问数据的段寄存器。
4、MOV 命令
① 将数据直接送入寄存器 MOV AX,1000H
② 将寄存器中的内容传递到另一个寄存器中 MOV AX,BX
③ 将一个内存单元中的内容送入一个寄存器中 MOV AL,[0]
④ 将一个寄存器中的内容送入一个内存单元中 MOV [0],AL
5、[0]表示一个...
2、任意连续的两个内存单元,N号单元和N+1号单元,可以将它们看成2个内存单元,也可以将它们看成一个地址为N的字单元中的高位字单元和低位字单元。
3、DS寄存器,用来存放要访问数据的段寄存器。
4、MOV 命令
① 将数据直接送入寄存器 MOV AX,1000H
② 将寄存器中的内容传递到另一个寄存器中 MOV AX,BX
③ 将一个内存单元中的内容送入一个寄存器中 MOV AL,[0]
④ 将一个寄存器中的内容送入一个内存单元中 MOV [0],AL
5、[0]表示一个...
阅读全文 |
评论次数(0) |
浏览次数(277) |
所属类型(章节摘要)
[2011-11-06 22:35] debug的使用
1、进入debug,
运行,cmd,debug
2、常用命令
R,查看、改变CPU寄存器中的内容。
D,查看内存中的内容。
E,改写内存中的内容。
U,将内存中的机器指令翻译成汇编指令。
T,执行一条机器指令。
A,以汇编指令的格式在内存中写入一条机器指令。
3、R命令使用,
查看,直接R
改变寄存器中的内容。 R CS 回车 内容 回车
4、D
D 段地址:偏移地址 (16进制形式显示128个内存单元中的内容)
D 段地址:偏移地址 尾偏移地址 (显示制定内存单元)
D 在使用段地址:偏...
运行,cmd,debug
2、常用命令
R,查看、改变CPU寄存器中的内容。
D,查看内存中的内容。
E,改写内存中的内容。
U,将内存中的机器指令翻译成汇编指令。
T,执行一条机器指令。
A,以汇编指令的格式在内存中写入一条机器指令。
3、R命令使用,
查看,直接R
改变寄存器中的内容。 R CS 回车 内容 回车
4、D
D 段地址:偏移地址 (16进制形式显示128个内存单元中的内容)
D 段地址:偏移地址 尾偏移地址 (显示制定内存单元)
D 在使用段地址:偏...
阅读全文 |
评论次数(2) |
浏览次数(344) |
所属类型(章节摘要)
[2011-11-06 10:57] 2.11-
1、转移指令:能够改变CS、IP的内容的指令被统称为转移指令。
2、JMP 指令:转移指令。
3、“JMP 段地址:偏移地址”指令的功能为,用指令中给出的段地址修改CS,偏移地址修改IP。
4、“JMP 某一合法寄存器”指令的功能,用寄存器中的值修改IP。
5、段地址在8086CPU的段寄存器中存放。当8086CPU要访问内存时,由段寄存器提供内存单元的段地址,8086CPU有4个段寄存器,其中CS是用来存放指令的段地址。
6、CS存放指令的段地址,IP存放指令的偏移地址。
8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。
7、8086CPU的工作过程。
...
2、JMP 指令:转移指令。
3、“JMP 段地址:偏移地址”指令的功能为,用指令中给出的段地址修改CS,偏移地址修改IP。
4、“JMP 某一合法寄存器”指令的功能,用寄存器中的值修改IP。
5、段地址在8086CPU的段寄存器中存放。当8086CPU要访问内存时,由段寄存器提供内存单元的段地址,8086CPU有4个段寄存器,其中CS是用来存放指令的段地址。
6、CS存放指令的段地址,IP存放指令的偏移地址。
8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。
7、8086CPU的工作过程。
...
阅读全文 |
评论次数(0) |
浏览次数(257) |
所属类型(章节摘要)
[2011-11-05 12:15] 2.9-2.10
1、8086CPU有4个段寄存器:CS、DS、SS、ES
2、8086CPU中2个关键的寄存器。CS为代码段寄存器,IP为指令指针寄存器。
3、在8086PC机中,任意时刻,CPU将CS:IP指向的内存当作指令执行。
也就是说设CS中的内容为M,IP中的内容为N,任意时刻8086CPU将从内存M*16+N单元开始,读取一条指令并执行。
4、8086CPU工作的过程;
①从CS:IP指向的内存单元读取指令,读取的指令进入指令缓存器;
②IP=IP+所读取指令的长度,从而指向下一条指令;
③执行指令,转到步骤一,重复这个过程。
5、8086CPU加电启动或复位后(...
2、8086CPU中2个关键的寄存器。CS为代码段寄存器,IP为指令指针寄存器。
3、在8086PC机中,任意时刻,CPU将CS:IP指向的内存当作指令执行。
也就是说设CS中的内容为M,IP中的内容为N,任意时刻8086CPU将从内存M*16+N单元开始,读取一条指令并执行。
4、8086CPU工作的过程;
①从CS:IP指向的内存单元读取指令,读取的指令进入指令缓存器;
②IP=IP+所读取指令的长度,从而指向下一条指令;
③执行指令,转到步骤一,重复这个过程。
5、8086CPU加电启动或复位后(...
阅读全文 |
评论次数(1) |
浏览次数(290) |
所属类型(章节摘要)
[2011-10-30 17:05] 第二章2.4-2.8
1、物理地址:所有内存单元构成的存储空间是一个一维的线性空间,每一个内存单元在这个空间中都有唯一的地址,这个唯一的地址就是物理地址。CPU通过地址总线送入存储器的,必须是一个内存单元的物理地址。且这个地址是在CPU向地址总线发出前就形成的。
2、8086是16位结构的CPU,具有下列特性
运算器一次最多可存储16位的数据。
寄存器的最大宽度为16位。
寄存器和运算器之间的通路为16位。
16位CPU,能一次性处理、传输、暂时存储16位的地址。
3、8086CPU有20位地址总线,可以传送20位地址,达到1M的寻址能力,但是它又是16位结构.只能送出16位地址,表现...
2、8086是16位结构的CPU,具有下列特性
运算器一次最多可存储16位的数据。
寄存器的最大宽度为16位。
寄存器和运算器之间的通路为16位。
16位CPU,能一次性处理、传输、暂时存储16位的地址。
3、8086CPU有20位地址总线,可以传送20位地址,达到1M的寻址能力,但是它又是16位结构.只能送出16位地址,表现...
阅读全文 |
评论次数(0) |
浏览次数(252) |
所属类型(章节摘要)