第五章 [bx]和loop指令
要完整的描述一个内存单元,需要(1)内存单元的地址(2)内存单元的长度(类型 字单元/字节单元)
[bx]表示一个内存单元,它的偏移地址在bx中。
Debug和编译器masm对“mov ax,[idata]”的解释是不同的:
Debug将它解释为“[idata]”是一个内存单元,“idata”是内存单元的偏移地址。
编译器masm将“[idata]”解释为“idata”。
以下指令在编译器masm中的含义:
Mov al,[0] ;(al)=0,将常量0送入al中(与mov al,0含义相同)
Mov al,ds:[0] ;al=...
- [younggay] 呵呵,还是看书清楚。 08/18 08:54
- [younggay] 第一题的计算中有不对的地方。博主需要重新整理一下。 08/18 08:51
- [younggay] 回答正确。 08/18 08:40
- [游客] 手写的可不行啊,不能保证程序的正确性,要自己实验一下的。要不有错误也不好指出。 08/06 15:24
- [hourace] 谢谢你的评论,这个是我手写的,自己没有编译. 08/05 13:29
- [wsrf] 程序不能通过编译。 08/04 18:54
- [tomato] 正确。 08/01 22:36
- [tomato] 正确。 08/01 22:36
- [tinyparticle] (2)第二、第三格的填写均有问题 08/01 18:55
- [tinyparticle] 可先取cx=0(cx取0-ffffh所占字节数是一样的),进debug查看程序总长度。 当mov 08/01 16:54
[2009-07-31 19:47] 笔记
阅读全文 |
评论次数(2) |
浏览次数(418) |
所属类型(默认类型)
[2009-07-31 15:02] 笔记
段地址是放在段寄存器中的
ALT+ENTER 窗口最大化/最小化
E命令向内存中写入机器码
U命令查看内存中机器码的含义
T命令执行内存中的机器码
D命令查看内存中的内容
A命令以汇编指令的形式向内存中写入指令
R命令查看、改变CPU寄存器的内容
D命令也提供了一种符合CPU机理的格式:“D段寄存器:偏移地址”,以段寄存器中的数据为段地址SA,列出从SA:偏移地址开始的内存区间中的数据。以下是4个例子:
(1)-RDS
:1000
-DDS:0 ;查看从1000:0开始的内存区间中的内容
(2)-RDS
:1...
ALT+ENTER 窗口最大化/最小化
E命令向内存中写入机器码
U命令查看内存中机器码的含义
T命令执行内存中的机器码
D命令查看内存中的内容
A命令以汇编指令的形式向内存中写入指令
R命令查看、改变CPU寄存器的内容
D命令也提供了一种符合CPU机理的格式:“D段寄存器:偏移地址”,以段寄存器中的数据为段地址SA,列出从SA:偏移地址开始的内存区间中的数据。以下是4个例子:
(1)-RDS
:1000
-DDS:0 ;查看从1000:0开始的内存区间中的内容
(2)-RDS
:1...
阅读全文 |
评论次数(0) |
浏览次数(400) |
所属类型(默认类型)
[2009-07-30 20:24] 笔记
第三章 寄存器(内存访问)
MOV 寄存器名,内存单元地址
[]表示一个内存单元 [0]中的0表示内存单元的偏移地址
8086不支持直接把数据送到段寄存器。MOV AX,1000H MOV DS,AX
字=2Byte
MOV指令访问内存单元,可以在指令中只给出单元的偏移地址,此时的段地址默认在DS寄存器中。
栈是一种特殊的存储空间,其特点是先进后出(FILO)
栈顶的段地址放在SS中,偏移地址放在SP中。
PUSH AX 的执行(1)SP=SP-2,SS:SP指向当前栈顶前面的单元。以当前栈顶前面的单元为新的栈顶。(2)将AX中的内容送入SS:SP指向的内存...
MOV 寄存器名,内存单元地址
[]表示一个内存单元 [0]中的0表示内存单元的偏移地址
8086不支持直接把数据送到段寄存器。MOV AX,1000H MOV DS,AX
字=2Byte
MOV指令访问内存单元,可以在指令中只给出单元的偏移地址,此时的段地址默认在DS寄存器中。
栈是一种特殊的存储空间,其特点是先进后出(FILO)
栈顶的段地址放在SS中,偏移地址放在SP中。
PUSH AX 的执行(1)SP=SP-2,SS:SP指向当前栈顶前面的单元。以当前栈顶前面的单元为新的栈顶。(2)将AX中的内容送入SS:SP指向的内存...
阅读全文 |
评论次数(0) |
浏览次数(169) |
所属类型(默认类型)
[2009-07-30 10:41] 笔记
第二章 寄存器(CPU工作原理)
写程序时要考虑数据的溢出问题。
内存单元构成的存储空间是一维的线性空间。
CPU通过地址总线送入存储器的必须是一个内存单元的物理地址。
在8086CPU中加电启动和复位(RET)后CS和IP被设置为CS=F000H,IP=FFFFH,即CPU从内存FFFF0H单元中读取第一条指令执行。
8086CPU不能用MOV指令直接来修改CS、IP的值。
CS:IP是代码段、DS是数据段、SS是栈段...
写程序时要考虑数据的溢出问题。
内存单元构成的存储空间是一维的线性空间。
CPU通过地址总线送入存储器的必须是一个内存单元的物理地址。
在8086CPU中加电启动和复位(RET)后CS和IP被设置为CS=F000H,IP=FFFFH,即CPU从内存FFFF0H单元中读取第一条指令执行。
8086CPU不能用MOV指令直接来修改CS、IP的值。
CS:IP是代码段、DS是数据段、SS是栈段...
阅读全文 |
评论次数(0) |
浏览次数(153) |
所属类型(默认类型)
[2009-07-29 20:27] 汇编笔记
第一章 基础知识
汇编语言的主体是汇编指令。
寄存器:简单的讲是CPU中可以存储数据的器件,一个CPU中有多个寄存器。
编译器:简单的讲就是将写好的汇编源程序指令转换成机器指令,这样的程序被成为编译器。
汇编语言的组成(1)汇编指令:机器码助记符,有对应的机器码。(2)伪指令:没有对应的机器码,由编译器执行,计算机并不执行。(3)其他符号:如+、—、*、/等,由编译器识别,没有对应的机器码。
汇编指令是机器指令的助记符,同机器指令一一对应。
CPU可以直接使用的信息在存储器中存放。
在存储器中指令和数据没有任何区别,都是二进制信息。
一个存储单元可以存储8个bit,即8位。
...
汇编语言的主体是汇编指令。
寄存器:简单的讲是CPU中可以存储数据的器件,一个CPU中有多个寄存器。
编译器:简单的讲就是将写好的汇编源程序指令转换成机器指令,这样的程序被成为编译器。
汇编语言的组成(1)汇编指令:机器码助记符,有对应的机器码。(2)伪指令:没有对应的机器码,由编译器执行,计算机并不执行。(3)其他符号:如+、—、*、/等,由编译器识别,没有对应的机器码。
汇编指令是机器指令的助记符,同机器指令一一对应。
CPU可以直接使用的信息在存储器中存放。
在存储器中指令和数据没有任何区别,都是二进制信息。
一个存储单元可以存储8个bit,即8位。
...
阅读全文 |
评论次数(0) |
浏览次数(176) |
所属类型(默认类型)
页码数(1):
1