10.1
retf前须将欲调转处的CS,IP按序入栈。
mov ax,(cs);注:经[starrynight]批改提示,此处CS应填1000H
push ax
mov ax,(sffset start)
push ax
10.2 AX=06H
call s
注:将本行IP=IP+本指令占用字节数,sp=sp-2,压栈,转至IP=off
执行后:栈中[SS*16+SP-2]=IP*(下行指令IP)
所以:AX=[SS*16+SP-2]=0006H
10.3 AX=1010H
CALL far ptr s
注:sp=sp-2,push cs;sp=sp-2,将...
- [游客] 我正在学习,虽然离开学校有5年了,但看王老师的书感觉还是很容易理解,真有一种相见恨晚的感觉 03/05 11:36
- [游客] 想问问,假如把年份的数据由四位改为六位。如将1975改为600000,1976改为600001……依 05/31 19:47
- [mess] 到了第九章能屏幕显示东西了,可以直接运行看看程序的正确性了~ 如上面这样,当然debug仍然很重要 12/05 14:35
- [aimy] 最后怎么执行啊,我用DEBUG执行,最后的-G还在上面,不能像你那样后面什么都没有 11/28 19:30
- [游客] 感谢搏主如此精彩的讲解. 10/27 23:21
- [游客] ;年份数据,84字节 db "1975",'1976',"1977","1978","1979" 10/04 10:29
- [yugong] 好书,顶! 09/22 16:23
- [dickyq] 呵呵,我学习是看PDF版,最后买了一本收藏,如果王爽还有别的书我一定买!表示对这位老师的尊重! 09/22 00:15
- [musicvs] 呵呵~我觉得我挺幸运的,买第一本汇编教材就买到这本,找汇编学习网站,第一个就找到这个~哇哈~太开心了 09/21 20:42
- [lwbfq] 确实不错1 09/21 20:40
[2008-07-20 13:18] 第10章:检测点
阅读全文 |
评论次数(3) |
浏览次数(449) |
所属类型(汇编作业)
[2008-07-17 22:28] 第九章检测点
9.1
9.1.1
分析程序第一行的偏移地址是0000H
语句JMP word ptr [bx+1]
是读取数据区0001H单元起始的字单元。即[0001][0002]2个单元。
则第一行必须满足如下要求
DB ??H,0H,0H,??H
DW 00??H,??00H
DD ??0000??H
;注: ?<10H
9.1.2
程序第一行的段址是CS,偏移地址是0000H。
JMP dword ptr ds:[0]读取数据区第0,1号单元为IP偏移地址,第2、3号单元为CS段址。
因此应写数据区0,1单元为0H,2、3单元为CS值。即:
MOV word pt...
9.1.1
分析程序第一行的偏移地址是0000H
语句JMP word ptr [bx+1]
是读取数据区0001H单元起始的字单元。即[0001][0002]2个单元。
则第一行必须满足如下要求
DB ??H,0H,0H,??H
DW 00??H,??00H
DD ??0000??H
;注: ?<10H
9.1.2
程序第一行的段址是CS,偏移地址是0000H。
JMP dword ptr ds:[0]读取数据区第0,1号单元为IP偏移地址,第2、3号单元为CS段址。
因此应写数据区0,1单元为0H,2、3单元为CS值。即:
MOV word pt...
阅读全文 |
评论次数(2) |
浏览次数(386) |
所属类型(汇编作业)
[2008-07-16 09:33] 第八章:阶段总结(二)
三、内存寻址
8086CPU内存寻址采取段地址SA+偏移地址EA的方式。即:物理地址=段寄存器×16+偏移地址。
寻址格式为:(sreg:)[...] 其中缺省sreg:时,为[...]式中参数的默认段寄存器。
[...]式中可由如下组成[bx(bp)+si(di)+idata],bx与bp;si与di不能同时出现在同一个表达式中,含BP的表达式,默认段地址是SS,否则为DS。
按[...]式中的结构,可分为
直接寻址:[idata]
寄存器间接寻址:[bx]
寄存器相对寻址:[bx+idata] 常用于模拟二维数组
基址变址寻址:[bx+si] 用于二维数组
相对基址变址寻...
8086CPU内存寻址采取段地址SA+偏移地址EA的方式。即:物理地址=段寄存器×16+偏移地址。
寻址格式为:(sreg:)[...] 其中缺省sreg:时,为[...]式中参数的默认段寄存器。
[...]式中可由如下组成[bx(bp)+si(di)+idata],bx与bp;si与di不能同时出现在同一个表达式中,含BP的表达式,默认段地址是SS,否则为DS。
按[...]式中的结构,可分为
直接寻址:[idata]
寄存器间接寻址:[bx]
寄存器相对寻址:[bx+idata] 常用于模拟二维数组
基址变址寻址:[bx+si] 用于二维数组
相对基址变址寻...
阅读全文 |
评论次数(1) |
浏览次数(476) |
所属类型(汇编作业)
[2008-07-16 09:32] 第八章:阶段总结(一)
第八章:阶段总结笔记
理清概念、夯牢基础、勤于复习、善于总结。这是我自学中习惯坚持的十六字方针。~0~
第八章以后知识点将愈来愈难,但多数是介绍指令及与周边设备控制通信机制。因此扎扎实实地掌握前八章内容,才能更快地学懂学通后面知识,不然就会欲速则不达,俗语的磨刀不误砍柴功就是讲的这个道理。因此希望与我一样初学汇编的朋友,要认真地用自己的理解对前八章作一个深入的总结。
一、数的表达
2进制:01010101...的形式,1位为1bit,8个bit组成1个Byte,记为1B称为1个字节。汇编伪码约定:byte字节:word字;dword双字。段内定义数据时依次简写成db;dw;dd。
1...
理清概念、夯牢基础、勤于复习、善于总结。这是我自学中习惯坚持的十六字方针。~0~
第八章以后知识点将愈来愈难,但多数是介绍指令及与周边设备控制通信机制。因此扎扎实实地掌握前八章内容,才能更快地学懂学通后面知识,不然就会欲速则不达,俗语的磨刀不误砍柴功就是讲的这个道理。因此希望与我一样初学汇编的朋友,要认真地用自己的理解对前八章作一个深入的总结。
一、数的表达
2进制:01010101...的形式,1位为1bit,8个bit组成1个Byte,记为1B称为1个字节。汇编伪码约定:byte字节:word字;dword双字。段内定义数据时依次简写成db;dw;dd。
1...
阅读全文 |
评论次数(6) |
浏览次数(1272) |
所属类型(汇编作业)
[2008-07-10 20:10] 第六章: 检测6.1-6.2
检测6.1
【分析】
程序的数据段,是在以CS为段地址,偏移地址为0H处起的8个连续字单元内。因此在写出入时,段地址就是CS,偏移地址从0H起,每次以2为步进单位的字单元内。
由于我们将预读数据区0:0~0:015的0000H做为数据段地址DS传值。因此写入的段址就为CS。其偏移地址放到BX中,这样就可以(MOV CS:[BX],寄存器)的形式写入。
这时寄存器是AX,补上的语句就是MOV CS:[BX],AX。
注:这里的0:0~0:015如果不是印刷有误,就应将15看成是16进制的0FH。仅8个字单元是装不下0:0~0:015H单元中的数据的。
assume cs:code_s...
【分析】
程序的数据段,是在以CS为段地址,偏移地址为0H处起的8个连续字单元内。因此在写出入时,段地址就是CS,偏移地址从0H起,每次以2为步进单位的字单元内。
由于我们将预读数据区0:0~0:015的0000H做为数据段地址DS传值。因此写入的段址就为CS。其偏移地址放到BX中,这样就可以(MOV CS:[BX],寄存器)的形式写入。
这时寄存器是AX,补上的语句就是MOV CS:[BX],AX。
注:这里的0:0~0:015如果不是印刷有误,就应将15看成是16进制的0FH。仅8个字单元是装不下0:0~0:015H单元中的数据的。
assume cs:code_s...
阅读全文 |
评论次数(3) |
浏览次数(432) |
所属类型(汇编作业)
[2008-07-07 17:38] 检测点:3.1-3.2
3
3.1.1
DS:数据的段地址,CS:指令的段地址,IP:指令的偏移地址
mov AX,1H (AX=0001H)
MOV DS,AX (DS=0001H) 设定数据段起始地址为00010H。
MOV AX,[0000] AX=2662H
MOV BX,[0001] BX=E626h
MOV AX,BX AX=E626H
MOV AX,[0000] AX=2662H
MOV BX,[0002] BX=D6E6H
ADD AX,BX AX=ADCCH
ADD AX,[0004] AX=DC98H
MOV AX,0H AX...
3.1.1
DS:数据的段地址,CS:指令的段地址,IP:指令的偏移地址
mov AX,1H (AX=0001H)
MOV DS,AX (DS=0001H) 设定数据段起始地址为00010H。
MOV AX,[0000] AX=2662H
MOV BX,[0001] BX=E626h
MOV AX,BX AX=E626H
MOV AX,[0000] AX=2662H
MOV BX,[0002] BX=D6E6H
ADD AX,BX AX=ADCCH
ADD AX,[0004] AX=DC98H
MOV AX,0H AX...
阅读全文 |
评论次数(3) |
浏览次数(483) |
所属类型(汇编作业)
[2008-07-06 18:53] 检测点:2.1-2.2-2.3
检测点2.1-2.3
2.1
2.1.1.
16位寄存器可视为由高8位与低8位两个不相干的8位寄存器组成。因此当单独使用时高低8位寄存器时,之间数值无联系不存在进位等问题。如AX=AH组连AL,对AH、AL的操做,只是影响AX的高低8位数值,如AX=ABCD,无论对AH怎样操做,AX变化的只是四位中的前两位**,即AX=**CD。同样,AL操做结果是AX=AB**。
2.1.2.
目前只学了传值MOV与累加ADD
MOV AX,2
ADD AX,AX
ADD AX,AX
ADD AX,AX
结果在AX中就是2*2*2*2。
2.2
2.2.1:
...
2.1
2.1.1.
16位寄存器可视为由高8位与低8位两个不相干的8位寄存器组成。因此当单独使用时高低8位寄存器时,之间数值无联系不存在进位等问题。如AX=AH组连AL,对AH、AL的操做,只是影响AX的高低8位数值,如AX=ABCD,无论对AH怎样操做,AX变化的只是四位中的前两位**,即AX=**CD。同样,AL操做结果是AX=AB**。
2.1.2.
目前只学了传值MOV与累加ADD
MOV AX,2
ADD AX,AX
ADD AX,AX
ADD AX,AX
结果在AX中就是2*2*2*2。
2.2
2.2.1:
...
阅读全文 |
评论次数(18) |
浏览次数(1852) |
所属类型(汇编作业)
[2008-07-05 14:52] 检测点1.1:深入理解二概念,不知有误否,请指教。
一、单位:比特(bit)
比特(bit)可形象地理解成容量单位。1bit表示可区分0与1两个值的一个二进制数位。连续的8个bit组成了一个字节Byte,用图表示就是如下。
□□□□□□□□---1B。其中每个□就是一个bit。
而KB,MB,GB是为了方便表示大容量而推出的单位,
□□□□□□□□----- 1B
□□□□□□□□-----1B
□□□□□□□□-----2B
........ 1KB
.....
□□□□□□□□----...
比特(bit)可形象地理解成容量单位。1bit表示可区分0与1两个值的一个二进制数位。连续的8个bit组成了一个字节Byte,用图表示就是如下。
□□□□□□□□---1B。其中每个□就是一个bit。
而KB,MB,GB是为了方便表示大容量而推出的单位,
□□□□□□□□----- 1B
□□□□□□□□-----1B
□□□□□□□□-----2B
........ 1KB
.....
□□□□□□□□----...
阅读全文 |
评论次数(3) |
浏览次数(443) |
所属类型(汇编作业)
页码数(1):
1