

- [younggay] 书上的例题要自己消化吸收了才好。可以自己变个样子做一下。 09/02 09:05
- [游客] 看到,是按ESC键。 希望是博主自己写的程序,这样才是学习了。 08/06 15:02
- [游客] 第2题没回答完? 08/06 09:03
- [sbx2000_0] 我在调试运行时,程序没有任何反映,但是在加上NOP空指令后才会有效果! 08/05 10:19
- [游客] 没问题,加油。 07/20 09:22
- [游客] 没问题。 06/26 09:12
- [tomato] "nop;不加看不到AL中的内容"不知这句话是什么意思呢? 05/19 17:31
- [游客] 程序完成的都没有问题。 程序写的也很清晰。 04/15 10:53
- [游客] 回答正确。 04/01 14:49
- [wsrf] 博主也可以像lwbfq一样做一番分析,这样对问题理解的也就越深刻,支持一下。 03/02 17:26
[2007-10-26 21:48] 实验13.1
data segment
db 'welcome to masm!',0
data ends
code segment
start: mov ax,cs ;安装程序
mov ds,ax
mov si,offset doi
mov ax,0
mov es,ax
mov di,200h
mov cx,offset doiend-offset doi
cld
rep movsb
mov word ptr es:[...
[2008-10-22 16:46] 检测点13.1(1)转移最大位移求解
首先这里说的是模拟loop指令的功能,这里的“模拟”应该理解为和loop指令的表现形式上是一致的,但是有一定区别,然后我们再来看这个问题。
对这道题基本有四种看法:
第一种人认为:既然是模拟loop指令的功能,那么就应该是和loop指令功能一模一样,既然loop指令的最大转移位移为[-128~127],很容易...
[2009-02-07 15:50] 【实验12】编写0号中断的处理程序
本章的程序没什么问题,后面的实验12也就是把书中的程序改动几处即可。但是我有两个问题还不理解:
【问题1】cpu可以根据不同的中断信息来执行不同的中断程序,但是cpu是如何得知产生了中断信息呢?对于单步执行已经明白,就是每次检测到TF位为1,就引发但不中断。但是对于除法溢出呢?每次除法溢出后会有怎样的改变使得cpu得到了...
[2009-02-18 16:31] 使用debug帮助
C:\DOCUME~1\ADMINI~1>debug
-?
assemble A [address]
compare C range address
dump D [range]
enter E address [list]
fill F range list
go G [=address] [addresses]
hex H value1 value2
input I port
load L [address] [d...
[2009-01-30 11:19] masm常见错误
法错误,随时在屏幕上给出出错信息.如操作人员指定的
列表文件名(即.LST),汇编程序亦将在列表文件中出错的
下面给出出错信息,以便操作人员即时查找错误,给予更
正.MASM5.0出错信息格式如下:
源程序文件行:WARNING/ERROR错误信息码:错误描述信息
其中,错误描述信息码由五个字符组成,第一个是字母A
,表示汇编语言程序出错;接着有一个数字指明出错类
别:'2'为严重错误,'4'为严肃警告,'5'为建议性警告,
最后三位为错误编号.
错误编号
错误描述
0
Block nesting error
...
[2008-10-03 20:55] 检测点11.4
mov ax,0 ; ax=0
push ax ; ax=0
popf ; ax=0
mov ax,0fff0h ; ax=0fff0h
add ax,0010h ; ax=0,注意,上述两条语句用于更改状态寄器的值
pushf ; ax=0
pop ax ; ax=3047H,将状态寄存器中的值放在ax中,状态寄存器中的值为什么会是3047H,不用管它,不影响结果。
and al,11001010b ;al=45h
and ah,000...
[2008-06-02 22:17] 第十一章检测题分析
1、 loop s
2、 cmp cx,0
3、 jcxz s
4、 div cx
分析:loop s 改变了cx的值,有减法蕴含在其中,肯定对FR有影响
cmp cx,0 首先要执行减法,所以对FR有影响,但是此指令只和cx有关,而且cx的值没变,正确
jcxz s 此指令是根据cx的值判断是否跳转,没有影响FR,其他寄存器也没有受到影响
div cx 除法对FR有影响,而且可能会改变ax,dx中的值
2.对于In...
[2008-10-11 21:23] 检测点11.3、11.4和试验11
1:如果因为溢出导致了实际结果为负,那么逻辑上真正的结果必然为正。
2:如果因为溢出导致了实际结果为正,那么逻辑上真正的结果必然为负。
------------------------------------------------------------------------------------------------
书上说只要稍微分析一下就能够得出上述结论,可开始时我怎么想都想不通,并且越想越头疼。后来从以下思路入手,才最终想明白。
思路如下:首先实际结果不可能是0,否则不可能产生溢出。其次,之所以产生溢出,是因为所得结果超过了当前存储结果的寄存器所能表...
[2008-04-12 17:09] 纯Dos下的汇编操作环境
还带有些小工具可以备份系统。
我这里xp下配置成功,不错,试试。
下载地址为这个地方。
http://pickup.mofile.com/6851943249276875
广告太烦,有一个小小的地方
下载文件(IE浏览器) 下载文件(非IE浏览器)
就是下载地方了。
或者用提取码6851943249276875提取
纯dos环境里面带了 masm 5.0 link 和edit可以进行asm编程
还有ghost11可以备份系统,ntfdos可以在dos访问ntfs分区
感谢wdm网友的提示...
[2008-08-15 16:04] 课程设计一
data segment
db 10 dup (0) ;[0]-[8],[9] 盛放转化后的字符串,其中[9]置0
db 6 dup (0) ;[10][11],[12] 保存变量用 [10][11]低位,[12]颜色,[13]行号,[14][15]保留
data ends
gongsi segment
;年份
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
...
[2007-12-27 12:36] 【改】课设一部分--dd类型数据显示
原显示子函数show_str是读取的ds段的数据显示,数值显示子函数dtoc也是把ds段的数据重写,然后由show_str显示,也就是说ds段的数据是暂存的。因为栈也算是暂时存储数据的,那么我们把栈的一部分拿出来用作这个功能应该可以吧,并且还能免去es的多次设置。
正好栈的访问是栈顶开始的,而程序中要的是栈底,两者不冲突。
那好了,我们定义一个16个字的栈,应该够用了吧(栈是以字为单位访问的,暂存的数据是以字节为单位访问的)。
因为使用bp,此时的默认段地址是ss,所以程序基本没什么...
[2008-01-01 17:15] 第十章课设一
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,80353...
[2008-03-10 16:56] 课程设计1:在屏幕上显示poweridea公司的数据
课设一看起来好像挺复杂的,其实经过自顶而下、逐项分解、模块化设计后,还是蛮简单的,程序设计了四个循环,每个循环显示一项内容,本来考虑放到一个大循环的,后来想到这样用到的堆栈空间较多,压栈、出栈有些麻烦,还是用运行速度换存储空间算了,于是用了这四个循环,这样程序的条理感觉更清楚些。我的感觉是,要么用速度换空间,要么用空间换时间,程序就是数据与结构的结合嘛,关键是要...
[2008-07-22 15:39] 课设一:要想快,讲规范,调试排错也关键!
课题分析:
一、数据
A、年份,4字节字符,须增加0结尾识别值;B、年收入总额,4字节数据,需转换成10进数字ASCII码,同时,因转10进制后其ASCII码占位最大需占用10位,加上结束识别位共占11位,共需占11字节,原4字节将远不能满足替换;C、年人数,2字节数据,转换后需占用6字节;D、年人均收益,因是dword/word计算求得,为防溢出,取与总额同位。
根据以上情况,原数据区空间,将难以保证数据转换ASCII后空间占位的需要,需另建适合的数据区,并拷贝数据。...
[2008-10-07 16:46] 1
-----------------------------------程序运行测试图----------------
课题分析:
一、数据
A、年份,4字节字符,须增加0结尾识别值;B、年收入总额,4字节数据,需转换成10进数字ASCII码,同时,因转10进制后其ASCII码占位最大需占用10位,加上结束识别位共占11位,共需占11字节,原4字节将远不能满足替换;C、年人数,2字节数据,转换后需占用6字节;D、年人均收益,因是dword/word计算求得,为防溢出,取与总额同位。
根据以上...
[2008-10-31 11:45] 第十章 实验10 编写子程序(3)
子程序描述
名称:dtoc
功能:将word型数据转变为表示十进制数的字符串,字符串以0结尾
入口参数:(ax)=word型数据
出口参数:无
应用举例:编程,将数据12666以十进制的形式在屏幕的8行3列,用绿色显示出来.在显示时我门调用本次实验中的第一个子程序show_str.
assume cs:code,ds:data
data segment
db 10 dup(0)
data ends
code segment
start:mov ax,12666
mov bx,data
mov ds,bx
...
[2007-11-17 11:07] 实验十
assume cs: code
data segment
db 'Welcome to masm!',0
data ends
code segment
start :
mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,0
call show_str
mov ax,4c00h
int 21h
;在屏幕的dh行dl列显示特定的字符串
;低字节存放字符,高字节存放字符属性
;si看存放...
[2007-10-24 17:09] 第10章检测点10.5
assume cs:code
stack segmeng
dw 8 dup(0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ds,ax
mov ax,0 ;此时ax=0
call word prt ds:[0eh] ;此时,发生push ip、jmp动作,而此时ip值指向下一个指令:inc ax,而ds段此时和stack段重合,故,ds:[0eh]此时内容为刚刚压栈的IP...
[2007-12-21 15:39] 可爱的指令----nop
后来,baidu了一下,发现有许多答案:
1)通过nop指令产生一定的延迟,但是对于快速的CPU来说效果不明显,可以使用rep前缀,多延迟几个时钟:);
2)i/o传输时,也会用一下nop,等待缓冲区清空,总线恢复;
3)清除由上一个算术逻辑指令设置的flag位;
4)破解:)对于原程序中验证部分使用nop来填充,使验证失效;
5)有一个朋友说的比较厉害--在航天飞机控制程序中防止程序跳飞!
解释如下:在空...
[2008-07-06 10:21] Debug命令用法
Debug 原意是杀虫子。这里是机器调试工具。其实,Debug的由来,还有一则趣闻,在早期美国的一计算机房中,科学家正在紧张的工作。同时,许多台大型的计算机也在不停的运行着。大概是由于,机器过热,引来许的小虫子,以至于,计算机无法正常运行。科学们,只好停下来,捉虫子...虫子捉完了,计算机运行也正常了,后来,这个名词就沿用至今了.... 虽然,现在好的软件越来越多了,但是有些,我们只需动手,用Debug就可解决,且快而好!接下来,我们就一起学习Debug在各方面的运用吧!(在杀毒、加解密、系统...)下面我和大家一起学习一些,Debug的用法,虽然,现在好的软...