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

我的博客

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

[2010-08-15 17:00] 实验16源代码

老实说,这是我在这本书中写的最烂的一个程序。原因有四:1.我不清楚怎么写子程序调用的规范代码,这里面用的是书上的代码。2.没能将data段中的显示信息写成一个子程序。3.我总感觉有些BUG,感觉对这个程序的功能很不满意。4.没能从寄存器的角度对这段代码进行分析
但我仍将它贴出来,是因为我希望日后我能回头看一看我当初的水平。当初是多么的菜。激励自己进步。
assume cs:code,ds:data

data segment
        name1 db '(1)Clean the Screan',0dh,0ah,'$'
        name2 db '(2)Set the forecolore',0...
阅读全文 | 评论次数(0) | 浏览次数(603) | 所属类型(汇编作业)

[2010-08-15 00:16] 17.2节设置屏幕字符颜色代码解析

点击查看原图
关键还是自己理解。有些东西,只可意会,不可言传的。也许我解释的不够清楚。 
assume cs:code 
code segment 
start: 
        mov ah,0 
        int 16h                ;读取键盘输入 
         
        mov ah,1        ;(ah)=00000001 
        cmp al,'r' 
        je red 
        cmp al,'g' 
        je green 
        cmp al,'b' 
        j...
阅读全文 | 评论次数(0) | 浏览次数(660) | 所属类型(默认类型)

[2010-08-09 01:47] 实验14

点击查看原图
首先得感谢“莫取网名”,他的程序让我找到了动态显示时间的方法。但是,他教我的动态显示时间的方法有一个BUG,就是,当再次加载程序的时候,就不能动态显示时间了。我不知道是为什么,也许是因为我一直都是用windows xp做实验的缘故吧。
  其次,其实这题给我们的第一感觉就应该能联想到实验13.3.当然,前提是做了那一题。
好了,贴出我的代码:
assume cs:code

code segment
        s1: db '/','/',' ',':',':',' '        ;一定要在最后加一个' ',为了和s2同长度。若不加,运行后面会出现O
        s2: db 9,8,7,4,2,0
st...
阅读全文 | 评论次数(0) | 浏览次数(623) | 所属类型(汇编作业)

[2010-08-08 22:49] 随感

最终明白了,原来王老师的教程对于16位汇编而言,只能是入门教程。要想进步,必须要看其它教程,要多编程,多总结。...
阅读全文 | 评论次数(1) | 浏览次数(755) | 所属类型(默认类型)

[2010-08-08 00:11] 关于检测点13.1中7ch中断的最大转移位移的实验验证

点击查看原图
经过本人实验验证,我认为:应该是65536.
不知是否正确,还请大家帮忙批评指正。不胜感激!
而且经过我多番修改dup 65424 dup(0)中的65242的值,发现65242是上限,超过这个数就会出现“25.ASM(50): warning A4102: Segment near (or at) 64K limit”的错误,即已经超过了段的最大长度了,可明明从0BB7:FFDC到0BB7:FFFF都是被0填充的,应该还能存放代码的啊,为什么不能再大于65424了呢?我百思不得其解,希望大家也能思考一下。谢谢!
验证代码如下:
assume cs:code
code segment...
阅读全文 | 评论次数(0) | 浏览次数(648) | 所属类型(默认类型)

[2010-08-06 20:12] 实验12(加了个字符颜色属性)

点击查看原图
稍微做了点改变,使字符为红色。其中出现了两处mov ax,4c00h int 21h我觉得第一处没必要使用的。请大家批评指正。谢谢!
assume cs:code
code segment
start:
        mov ax,cs
        mov ds,ax
        mov si,offset do0
        
        mov ax,0
        mov es,ax
        mov di,200h

        mov cx,offset do0end-offset do0
        cld
        rep movsb                        ;do0安装程序

        
        mov ax,0
        mov es,ax
        mov word ptr es:...
阅读全文 | 评论次数(1) | 浏览次数(769) | 所属类型(汇编作业)

[2010-08-06 11:13] 总结出来的标志位的判断方法

下面是我总结出来的标志位的判断方法。我也不知道对不对,是否实用。但至少目前为止还没错过,所以先写出来,希望高手能够指点一下。我也希望能够有更简便的判断方法,希望知道的人能够告诉我一下,谢谢。
1.OF位的判断
  溢出,只是对有符号数运算而言。因此,我们在讨论溢出(或者说在判断OF的值)的时候,应将对象看为有符号数,其最高位为符号位。
  对于8位数而言,由于其最高位为符号位,故它所能表示的十进制数范围为[-128,127]。
  现在,要判断是否溢出,就将对象全部转化为十进制数,然后再进行运算(加减乘除)。看运算后所得的结果是否在[-128,127]之间,如果不在,就发生了溢出,OF...
阅读全文 | 评论次数(0) | 浏览次数(565) | 所属类型(默认类型)

[2010-08-06 03:43] 实验11源代码

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 cx
        push si ...
阅读全文 | 评论次数(0) | 浏览次数(653) | 所属类型(汇编作业)

[2010-08-05 06:29] 实验10(3.数值显示)

点击查看原图
assume cs:code
data segment
 db 10 dup(0)
data ends

code segment
start:
        mov ax,12666
        mov bx,data
        mov ds,bx
        mov si,0
        call dtoc

        mov dh,8
        mov dl,3
        mov cl,2
        call show_str

        mov ax,4c00h
        int 21h
dtoc:
push dx
push cx
push ax
push si
push di
s1:
        mov dx,0
        mov cx,10...
阅读全文 | 评论次数(0) | 浏览次数(554) | 所属类型(汇编作业)

[2010-07-30 20:55] 实验10(1.显示字符串)(望高手指点,帮忙优化)

点击查看原图
我对这个程序代码很不满意,感觉写得很乱。但目前没有时间进一步优化,希望高手能够指点一下。谢谢!
注:
1.mov es:[bx+si+1],ax中,必须要加1,因为显存中“偶字符,奇颜色”。否则会出现“乱码”
2.我不喜欢里面规定的(cl)=颜色,因为在用loop循环的时候非常麻烦,还得将cl再赋给dl,多走了一步。倒不如直接赋给其它寄存器,如di等。
assume cs:code
data segment
        db 'Welcome to masm!',0
data ends

code segment
start:
        mov dh,8
        mov dl,3
        mov ...
阅读全文 | 评论次数(2) | 浏览次数(788) | 所属类型(汇编作业)
『 查看更多文章 』