不再疑惑,汇编之后 文章作者:伶妖
学习计算机知识的目的是为了使用计算机解决问题。为了更好的使用计算机我们必须要学会能与计算机直接沟通和交流的汇编语言。在我们认真学完《汇编语言》之后,就可以和计算机进行基本的沟通和交流了,也就是有了基础,但只有这些基础还不够,我们还需要更多的计算机方面知识。作为一个渴望知识和并不满足于现状的你,一定会想下一步该学习什么?任何简单的答复都让你质疑。但是你已学完了《汇编语言》,你应该对机器有了了解,也具备了独立判断下一步该学什么的能力了。下面是汇编相关的几个方面的介绍和分析,你看你应该从那方面入手进行下一步的学习。
1、从汇编语言自...


- [游客] 博主真是我偶像啊,精神可嘉,值得学习!!! 01/30 01:53
- [游客] 不错,但还是有点浑 04/18 21:30
- [游客] 楼主的学习精神可佳 在下佩服佩服 希望你有更多好文章发表 让我们大家共同进步 03/19 23:48
- [游客] 很好!! 这种精神值得学习 发扬! 11/28 08:52
- [nono] 我刚学汇编,很有帮助,写了。。。 10/31 19:33
- [游客] 谢谢了,哈 04/18 17:02
- [游客] 很好!对我很有帮助! 03/11 21:51
- [游客] 大家共同促进中国的计算机事业吧! 02/27 19:41
- [gjcqfdy] 我也在用emu8086 由于在做实验七的时候发现emu8086好像不支持 bx.idata[si]形 02/16 00:15
- [laoshu0824] 太好了,,,我很仔细的读了王爽老师的第一章,,不过看了这篇文章侯,,发现有几个知识点我还是没有注意到 12/15 15:42
- [yc2010] 这个问题是实验16中的代码不懂。 table: dw sub1,sub2,sub3,sub4 09/07 21:55
- [lxc345] 谢谢!!! 希望以后多多指教啊. 05/06 16:07
[2008-06-25 03:01] [转载]不再疑惑,汇编之后
阅读全文 |
评论次数(0) |
浏览次数(1291) |
所属类型(默认类型)
[2008-05-18 22:03] 第16章学习感想-part2
续part1:
问题2:对P278倒数第7行的理解?
原书P278倒数第7行的内容为:“在后面加有":"号的地址标号,只能在代码段中使用,不能在其他段中使用。”
这个问题是也是由实验16引起的,我发现在实验16中的table后面无论带不带":"号,都可以使新的int 7ch中断服务程序正确执行,具体情况见(图片过多,过大,故做成pdf上传到网盘了)http://www.namipan.com/d/9da7d4a60748af5cf77f14a53f2db3981dd062763eb00800其中p289wu代表table不带:号,而p289相反;因此认为“code段中的数据标号可带:...
问题2:对P278倒数第7行的理解?
原书P278倒数第7行的内容为:“在后面加有":"号的地址标号,只能在代码段中使用,不能在其他段中使用。”
这个问题是也是由实验16引起的,我发现在实验16中的table后面无论带不带":"号,都可以使新的int 7ch中断服务程序正确执行,具体情况见(图片过多,过大,故做成pdf上传到网盘了)http://www.namipan.com/d/9da7d4a60748af5cf77f14a53f2db3981dd062763eb00800其中p289wu代表table不带:号,而p289相反;因此认为“code段中的数据标号可带:...
阅读全文 |
评论次数(3) |
浏览次数(689) |
所属类型(默认类型)
[2008-05-18 22:02] 第16章学习感想-part1
写在前面的话:搞了差不多两个星期,终于把第16章弄完了,感觉第16章是最值得研究的一章,也是很重要的一章。这几天一直在研究有关数据标号的问题,虽然也得到了一些结论,但还是有一些问题没有解决,想了很久,觉得实在是非已之力所能为,决定还是先把得到的结论发出来吧,剩下的疑点在以后的课程中应该会慢慢得到解决的。本文采用了实验验证的方式来证明自己的猜想,并且为了防止偶然误差干扰结论的正确性,故几乎每个实验都采用了平行相互对照的实验,以排除偶然的人为的或其它因素的干扰。
解决的问题:
编译器对标号的处理?解决2个子问题:1)、对自己的实验16程序进行解说;2)、小小地解释一下“在中断服务程序用到直...
解决的问题:
编译器对标号的处理?解决2个子问题:1)、对自己的实验16程序进行解说;2)、小小地解释一下“在中断服务程序用到直...
阅读全文 |
评论次数(7) |
浏览次数(992) |
所属类型(默认类型)
[2008-05-12 22:00] 实验中发现的有趣现象-定义数据标号的段应该置于何处?
在做检测点16.2的时候,有一次突发奇想,把data段放在code段后面(其实在实验5就有这样的做法出现),并且依然正确填充了检测点16.2的代码mov ax,data | mov es,ax ,接着我拿它进去编译、连接,发现一个怪现象:编译可以通过,但无法通过连接!
图见http://www.asmedu.net/blog/user/bigimg.jsp?neighborId=9499&pic=pic_1210598601109.jpg
而原来的代码是可以正常通过编译的:http://www.asmedu.net/blog/user/bigimg.jsp?neighborId=94...
图见http://www.asmedu.net/blog/user/bigimg.jsp?neighborId=9499&pic=pic_1210598601109.jpg
而原来的代码是可以正常通过编译的:http://www.asmedu.net/blog/user/bigimg.jsp?neighborId=94...
阅读全文 |
评论次数(5) |
浏览次数(643) |
所属类型(默认类型)
[2008-05-10 16:08]
由检测点16.2引发的一场讨论
那天在论坛上看到这个帖子,觉得有争议,所以收藏了,今天自己动手做了一下,并把结果发上来。
先把检测点16.2的代码附上:
assume cs:code,es:data
data segment
a db 1,2,3,4,5,6,7,8
b dw 0
data ends
code segment
start:________
_________
mov si,0
mov cx,8
s:mov al,a[si]
mov ah,0
add b,ax
inc si
l...
先把检测点16.2的代码附上:
assume cs:code,es:data
data segment
a db 1,2,3,4,5,6,7,8
b dw 0
data ends
code segment
start:________
_________
mov si,0
mov cx,8
s:mov al,a[si]
mov ah,0
add b,ax
inc si
l...
阅读全文 |
评论次数(15) |
浏览次数(2672) |
所属类型(默认类型)
[2008-04-22 16:43] 浅谈计算机中的数值表示
昨天在论坛上看到一个关于补码计算的帖子,然后自己也去计算一下,发觉些东西还是会遗忘的,所以回去复习了一下这方面的知识,顺便把它发上来吧,虽有班门弄斧之嫌,但希望对大家有用。
计算机中的数是用二进制表示的,数的符号也只能用0和1来表示,一般用最高有效位表示数的符号,正数用0表示,负数用1表示。对于数值信息的表示方法,常用的有原码,反码和补码,各种码制有不同的定义方法和表示范围。
计算机中数的表示方法
1.机器数和真值
计算机中使用的包含符号位的数,称为机器数。机器数所表示的真实值叫真值。
如:10110101(机器数) 真值:-53D
00101010(...
计算机中的数是用二进制表示的,数的符号也只能用0和1来表示,一般用最高有效位表示数的符号,正数用0表示,负数用1表示。对于数值信息的表示方法,常用的有原码,反码和补码,各种码制有不同的定义方法和表示范围。
计算机中数的表示方法
1.机器数和真值
计算机中使用的包含符号位的数,称为机器数。机器数所表示的真实值叫真值。
如:10110101(机器数) 真值:-53D
00101010(...
阅读全文 |
评论次数(1) |
浏览次数(722) |
所属类型(默认类型)
[2008-04-19 22:26]
新手应该知道的指令“禁忌”(待续)
*数据传送指令
说到数据传送指令,恐怕就会让人一下子想到大名鼎鼎的mov指令了,不过它的“禁忌”也是最多的哦。
1)不能在两个内存单元之间直接进行数据传送。
2)两个段寄存器之间不允许数据的直接传送,立即数不能直接送到段寄存器,在这些情况下都要用通用 寄存器来过渡
3)立即数、代码段寄存器CS和指令指针寄存器IP不能作为目的操作数。(注:若汇编指令有两个操作数 时,前面那个是目的操作数,后面那个是源操作数,这一点要记住)
4)用BX、SI、DI间接寻址时,默认的段寄存器是DS,用BP间接寻址时,默认的段寄存器是SS。但是,必 要时可以使用段超越的方式进行寻址,如ds:[b...
说到数据传送指令,恐怕就会让人一下子想到大名鼎鼎的mov指令了,不过它的“禁忌”也是最多的哦。
1)不能在两个内存单元之间直接进行数据传送。
2)两个段寄存器之间不允许数据的直接传送,立即数不能直接送到段寄存器,在这些情况下都要用通用 寄存器来过渡
3)立即数、代码段寄存器CS和指令指针寄存器IP不能作为目的操作数。(注:若汇编指令有两个操作数 时,前面那个是目的操作数,后面那个是源操作数,这一点要记住)
4)用BX、SI、DI间接寻址时,默认的段寄存器是DS,用BP间接寻址时,默认的段寄存器是SS。但是,必 要时可以使用段超越的方式进行寻址,如ds:[b...
阅读全文 |
评论次数(11) |
浏览次数(2164) |
所属类型(默认类型)
[2008-04-16 13:53] 给大家介绍两个windows下的汇编工具
不知道大家用的是什么工具?我现在用的是Visual Assembly 2006,它集成了编辑器,编译器等功能,写汇编程序不再用跑到DOS下去了,直接在xp下就可以完成。编译也不再用手工输入了,直接点击就可以帮你完成编译。编辑时支持语法高亮,方便查错。实在是不错的一个工具。且是绿色免安装版的,惟一要注意的是,不能把它放在文件夹名有空格的文件夹里。见上图
下面贴出链接:http://www.fs2you.com/files/bf706dcf-0b70-11dd-ba07-0014221b798a/
还有一个叫Emu8086.v3.07c汉化云龙绿化版,因为没用过,没有发言权,不过好像也蛮...
下面贴出链接:http://www.fs2you.com/files/bf706dcf-0b70-11dd-ba07-0014221b798a/
还有一个叫Emu8086.v3.07c汉化云龙绿化版,因为没用过,没有发言权,不过好像也蛮...
阅读全文 |
评论次数(3) |
浏览次数(1434) |
所属类型(默认类型)
[2008-04-13 18:58] 关于段使用设定的问题
今天在论坛上看到堪误版块里说P127的程序7.1的程序有问题。于是便上机试试(以前看了没试,呵呵),结果还真的是不能通过编译的。于是加上 cs:code,然后就可以正确运行了。这个可能比较容易理解,程序不全的时候,肯定会出错。但是,真的要每个段都要先这样进行设定吗?我做了如下测试:
在P125中的(5)中的代码是这样的:
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b segment
c segment
db 0,0,0,0,0,0,0,0
...
在P125中的(5)中的代码是这样的:
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b segment
c segment
db 0,0,0,0,0,0,0,0
...
阅读全文 |
评论次数(3) |
浏览次数(571) |
所属类型(默认类型)
页码数(1):
1