15,17章都是在调用dos,bios提供的各种中断了,当然其中也有自己的代码。
16章讲一种编程技巧。
但这样的讲述还远远不够,若要了解更多应该看微机原理了。若要真正掌握就该在裸机上自己写一个系统。
比如,本书关于显示缓冲区的描述。它究竟在内存中还是在显存中?若在内存中,绝没有道理在屏幕上显示出来的。任何能显示出来的东西,都应该经过控制显示器的芯片的作用。若在显存中,依书上的解释,应该是用in out 指令控制显示器的芯片,才能显示出来的。...


- [游客] NB.Replace("N","S")! 08/18 23:25
- [游客] MASMPlus默认是一个Win32的编辑器的,在你的代码行首加上一句注释;#Mode="DOS"就 02/04 21:51
- [shzhxh] 两位说的完全正确哦,其实我觉得我们并没有根本的分歧。我的目标是读源代码和用汇编编程,至于体验嘛我上大 11/23 09:10
- [Wednesday] 重要的是一种体验,和这种体验之后的真知,就算保护模式下的学习是一种虚拟的方式,但是大多数情况下这和实 11/22 20:06
- [feilong2008] 有道理. 不过,要看你将汇编用在什么地方了. WindowsAPI是做Windows编程必须要学 11/22 10:18
- [lion] 准确的说应该是:CPU是处理数据的,而CPU是通过执行指令来体现对数据的处理的,指令集合即是CPU能 11/21 14:21
- [游客] 我觉得这个接口更有哲学上的意义。两个人之间要交流也需要接口,这个接口就是语言;对于衣服来说袖子就是接 11/21 13:00
- [huibian] CPU一启动,就指向内存中的固定地址0FFFFH, ------------- 这个好像是fff 11/21 11:23
- [shzhxh] 这位仁兄一语中的啊!妙极妙极! 用来在DOS下运行的代码, 在这个MASMPlus上编译老是出错 11/21 11:20
- [huibian] 汇编语言说穿了就是处理数据的(数据结构+算法)。它把内存中的数据从这里搬到那里,或者从内存读入到寄存 11/21 11:19
[2013-01-07 16:32] 实验14之后
阅读全文 |
评论次数(0) |
浏览次数(303) |
所属类型(默认类型)
[2012-12-30 22:10] 第十一章
标志寄存器确实是重要,而且要记忆的东西较多。
对于218页里说的,cf和of之间没有任何关系。这么说也确实是可以的。不过若限定实际结果的范围,cf和of之间则有绝对的相关性了。
以(mov al,idata)型计算为例,
1,若实际结果小于8fh,则cf=of=0
2, 若实际结果在8fh到0ffh之间,则cf=0,of=1
3, 若实际结果在0ffh到180h之间,则cf=1,of=1
4, 若实际结果在180h到1ffh之间,则cf=1,of=0...
对于218页里说的,cf和of之间没有任何关系。这么说也确实是可以的。不过若限定实际结果的范围,cf和of之间则有绝对的相关性了。
以(mov al,idata)型计算为例,
1,若实际结果小于8fh,则cf=of=0
2, 若实际结果在8fh到0ffh之间,则cf=0,of=1
3, 若实际结果在0ffh到180h之间,则cf=1,of=1
4, 若实际结果在180h到1ffh之间,则cf=1,of=0...
阅读全文 |
评论次数(0) |
浏览次数(306) |
所属类型(汇编作业)
[2012-12-29 21:18] 实验十
实验10.3一直有很多bug,无法得出正确结果。
经过近一周的排查,终于顺利通过了。
经验教训:
1,强化了对loop指令的认识。
2,捉虫的重要性。
3,注释的重要性。
4,算法的重要性。
结论:
宏观结构上,要把注释写成算法的大纲。...
经过近一周的排查,终于顺利通过了。
经验教训:
1,强化了对loop指令的认识。
2,捉虫的重要性。
3,注释的重要性。
4,算法的重要性。
结论:
宏观结构上,要把注释写成算法的大纲。...
阅读全文 |
评论次数(0) |
浏览次数(245) |
所属类型(汇编作业)
[2012-12-24 16:20] 实验九
在屏幕中间显示Hello,world!
就是把字符串传到显示缓存区里,在字符串后面标0以确定字符结束。
这是学习本书以来所能写的第一个Hello,world!
高兴。...
就是把字符串传到显示缓存区里,在字符串后面标0以确定字符结束。
这是学习本书以来所能写的第一个Hello,world!
高兴。...
阅读全文 |
评论次数(0) |
浏览次数(255) |
所属类型(汇编作业)
[2012-12-19 22:29] 第五章
程序5.7很有意思,运行后只能重启或关机。
实验四第3个小题始终没想到应该给cx传什么值。
说是程序运行时,cx里存放的是程序的长度。万一要是程序长度超过64K,怎么办?...
实验四第3个小题始终没想到应该给cx传什么值。
说是程序运行时,cx里存放的是程序的长度。万一要是程序长度超过64K,怎么办?...
阅读全文 |
评论次数(0) |
浏览次数(253) |
所属类型(汇编作业)
[2012-12-18 22:47] 实验三
当用debug运行到
pop ax
的时候无法通过,freedos没有输入点了,不知道为什么。
若将
pop ax
改为
mov ax,ss:10;
add sp,2
依然存在这样的问题。
是不是从内存向寄存器传数据这类的命令,在debug中无法实现?...
pop ax
的时候无法通过,freedos没有输入点了,不知道为什么。
若将
pop ax
改为
mov ax,ss:10;
add sp,2
依然存在这样的问题。
是不是从内存向寄存器传数据这类的命令,在debug中无法实现?...
阅读全文 |
评论次数(0) |
浏览次数(270) |
所属类型(汇编作业)
[2012-12-16 22:48] ubuntu下搭建汇编语言的学习环境
1,安装virtualbox
sudo apt-get virtualbox
2,下载freedos
freedos.org/download
3,virtualbox下安装freedos
freedos.org官网上有教程
4,下载nasm
nasm.us
5,建立ubuntu和freedos之间的共享文件夹
dd if=/dev/zero of=floppy.img bs=1024 count=1440
mkfs.vfat floppy.img
mkdir floppy
sudo mount -o loop floppy.img floppy
将floppy.im...
sudo apt-get virtualbox
2,下载freedos
freedos.org/download
3,virtualbox下安装freedos
freedos.org官网上有教程
4,下载nasm
nasm.us
5,建立ubuntu和freedos之间的共享文件夹
dd if=/dev/zero of=floppy.img bs=1024 count=1440
mkfs.vfat floppy.img
mkdir floppy
sudo mount -o loop floppy.img floppy
将floppy.im...
阅读全文 |
评论次数(0) |
浏览次数(296) |
所属类型(默认类型)
[2012-12-16 20:31] 继续学习
看以前自己说的东西,真的很青涩啊。
时隔七,八年之后,还是买了王爽的这本汇编语言,继续学习。
用的ubuntu系统,已经在virtualbox上安装了freedos,目前正在考虑怎么把nasm安装进dos里。...
时隔七,八年之后,还是买了王爽的这本汇编语言,继续学习。
用的ubuntu系统,已经在virtualbox上安装了freedos,目前正在考虑怎么把nasm安装进dos里。...
阅读全文 |
评论次数(0) |
浏览次数(252) |
所属类型(默认类型)
[2007-11-22 09:41] 汇编能不能这么学?
Windows是在保护模式下运行的,那么在Windows下打开的命令行窗口肯定也是保护模式下的。用Debug修改和查看内存信息,运行用16位编译器编译出的可执行文件,貌似是在直接指挥硬件,但那只是Windows虚拟出的“硬件”,实际上对于真正的硬件连边都没沾到。而且用32位编译器汇编,拿出来就可以直接用了,所以偶打算从32位Windows汇编入手学习,说穿了就是调用API函数,借此以了解Windows的构架和保护模式的特点。我相信学到一定程度后自然而然就知道怎么透过Windows操控真正的硬件了,那时才是真正汇编的开始啊。
而且,如果我买电脑,肯定是要装Linux的,除非Windows完全...
而且,如果我买电脑,肯定是要装Linux的,除非Windows完全...
阅读全文 |
评论次数(3) |
浏览次数(679) |
所属类型(默认类型)
[2007-11-21 10:35] 我的第一个程序
我的第一个程序,只是一个很简单的HelloWorld,一直出错,纠错就用了一个半小时!总算通过了~
用MASMPlus编辑的,在CMD窗口下编译的。
写了个批处理命令:comlink.bat
\masmplus\bin\ml /c /coff /Cp %1.asm
\masmplus\bin\link /subsystem:windows %1
源程序如下:
.386p
.model flat,stdcall
option casemap:none
include \masmplus\include\windows.inc
include \masmplus\include...
用MASMPlus编辑的,在CMD窗口下编译的。
写了个批处理命令:comlink.bat
\masmplus\bin\ml /c /coff /Cp %1.asm
\masmplus\bin\link /subsystem:windows %1
源程序如下:
.386p
.model flat,stdcall
option casemap:none
include \masmplus\include\windows.inc
include \masmplus\include...
阅读全文 |
评论次数(4) |
浏览次数(812) |
所属类型(汇编作业)
『 查看更多文章 』