1.[bx]和内存单元的描述
要完整地描述一个内存单元,需要两种信息:一、内存单元的地址;二、内存单元的长度(类型)。
[bx]表示一个内存单元,它的偏移地址在bx中。
loop有循环的含义,这个指令和循环有关。
约定符号idata表示常量,如mov ax,[idata]代表mov ax,[1]、mov ax,[2]
mov bx,idata代表mov bx,1、mov bx,2
这些都是非法指令。
inc bx的含义是bx中...
- [游客] 石职wsd专升本da卡 11/18 15:28
- [游客] 石职wsd专升本da卡 11/18 15:28
- [游客] 似乎这个站点没有什么新鲜的活力了 07/23 18:22
- [游客] 博主有没有学习群 07/23 19:14
- [游客] 可以的 07/23 19:13
- [游客] aaaaaaaaaaaa 09/19 13:49
- [jinshuwen] 很有收获! 01/19 16:25
- [hujie0421] 谢谢分享 02/01 05:14
- [jiejie] 来学习一下 10/01 11:31
- [yexueyao] 谢谢,我是学习计算机专业的,汇编语言一学期几乎没听懂过,看你的日记,很有帮助,我会加油学的,期末要拿 11/12 10:14
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:39
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:39
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:38
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:38
- [bingfeixue] masm32 汇编器具体怎么用啊 04/28 09:24
[2010-07-14 21:01] 汇编语言——第七天
阅读全文 |
评论次数(0) |
浏览次数(882) |
所属类型(汇编笔记)
[2010-07-11 15:16] 汇编语言——第六天
1.一个源程序从写出到执行的过程
编写汇编源程序——对源程序进行编译连接——执行可执行文件中的程序
2.源程序
在汇编语言源程序中,包含两种指令,一种是汇编指令,一种是伪指令。汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行。而伪指令没有对应的机器指令,最终不被CPU所执行。而是由编译器来执行,根据伪指令来进行相关的编译工作。
segment和ends是一对成对使用的伪指令。这事在写可被编译器编译的汇编程序时,必须要用到的一对伪指令。segment和ends的功能是定义一个短,segment说明一个段开始,ends说明一个段的结束。一个段...
编写汇编源程序——对源程序进行编译连接——执行可执行文件中的程序
2.源程序
在汇编语言源程序中,包含两种指令,一种是汇编指令,一种是伪指令。汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行。而伪指令没有对应的机器指令,最终不被CPU所执行。而是由编译器来执行,根据伪指令来进行相关的编译工作。
segment和ends是一对成对使用的伪指令。这事在写可被编译器编译的汇编程序时,必须要用到的一对伪指令。segment和ends的功能是定义一个短,segment说明一个段开始,ends说明一个段的结束。一个段...
阅读全文 |
评论次数(24) |
浏览次数(46595) |
所属类型(汇编笔记)
[2010-07-10 20:29] 检测点3.2
(1)
mov ax,1000H
mov ds,ax
————————
mov ax,2000H
mov ss,ax
mov sp,10H
————————
push [0]
push [2]
push [4]
push [6]
push [8]
push [A]
push [C]
push [E]
(2)
mov ax,2000H
mov ds,ax
————————
mov ax,1000H
mov ss,ax
mov sp,0H
————————
pop [E]
pop [C]
pop [A]
pop [8]
pop [6]
po...
mov ax,1000H
mov ds,ax
————————
mov ax,2000H
mov ss,ax
mov sp,10H
————————
push [0]
push [2]
push [4]
push [6]
push [8]
push [A]
push [C]
push [E]
(2)
mov ax,2000H
mov ds,ax
————————
mov ax,1000H
mov ss,ax
mov sp,0H
————————
pop [E]
pop [C]
pop [A]
pop [8]
pop [6]
po...
阅读全文 |
评论次数(1) |
浏览次数(662) |
所属类型(汇编作业)
[2010-07-10 20:20] 汇编语言——第五天
1.栈
栈有两个基本的操作:入栈和出栈。入栈就是将一个新的元素放到栈顶,出栈就是从栈顶取出一
个元素。栈顶的元素总是最后入栈,需要出栈时,又最先被从栈中取出。栈的这种操作规则被称为:
LIFO(Last In First Out)。
2.CPU提供的栈机制
8086CPU提供入栈和出栈指令,最基本的两个是PUSH(入栈)和POP(出栈)。在8086CPU中,有
两个寄存器,段寄存器SS和寄存器SP,栈顶的段地址存放在SS中,偏移地址存放在SP中,让人一时刻
,SS:SP指向栈顶元素。push指令和pop指令执行时,CPU从SS和SP中得到栈顶的地址...
栈有两个基本的操作:入栈和出栈。入栈就是将一个新的元素放到栈顶,出栈就是从栈顶取出一
个元素。栈顶的元素总是最后入栈,需要出栈时,又最先被从栈中取出。栈的这种操作规则被称为:
LIFO(Last In First Out)。
2.CPU提供的栈机制
8086CPU提供入栈和出栈指令,最基本的两个是PUSH(入栈)和POP(出栈)。在8086CPU中,有
两个寄存器,段寄存器SS和寄存器SP,栈顶的段地址存放在SS中,偏移地址存放在SP中,让人一时刻
,SS:SP指向栈顶元素。push指令和pop指令执行时,CPU从SS和SP中得到栈顶的地址...
阅读全文 |
评论次数(0) |
浏览次数(833) |
所属类型(汇编笔记)
[2010-07-09 23:44] 汇编语言——第四天
1.内存中字的存储
由于内存单元是字节单元,所以一个字要用两个连续的内存单元来存放,低位字节放在低地址单元中,高位字节放在高地址单元中。
字单元:即存放一个字型数据(16位)的内存单元,由两个连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节。
任何两个地址连续的内存单元,N号单元和N+1号单元,可以将它们看成两个内存单元,也可堪称一个地址为N的字单元中的高位字节单元(N+1)和低位字节单元(N)。
2.DS和[address]
CPU要读写一个内存单元的时候,必须先给出这个内存单元的地址,在8086CP...
由于内存单元是字节单元,所以一个字要用两个连续的内存单元来存放,低位字节放在低地址单元中,高位字节放在高地址单元中。
字单元:即存放一个字型数据(16位)的内存单元,由两个连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节。
任何两个地址连续的内存单元,N号单元和N+1号单元,可以将它们看成两个内存单元,也可堪称一个地址为N的字单元中的高位字节单元(N+1)和低位字节单元(N)。
2.DS和[address]
CPU要读写一个内存单元的时候,必须先给出这个内存单元的地址,在8086CP...
阅读全文 |
评论次数(2) |
浏览次数(1373) |
所属类型(汇编笔记)
[2010-07-09 23:43] 检测点3.1
(1) 在Debug中,用“d 0:01f”查看内存,结果如下。
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 2C 3B-AB BA 00 00 26 06 66 88
下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值。
mov ax,1
mov ds,ax
mov ax,[0000] AX=2662H
mov bx,[0001] BX=E626H
mov ax,bx AX=E626H
mov ...
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 2C 3B-AB BA 00 00 26 06 66 88
下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值。
mov ax,1
mov ds,ax
mov ax,[0000] AX=2662H
mov bx,[0001] BX=E626H
mov ax,bx AX=E626H
mov ...
阅读全文 |
评论次数(1) |
浏览次数(649) |
所属类型(汇编作业)
[2010-07-08 19:43] 实验1 查看CPU和内存,用极其指令和汇编指令编程
Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存其中的内容、内容的情况和在机器码级跟踪程序的运行。
Debug部分指令
-r 查看、改变CPU寄存器的内容 例:查看CPU寄存器(r);修改某一寄存器如ax(r ax)输入指令后enter,在:后面输入要写入的数据
-d 查看内存中的内容 格式(d 段地址:偏移地址)例:内存10000H处的内容:d 1000:0 debug将列出从指定单元内存开始的128个内存单元的内容;在一进入debug,用D命令查看,将列出debug预设的地址处的内容,接着使用D命令,可列出后续...
Debug部分指令
-r 查看、改变CPU寄存器的内容 例:查看CPU寄存器(r);修改某一寄存器如ax(r ax)输入指令后enter,在:后面输入要写入的数据
-d 查看内存中的内容 格式(d 段地址:偏移地址)例:内存10000H处的内容:d 1000:0 debug将列出从指定单元内存开始的128个内存单元的内容;在一进入debug,用D命令查看,将列出debug预设的地址处的内容,接着使用D命令,可列出后续...
阅读全文 |
评论次数(0) |
浏览次数(974) |
所属类型(汇编笔记)
[2010-07-08 15:00] 检测点2.3
下面的3条指令执行后,CPU几次修改IP?都是在什么时候?最后IP中的值是多少?
mov ax,bx IP+2
sub ax,ax IP+2
jmp ax IP+2 IP=0000
所以总共修改了四次IP
最后IP中的值是0...
mov ax,bx IP+2
sub ax,ax IP+2
jmp ax IP+2 IP=0000
所以总共修改了四次IP
最后IP中的值是0...
阅读全文 |
评论次数(2) |
浏览次数(669) |
所属类型(汇编作业)
[2010-07-08 14:59] 汇编语言——第三天
1.段寄存器
当8086CPU要访问内存时由CS(code segment)、DS(data segment)、SS(stack segment)、ES(extra segment)这4个段寄存器提供内存单元的段地址。
2.CS和IP
CS(代码段寄存器)和IP(指令指针寄存器)是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址。
8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。
8086CPU的工作过程简要描述如下:
(1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;
(2)IP=IP+所读取...
当8086CPU要访问内存时由CS(code segment)、DS(data segment)、SS(stack segment)、ES(extra segment)这4个段寄存器提供内存单元的段地址。
2.CS和IP
CS(代码段寄存器)和IP(指令指针寄存器)是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址。
8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。
8086CPU的工作过程简要描述如下:
(1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;
(2)IP=IP+所读取...
阅读全文 |
评论次数(0) |
浏览次数(1079) |
所属类型(汇编笔记)
[2010-07-06 23:48] 检测点2.2
(1)给定段地址为0001H,仅通过变化便宜地址寻址,CPU的寻址范围为__00010H__到__1000FH__.
因为段地址为0001H,所以基础地址为00010H,而一个段的长度最大为64KB时,寻址方位最大为1000FH。
(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到次单元。则SA应满足的条件为:最小为_1001H_,最大为_2000H_。
最大地址为:SA*10H+0H=20000H—>SA=2000H
最小地址为:SA*10H+FFFFH=2000H—>SA*10H=10001H(不是16的倍数)
则SA*10H=10010H...
因为段地址为0001H,所以基础地址为00010H,而一个段的长度最大为64KB时,寻址方位最大为1000FH。
(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到次单元。则SA应满足的条件为:最小为_1001H_,最大为_2000H_。
最大地址为:SA*10H+0H=20000H—>SA=2000H
最小地址为:SA*10H+FFFFH=2000H—>SA*10H=10001H(不是16的倍数)
则SA*10H=10010H...
阅读全文 |
评论次数(1) |
浏览次数(670) |
所属类型(汇编作业)