- [游客] 嗯。总结的很不错。尤其是4、7这两处,很多兄弟有时候还犯糊涂呢。 不错。 02/05 16:23
- [crazyman] 总结的很好啊。 02/03 11:26
- [tomato] 很正确!继续努力! 01/23 12:04
- [crazyman] 总结的不错。 一起加油。 01/20 11:46
- [younggay] 心得丢失了?? 什么意思呀? 01/19 17:04
- [younggay] 这次楼上的说对了。看书要仔细要。 01/19 17:00
- [qiongshuai] 哦,谢谢提醒,太粗心了 CPU寻址范围为0001:0H~1000:FH 01/18 21:51
- [qiongshuai] 呵呵还是有遗漏啊。谢谢指出。 书上的意思是:先改变IP再执行指令。 1)IP=IP+3(修改 01/18 18:36
- [游客] 笔记要过心。 01/18 17:55
- [游客] 第一题不对。 寻址范围是指的物理地址范围,不是偏移地址的范围。 01/18 17:54
[2009-03-21 10:12] 汇编指令: LGDT、LIDT、LLDT、LMSW、LOADALL、LOADALL286、LOCK、LODSB、LODSW、LODSD
转...
阅读全文 |
评论次数(0) |
浏览次数(523) |
所属类型(我随便说,您随便看)
[2009-03-20 11:14] WINDOWS资源编译器出错信息
ACCELERATORS语句的type域应包含ASCⅡ值或VIRTKEY值。
BEGIN expected in table
BEGIN关键字应紧跟在ACCELERATORS关键字后
BEGIN expected in dialog
BEGIN关键字应紧跟在DIALOG关键字后
BEGIN expected in menu
BEGIN关键字应紧跟在MENU关键字后
BEGIN expected in rcdate
BEGIN关键字紧跟在RCDATE关键...
BEGIN expected in table
BEGIN关键字应紧跟在ACCELERATORS关键字后
BEGIN expected in dialog
BEGIN关键字应紧跟在DIALOG关键字后
BEGIN expected in menu
BEGIN关键字应紧跟在MENU关键字后
BEGIN expected in rcdate
BEGIN关键字紧跟在RCDATE关键...
阅读全文 |
评论次数(0) |
浏览次数(1079) |
所属类型(我随便说,您随便看)
[2009-02-28 10:01] 第九章
1.可以修改IP,或同时修改CS和IP的指令统称为转移指令,转移指令就是可以控制CPU执行内存中某处代码的指令。
2.只修改IP,称为段内转移,段内转移又分为:短转移和近转移,短转移IP的修改范围为-128~127.近转移IP的修改范围为-32768~32767;同时修改IP和CS,称为段间转移。
3.JMP依据位移进行转移
JMP SHORT 标号 实现的是短转移 功能:(IP)=(IP)+8位位移
1)8位位移=标号处的地址-JMP指令后的第一个字节的地址
2)SHORT指明此处的位移为8位位移
3)8位位移的范围是-128~127,用补码表示
4)8位位移...
2.只修改IP,称为段内转移,段内转移又分为:短转移和近转移,短转移IP的修改范围为-128~127.近转移IP的修改范围为-32768~32767;同时修改IP和CS,称为段间转移。
3.JMP依据位移进行转移
JMP SHORT 标号 实现的是短转移 功能:(IP)=(IP)+8位位移
1)8位位移=标号处的地址-JMP指令后的第一个字节的地址
2)SHORT指明此处的位移为8位位移
3)8位位移的范围是-128~127,用补码表示
4)8位位移...
阅读全文 |
评论次数(0) |
浏览次数(525) |
所属类型(自我总结)
[2009-02-14 14:45] 第八章
1.REG表示一个寄存器。SREG表示一个段寄存器。
REG的集合包括:AX,BX,CX,DX,AH,AL,BH,BL,CH,CL,DH,DL,SP,BP,SI,DI
SREG的集合包括:DS,SS,CS,ES
2.BX,SI,DI,BP
1)在8086CPU中,只有这4个寄存器可以用在“[...]”中来进行内存单元的寻址。
2)在“[...]”中,这4个寄存器可以单个出现,或者只能以4种组合出现:BX和SI,BX和DI,BP和SI,BP和DI.
3)只要在“[...]”中使用寄存器BP,而指令中没有显性的给出段地址,段地址就默认在SS中。(这一点有时会忘,注意一下...
REG的集合包括:AX,BX,CX,DX,AH,AL,BH,BL,CH,CL,DH,DL,SP,BP,SI,DI
SREG的集合包括:DS,SS,CS,ES
2.BX,SI,DI,BP
1)在8086CPU中,只有这4个寄存器可以用在“[...]”中来进行内存单元的寻址。
2)在“[...]”中,这4个寄存器可以单个出现,或者只能以4种组合出现:BX和SI,BX和DI,BP和SI,BP和DI.
3)只要在“[...]”中使用寄存器BP,而指令中没有显性的给出段地址,段地址就默认在SS中。(这一点有时会忘,注意一下...
阅读全文 |
评论次数(0) |
浏览次数(531) |
所属类型(自我总结)
[2009-02-14 10:35] 第七章
1.AND 指令:逻辑与指令,按位进行与运算,通过该指令可将操作对象的相应位设为0,其他位不变。
OR 指令:逻辑或指令,按位进行与运算,通过该指令可将操作对象的相应位设为1,其他位不变。
61H表示a,41H表示A,大写与小写之间相差20H,单引号‘’指明数据是以字符形式给出的。
2.[bx+idata]表示一个内存单元,它的偏移地址为(bx)+idata。通常可以用来进行数组的处理。
SI,DI和BX的功能相近的寄存器,SI和DI不能够分成两个8位寄存器来使用,SI通常当作源地址的偏移量,DI通常当作目的地址的偏移量。
3.[idata]用一个常量来表示地址,可用于直接定...
OR 指令:逻辑或指令,按位进行与运算,通过该指令可将操作对象的相应位设为1,其他位不变。
61H表示a,41H表示A,大写与小写之间相差20H,单引号‘’指明数据是以字符形式给出的。
2.[bx+idata]表示一个内存单元,它的偏移地址为(bx)+idata。通常可以用来进行数组的处理。
SI,DI和BX的功能相近的寄存器,SI和DI不能够分成两个8位寄存器来使用,SI通常当作源地址的偏移量,DI通常当作目的地址的偏移量。
3.[idata]用一个常量来表示地址,可用于直接定...
阅读全文 |
评论次数(0) |
浏览次数(494) |
所属类型(自我总结)
[2009-02-06 21:59] 第六章
1.程序取得所需空间的方法有两种,一是在加载程序的时候为程序分配,再就是程序在执行的过程中向系统申请。我们可以在程序中,定义我们希望处理的数据,这些数据就会被编译,连接程序作为程序的一部分写到可执行文件中。当可执行文件中的程序被加载入内存时,这些数据也同时被加载入内存中。与此同时,我们要处理的数据也就自然而然的获得了存储空间。
2.END的作用,除了通知编译器程序结束外,还可以通知编译器程序的入口在什么地方。END START 说明了程序的入口,这个入口将被写入可执行文件的描述信息,可执行文件中的程序被加载入内存后,CPU的CS:IP被设置指向这个入口。
3.可执行文件中的描述信息...
2.END的作用,除了通知编译器程序结束外,还可以通知编译器程序的入口在什么地方。END START 说明了程序的入口,这个入口将被写入可执行文件的描述信息,可执行文件中的程序被加载入内存后,CPU的CS:IP被设置指向这个入口。
3.可执行文件中的描述信息...
阅读全文 |
评论次数(0) |
浏览次数(614) |
所属类型(自我总结)
[2009-02-03 22:10] 第五章
1.完整的描述一个内存单元,需要两种信息:1)内存单元的地址。2)内存单元的长度(类型)。
2.在本章中[bx]主要用来表示一个内存单元,偏移地址在bx中。loop表示循环。
3.描述性符号“()”表示一个寄存器或一个内存单元中的内容。如:(ax)表示ax中的内容。“()”中的内容可以有3中类型:1)寄存器名;2)段寄存器名;3)内存单元的物理地址(一个20位数据)。“(x)”所表示的数据有两种类型:字节和字。到底是那种类型由寄存器名或具体的运算决定。
4.loop指令的格式:loop 标号 ,CPU执行loop指令的时候,要进行两步操作,1)(CX)=(CX)-1;2)判断...
2.在本章中[bx]主要用来表示一个内存单元,偏移地址在bx中。loop表示循环。
3.描述性符号“()”表示一个寄存器或一个内存单元中的内容。如:(ax)表示ax中的内容。“()”中的内容可以有3中类型:1)寄存器名;2)段寄存器名;3)内存单元的物理地址(一个20位数据)。“(x)”所表示的数据有两种类型:字节和字。到底是那种类型由寄存器名或具体的运算决定。
4.loop指令的格式:loop 标号 ,CPU执行loop指令的时候,要进行两步操作,1)(CX)=(CX)-1;2)判断...
阅读全文 |
评论次数(1) |
浏览次数(680) |
所属类型(自我总结)
[2009-01-22 11:13] 第四章
1.伪指令:没有对应的机器指令,最终不被CPU所执行,而是由编译器来执行指令的。
SEGMENT...ENDS是一对成对使用的伪指令,定义一个段,必须有一个段名来标识。
END标记整个程序的结束。
ASSUME将一段寄存器和程序中的某一个用SEGMENT...ENDS定义的段相关联。
标号:指代了一个地址,也是一个段的名称,这个段的名称最终将被编译连接程序处理为一个段的段地址。
2.
目的 相关指令 指令性质 指令执行者
通知编译器一个段结束 段名 ENDS 伪指令 编译时,编译器执行
通知编译器整个段结束 END ...
SEGMENT...ENDS是一对成对使用的伪指令,定义一个段,必须有一个段名来标识。
END标记整个程序的结束。
ASSUME将一段寄存器和程序中的某一个用SEGMENT...ENDS定义的段相关联。
标号:指代了一个地址,也是一个段的名称,这个段的名称最终将被编译连接程序处理为一个段的段地址。
2.
目的 相关指令 指令性质 指令执行者
通知编译器一个段结束 段名 ENDS 伪指令 编译时,编译器执行
通知编译器整个段结束 END ...
阅读全文 |
评论次数(1) |
浏览次数(660) |
所属类型(自我总结)
[2009-01-21 22:42] 检测点3.1~3.2
1)在Debug中,用“d 0:0 1F”查看内存,结果如下:
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0000 62 26 E6 D6 CC 2E 3C 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=E...
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0000 62 26 E6 D6 CC 2E 3C 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=E...
阅读全文 |
评论次数(1) |
浏览次数(743) |
所属类型(汇编作业)
[2009-01-19 22:30] 第三章(3.1--3.5 | 3.6--3.10)
1.在内存中存储时,由于内存单元是字节单元(一个单元存放一个字节),则一个字要用两个地址连续的内存单元来存放,这个字的低字节放在低地址单元,高字节存放在高地址单元。
2[]表示一个内存单元,[]中的数据表示内存单元的偏移地址。
3.MOV 寄存器,数据
MOV 寄存器,寄存器
MOV 寄存器,内存单元(可以互相交换)
MOV 段寄存器,寄存器(可以互相交换)
MOV 段寄存器,内存单元
SUB/ADD 寄存器,数据
SUB/ADD 寄存器,寄存器
SUB/ADD 寄存器,内存单元...
2[]表示一个内存单元,[]中的数据表示内存单元的偏移地址。
3.MOV 寄存器,数据
MOV 寄存器,寄存器
MOV 寄存器,内存单元(可以互相交换)
MOV 段寄存器,寄存器(可以互相交换)
MOV 段寄存器,内存单元
SUB/ADD 寄存器,数据
SUB/ADD 寄存器,寄存器
SUB/ADD 寄存器,内存单元...
阅读全文 |
评论次数(1) |
浏览次数(666) |
所属类型(自我总结)
『 查看更多文章 』