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

我的博客

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

[2010-09-28 21:11] 检测点17.1

当int 16h检测检测缓冲区为空时,处于等待状态,且每隔一定时间检测缓冲区是否为空,这是如果键盘字符输入,就切换到int 9h中断例程将和扫描码和字符的ASCII码输到键盘缓冲区中,当int 16h再次检测时,发现缓冲区不为空,于是便把字符读出。所以个人觉得是对的。

这是我的看法,大家给点意见啊。...
阅读全文 | 评论次数(0) | 浏览次数(766) | 所属类型(汇编作业)

[2010-09-28 20:48] 实验十六(忙于考试暂时空着,留着以后再来完成)

实验十六(忙于考试,暂时空着,留着以后再来完成)...
阅读全文 | 评论次数(0) | 浏览次数(884) | 所属类型(汇编作业)

[2010-09-27 22:36] 检测点16.2

下面的程序将code段中a处的8个数据累加,结果存储到b处的字中,补全程序。
完整程序如下:

assume cs:code,ds: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 ds,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

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

[2010-09-27 21:48] 检测点16.1

点击查看原图
补加的代码依次为:
a[si]
word ptr b
word ptr b[2]
2

完整程序如下:
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,ax
adc word ptr b[2],0
add si,2
loop s

mov ax,4c00h
int 21h

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

[2010-09-27 21:33] 实验15 安装新的int 9中断例程

安装一个新的int9中断例程,功能:在DOS下,按下“A”键后,除非不再松开,如果松开,就显示满屏幕的“A”;其他的键照常处理。
程序如下:

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 ax,0
mov es,ax

mov si,offset int9
mov di,204h

mov cx,o...
阅读全文 | 评论次数(0) | 浏览次数(706) | 所属类型(汇编作业)

[2010-09-26 22:59] 检测点15.1

(1)仔细分析一下上面的int 9中断例程(即p269-p271),看看是否可以精简一下?
pushf
pushf
pop ax
and ah,11111100B
push ax
popf
call dword ptr ds:[0]

因为进入int 9中断例程后,IF和TF都置零,所以前面的代码中的置零代码
pushf
pop ax
and ah,11111100B
push ax
popf 可以去掉

所以以上代码段可以精简为:
pushf
call dword ptr ds:[0]

(2)仔细分析上面程序中的主程序,看看有什么潜在的问题?
在主...
阅读全文 | 评论次数(0) | 浏览次数(715) | 所属类型(汇编作业)

[2010-09-26 15:30] 实验14 访问CMOS RAM

点击查看原图
编程:以“年/月/日 时:分:秒”的格式,显示当前的日期和时间。

assume cs:code

stack segment
db 16 dup(0) 
stack ends   ;以上三句设置一个长16byte的栈

code segment
sign: db " ","/","/"," ",":",":" ;放置需要显示的格式字符数据
time: db 9,8,7,4,2,0   ;放置需要访问的CMOS RAM的存储单元地址
start: 
mov ax,0B800h
mov es,ax              ;以上两句设置显示缓冲区的段地址

mov...
阅读全文 | 评论次数(0) | 浏览次数(749) | 所属类型(汇编作业)

[2010-09-26 09:36] 检测点14.2

编程:用加法和移位指令计算(ax)=(ax)*10
提示:(ax)*10=(ax)*2+(ax)*8

assume cs:code 
code segment  
start: 
 mov ax,0A0h
mov bx,ax
shl bx,1         ;(ax)=(ax)*2
mov cl,3
shl ax,cl        ;(ax)=(ax)*8
add ax,bx        ;(ax)=(ax)*10

mov ax,4c00h 
int 21h 

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

[2010-09-26 09:06] 检测点14.1

(1)编程:读取CMOS RAM的2号单元的内容。
assume cs:code
code segment 
start:
   mov al,2          
   out 70h, al
   in al, 71h

  mov ax,4c00h
        int 21h

code ends
end start


(2) 编程:向CMOS RAM的2号单元写入0。
assume cs:code
code segment 
start:
   mov al,2          
   out 70h, al
   mov al,0 ...
阅读全文 | 评论次数(0) | 浏览次数(741) | 所属类型(汇编作业)

[2010-09-26 00:01] 实验13.3

点击查看原图
(3)下面的程序,分别在屏幕的第2、4、6、8行显示四句英文诗,补全程序。
依次填写
[si]
[bx]
inc si
add bx,2

将字符串的偏移地址,行数,与相应字符串作为数据段存储在data数据段中,当将字符串输出到显示缓冲区上,先是设置字符串在显示缓冲区上的位置,调用int 10的2号子程序实现,而要在指定位置上输出字符串,则调用int 21h的9号子程序实现。


完整程序为:
assume cs:code

code segment
s1:  db 'Good,better,best,','$'
s2:  db 'Never let it res...
阅读全文 | 评论次数(0) | 浏览次数(701) | 所属类型(汇编作业)
『 查看更多文章 』