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

我的博客

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

[2012-06-03 13:36] 2012年6月3日  星期日  阴天

我想和大家分享带我走进编程的大门的三份教材:
1、重庆苦丁香软件公司制作的《C语言速成3.0》光盘教材
很早以前买的,那时候刚买电脑,没装宽带,所以喜欢到电脑城买些光盘回来。半年前总逼着自己看完了,算是摸着C语言的门了。
2、按键精灵
这个说起来有点意思,两年前喜欢玩游戏,想省事,所以学着写脚本,没想到写着写着,居然成了作者,卖脚本还赚了几千块,呵呵……再想往上发展的时候才发现其实自己懂得实在太少,正应了那句话,懂得越多的同时也发现不懂的更多。按键精灵的最重要的作用就是给了我学习编程的动力。后来我之所以能坚持看完第一个提到的C语言速成教材和另一本谭浩强写的《C程序设计》第三版(当然也是...
阅读全文 | 评论次数(3) | 浏览次数(975) | 所属类型(心情小记)

[2012-05-22 00:14] 实验题:第十六章 实验十六(有疑惑,待解决)[已解决]

2012.5.23经dxiaolin的提示,在标号int7ch之前加了一句“org 200h”。问题终于得到解决。org 200h的作用是使编译器将紧跟它之后的语句段的起始地址(偏移地址)变为200H,直到再次遇到ORG语句。

2012.5.22经测试,效果都正确,惟一不解的是有两句指令不明白。        
mov word ptr es:[7ch*4],offset int7ch
mov word ptr es:[7ch*4+2],cs        ;将安装地址加入中断向量表
中断安装在0:200H处,不知道为什么这两句换成下面这样就通不过?
mov word ptr es:[7ch*4],200H...
阅读全文 | 评论次数(16) | 浏览次数(1132) | 所属类型(汇编作业)

[2012-05-21 13:20] P294 16.3 关于例题二的补充

点击查看原图
题目虽然完成,但个人并不满意,总觉得有更好的方法,这几天在看另一本关于汇编的书,总结性比较强,和王爽老师的这本教材刚好互补。

这题按题目要求加了判断角度范围的代码,如果不在给定的集合之内,则显示一行提示信息并退出程序。

关于指令table dw ag0,ag30,ag60,ag90,ag120,ag150,ag180的补充知识:

变量定义格式:[变量名] 数据定义伪指令 表达式[,……]

首先,汇编语言中的符号常量名、变量名、段名、过程名、标号都称为标识符。标识符是由字母、数字(0-9)、特殊字符(?、.、@、_、$)组成的字符串,但该字符串不能以数字或下划线‘_’作为...
阅读全文 | 评论次数(4) | 浏览次数(679) | 所属类型(笔记)

[2012-05-18 21:54] P292 16.3 直接定址表中的例题扩展

;编写子程序,以十六进制的形式在屏幕中间显示给定的字节型数据
;书上的例子是8位的,我改成了16位的,具体实现的细节也用了不同的方法
assume cs:code,ds:data
data segment
 a db '0123456789ABCDEF'
data ends

code segment
 start:
        mov ax,data
        mov ds,ax                ;设置数据段
        mov ax,0b800h
        mov es,ax
        mov di,160*12+36*2        ;设置显示区首地址

        mov ax,0a8d7h                ;AX中存放要显示的数据
        mov s...
阅读全文 | 评论次数(4) | 浏览次数(665) | 所属类型(笔记)

[2012-05-14 22:06] 交作业:P291 检测点16.2

下面的程序将DATA段中A处的8个数据累加,结果存储到B处的字中,补全程序。
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 ax,data
        ________mov es,ax
        mov si,0
        mov cx,8
    s:
        mov al,a[si]
        mov ah,0
        add b,ax
        inc si
        loop s

        mov ax,4c00h
        int 21h ...
阅读全文 | 评论次数(3) | 浏览次数(662) | 所属类型(汇编作业)

[2012-05-14 21:53] 交作业:P289 检测点16.1

下面的程序将CODE段中A处的8个数据累加,结果存储到B处的双字中,补全程序。
assume cs:code
code segment
        a dw 1,2,3,4,5,6,7,8
        b dd 0

  start:mov si,0
        mov cx,8
      s:mov ax,___a[si]
        add ____word ptr b[0],ax
        adc ____word ptr b[2],0
        add si,__2
        loop s

        mov ax,4c00h
        int 21h

code ends
end start...
阅读全文 | 评论次数(1) | 浏览次数(611) | 所属类型(汇编作业)

[2012-05-14 21:21] 实验题:第十五章 实验十五

点击查看原图
;安装一个新的int 9中断例程,功能:在DOS下,按下“A”键后,除非不再松开,如果松开,就显示满屏幕的“A”;其他键照常处理。
;提示,按下一个键时产生的扫描码称为通码,松开一个键产生的扫描码称为断码。断码=通码+80H

assume cs:code,ss:stack
stack segment
 db 128 dup (0)
stack ends

code segment
start:
        mov ax,stack
        mov ss,ax
        mov sp,128                        ;设置堆栈段

        mov ax,cs
        mov ds,ax
        mov si,offset ...
阅读全文 | 评论次数(9) | 浏览次数(662) | 所属类型(汇编作业)

[2012-05-12 17:38] 交作业:P282 检测点15.1

;根据(1)和(2)小题的要求修改后的程序如下:

assume cs:code
stack segment
 db 128 dup (0)
stack ends

data segment
 dw 0,0
data ends

code segment
start:
        mov ax,stack
        mov ss,ax
        mov sp,128

        mov ax,data
        mov ds,ax

        mov ax,0
        mov es,ax

        push es:[9*4]
        pop ds:[0]
        push es:[9*4+2]
        pop ds:[2...
阅读全文 | 评论次数(6) | 浏览次数(676) | 所属类型(汇编作业)

[2012-05-12 15:57] 小记一则

第十五章还没看完,试着做了下检测题,一次通过。发现现在的题目已经不能完全达到检测的目的了啊,主要是题目太少了。还得靠自己找题目来做啊……...
阅读全文 | 评论次数(6) | 浏览次数(681) | 所属类型(汇编作业)

[2012-05-11 21:25] 实验十四,关于显示完整日期……

点击查看原图
通过改变系统时间,多查看几次就可以发现年份信息的头两位在50单元和114单元中保存(可以看到0单元和60单元均保存有秒的信息,后接分时日月年)。找到年份单元的高两位,把它显示出来就简单得多了。

有个小插曲,我为了找到年份信息的高两位,把系统日期改成了1985年,完成后忘记改回来了,结果害得我好多软件出错,差点要重装系统了,呵呵。

;显示CMOS前128个单元的内容
assume cs:code
code segment
 mov ax,0b800h
 mov es,ax
 mov di,160*3        ;从第三行第0列开始显示

 mov cx,128
 mov si,...
阅读全文 | 评论次数(4) | 浏览次数(639) | 所属类型(汇编作业)
『 查看更多文章 』