汇编网首页登录博客注册
ltp1234的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
好友圈
文章收藏
友情链接

[2012-07-08 23:41] 实验16,勉强完成,悲催

点击查看原图
首先感谢fpamc,这个题目我卡那个标号地址那里断断续续几天,真是有点烦了,最后看了下fpamc的文章'实验16「扩展」'的实验心得,我也没有理解,直到我再看debug的内容的时候,才发现fpamc说的有道理,debug下面的标号a地址为安装程序开始的cs和偏移地址(之前一直想a的地址怎么不对呢,就是转不过弯来,那个地址怎么出来的,看不明白,天赋也就这样了),于是我把中断例程改在放前面了,再debug发现还是不对,偏移地址对了,段地址不对了,变成0了,要获得正确的202h地址,还得改中断向量表(不得不感叹编译器真是个神奇的东西)。获取知识容易,想改变自己错误的认知还是有点难的,得冷静,从“错误...
阅读全文 | 评论次数(1) | 浏览次数(683) | 所属类型(汇编作业)

[2012-07-05 07:18] 实验15

点击查看原图
书看了几遍,书中的代码才看明白,晕倒。。。中断真有点不好理解。看懂了很有意思。。
assume cs:code
code segment
start:        mov ax,0
        mov es,ax
        mov ax,cs
        mov ds,ax
        mov di,204h
        mov si,offset int9
        mov cx,offset int9end-offset int9
        cld
        rep movsb        ;安装中断程序
        
        push es:[9*4+0]
        pop es:[200h]
        push es:[9*4+2]
        pop es:[202h]        ;保存旧的中断例...
阅读全文 | 评论次数(1) | 浏览次数(648) | 所属类型(汇编作业)

[2012-06-27 00:04] 实验14的改进

点击查看原图
还是有个小问题,就是在windows模拟控制台上可以正常显示,在ms-dos6.22下面(虚拟机环境)会多出一个字符,已经实现了动态显示。先贴出来,或许哪天就想清楚了。代码如下:

assume cs:code
data segment
                db 32 dup(0)
data ends
stack segment
                db 16 dup(0)
stack ends
code segment
start:                mov ax,data
                mov ds,ax
                mov si,0
                mov ax,stack
                mov ss,ax
                mov sp,16
        ;==读...
阅读全文 | 评论次数(2) | 浏览次数(636) | 所属类型(汇编作业)

[2012-05-16 19:24] 实验14,

点击查看原图
将之前做的显示字符串拿来直接用了,发现确实后面的内容得靠前面掌握才能进行饿。代码如下:
assume cs:code
data segment
                db 32 dup(0)
data ends
stack segment
                db 16 dup(0)
stack ends
code segment
                mov ax,data
                mov ds,ax
                mov si,0
                mov ax,stack
                mov ss,ax
                mov sp,16
        ;==读取年份==
                mov cx,4
                mov al,9
                out 70h,al
                in al,7...
阅读全文 | 评论次数(2) | 浏览次数(700) | 所属类型(汇编作业)

[2012-05-14 20:51] 针对实验13-1所做的一个简单动画

这个题目我把书上的应用程序改了,中断程序没有改过,其实我想把动画过程代码写到中断程序里面的,还是算了,感觉好像不太好。我发现自己一个问题,我写代码好慢,尤其是一个寄存器被当做几个用途的时候,容易转晕;还有应用程序进入到中断程序和子程序的时候总怕寄存器的值被他们改变了。要改了,估计几个小时得去调bug了。不多说了,效果图不上了,直接上代码。
应用程序代码如下:
assume cs:code
data segment
a                db"welcome to masm!",0
b                db"                ",0
data ends
code segment
start:                ...
阅读全文 | 评论次数(2) | 浏览次数(684) | 所属类型(汇编作业)

[2012-05-13 23:36] 实验13.2,没有验证,应该没有问题(书上都有代码),有时间验证

assume cs:codesg
codesg segment
        ;==安装中断程序==
                mov ax,cs
                mov ds,ax
                mov si,offset do
                mov ax,0
                mov es,ax
                mov di,200h
                mov cx,offset doend-offset do
                cld
                rep movsb
        ;==设置中断向量==
                mov ax,0
                mov ds,ax
                mov word ptr ds:[7ch*4+0],200
                mov word ptr ds:[7ch*4+2],0
                
                mov ...
阅读全文 | 评论次数(3) | 浏览次数(600) | 所属类型(汇编作业)

[2012-05-13 07:50] 实验13-1,终于调试出来了

点击查看原图
昨天这题调试到下半夜1:30,发现debug t状态下每个字符都可以显示,就是直接g显示一个!,想了半天也没发现是什么问题,纠结,没办法,只好睡觉(第二天要上班,希望第二天有收获),今天早上起来,不到半个小时,问题果然一下子出来了,原来是DH,DL没有改变,小问题都没看出来,精神好就是好,呵呵;这题给我的启示是还是各个中断程序以及子程序之间的参数影响,不确定正确的,debug t下面应该可以看明白错在哪里。代码如下:
assume cs:codesg
codesg segment
        ;==安装中断处理程序==
start:                mov ax,cs
                mov ds,ax
                mov ...
阅读全文 | 评论次数(5) | 浏览次数(426) | 所属类型(汇编作业)

[2012-05-10 22:50] 第12章实验,书上有代码,重在自己理解加实践检验。

assume cs:codesg
codesg segment
start:
        ;==do0安装程序==
        mov ax,cs
        mov ds,ax
        mov si,offset do0
        mov ax,0
        mov es,ax
        mov di,0200h
        mov cx,offset do0end-offset do0
        cld
        rep movsb
        
        ;==设置中断向量表==
        mov ax,0
        mov es,ax
        mov word ptr es:[0],0200h
        mov word ptr es:[0+2],0

        mov ax,4c00...
阅读全文 | 评论次数(1) | 浏览次数(434) | 所属类型(汇编作业)

[2012-05-10 20:08] 这段时间把后面的书基本上看完,回头做题目,代码如下:

点击查看原图
assume cs:codesg
datasg segment
        db "Beginner 's all-purpose symbolic instruction code.",0
datasg ends
codesg segment

begin:        mov ax,datasg
        mov ds,ax
        mov si,0
        call letterc
        
        mov ax,4c00h
        int 21h
letterc:
        push ax
        push si
        push bx
        sub ax,ax
p:        
        mov cl,byte ptr ds:[si]
        mov...
阅读全文 | 评论次数(1) | 浏览次数(418) | 所属类型(汇编作业)

[2012-04-23 18:33] 经过两个多星期的痛苦调试,终于出来了,每次都想问人的时候,发现还是自己靠的住,和大家分享一下,多多指教

点击查看原图
这个课程设计感受最多的是子程序调用之前,一定将寄存器内容保存好,还是书上的话对,除返回值的寄存器不能保存外,其它最好保存,不然像我一样,调试了好长时间,一个bug接着一个bug,每次我调试都是先g 到call 子程序的后面,再d 相应的内存数据是否正确,才继续往下g,如果不对,就重新debug,t到子程序内部,虽然如此来回也搞了好久。每次在我快失望的时候,我会放松下来去玩下,然后再来搞,思维就不会僵在那里了,这个程序es:di(b800:0)我发现前几行一直不对,刚开始我t到这里的时候总是不显示,我一直在想为什么,总是以为自己的程序逻辑有问题,时隔一天,我看看其它的数据能不能显示,结果发现前几...
阅读全文 | 评论次数(3) | 浏览次数(169) | 所属类型(汇编作业)
页码数(2):  1  2