- [kanwangxue] 感觉楼主很乖的。有点孩子气。呵呵。 01/27 08:58
- [kanwangxue] it界,进去干嘛啊,到时候自己牛比了,首先写一个自己的语言,自己用。进入IT界不就是随波做流吗/?他 01/27 08:57
- [kanwangxue] 哥们,不要为了赚钱而学计算机。 计算机是年轻时候干的, 30岁后可以开始想赚钱,年轻嘛,不要这么悲 01/27 08:50
- [游客] 怎么说? 01/26 16:22
- [游客] 你这不行啊,差远了! 01/10 22:29
- [chinatree] 谢谢你。相信你也会成功的。 01/09 14:22
- [landyking] 哥们儿,好久不见。相信你会成功的。 12/02 23:34
- [chinatree] 哇哇,被挖坟了。莫生气,只是感觉谦虚些好,就算你的程序真的是史上最强的,也别说出来嘛,自己偷着乐就行 11/20 00:41
- [xiaoyao2012] 你的程序和我的程序比较也不见得你的程序又节约空间,在某种意义上说你的程序用了没学的指令,所以不见得你 11/19 15:39
- [heliang6291] 一起加油啊 07/02 02:45
- [游客] 急需一个汇编程序大作业。。。。。。。。。。。。。。。。。。。??? 12/28 16:50
- [游客] 这么多人喜欢你,我嫉妒了。但你不可以喜欢那么多,允许你在我不需要你的时候帮别人。如果我需要立叫立到。 11/13 13:11
- [tily] 兄弟 我来看你啦 呵呵 最近可好呀 09/26 22:17
- [stqcw] 能加我qq吗?1270911891 我在做课程设计2的时候 遇到点问题 09/24 09:16
- [stqcw] 能加我qq吗?1270911891 我的环境还是有点问题。按下A的时候不能显示满屏的A 09/20 09:36
- [stqcw] 牛人 我在xp里面运行王爽 汇编第二版 p280的例子 按下esc键没反应 呀 怎样在虚拟机里配置一 09/17 15:18
- [landyking] 呵呵,交个朋友,共同学习. 09/08 00:03
- [luyingdzx] 能知道你的QQ吗?或者请加一下我的QQ271190440,可以吗 虽然在论坛能获得解答,但是有的问 08/07 21:32
[2011-09-05 14:48] 第16章检测点及实验16
检测点 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 b[0],ax
adc b[2],0
add si,2
loop s
mov ax,4c00h
int 21h
code ends
end start
检测点 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
code ends
end start
实验16 编写包含多个功能子程序的中断例程
安装一个新的int 7ch中断,为显示输出提供如下功能子程序:、
1)清屏;
2)设置前景色;
3)设置背景色;
4)向上滚动一行。
入口参数说明如下:
(1)用ah寄存器传递功能号:0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚动一行。
(2)对于2,3号功能,用al传递颜色值,(al)∈{1,2,3,4,5,6,7,}。
assume cs:code,ds:code,ss:stack
stack segment stack
db 64 dup (0)
stack ends
code segment
start:mov ax,cs
mov ds,ax
mov ax,stack
mov ss,ax
xor ax,ax
mov es,ax
mov di,200h
mov si,offset new7ch
mov cx,offset new7chend-offset new7ch
cld
repz movsb
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4+2],0
mov ah,0
int 7ch
mov ax,105h
int 7ch
mov ax,2a0h
int 7ch
mov ah,3
int 7ch
mov ax,4c00h
int 21h
new7ch:jmp news
a dw offset new1+1c2h,offset new2+1c2h,offset new3+1c2h,offset new4+1c2h
news:cmp ah,3
ja newret
mov bl,ah
mov bh,0
add bx,bx
call word ptr a[bx]
newret:iret
new1:push es
mov cx,2000
mov ax,0b800h
mov es,ax
xor di,di
s_1:mov byte ptr es:[di]," "
add di,2
loop s_1
pop es
ret
new2:push es
push bx
mov bx,0b800h
mov es,bx
mov di,1
mov cx,2000
new2_a:and byte ptr es:[di],0f8h
or byte ptr es:[di],al
add di,2
loop new2_a
pop bx
pop es
ret
new3:push es
push bx
mov bx,0b800h
mov es,bx
mov di,1
mov cx,2000
ne_a:and byte ptr es:[di],8fh
or byte ptr es:[di],al
add di,2
loop ne_a
pop bx
pop es
ret
new4:push es
mov ax,0b800h
mov es,ax
mov ds,ax
xor di,di
mov si,160
mov cx,24*160
rep movsb
mov cx,80
mov di,24*160
n_ew:mov byte ptr es:[di],' '
add di,2
loop n_ew
pop es
ret
new7chend:nop
code ends
end start
下面的程序将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 b[0],ax
adc b[2],0
add si,2
loop s
mov ax,4c00h
int 21h
code ends
end start
检测点 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
code ends
end start
实验16 编写包含多个功能子程序的中断例程
安装一个新的int 7ch中断,为显示输出提供如下功能子程序:、
1)清屏;
2)设置前景色;
3)设置背景色;
4)向上滚动一行。
入口参数说明如下:
(1)用ah寄存器传递功能号:0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚动一行。
(2)对于2,3号功能,用al传递颜色值,(al)∈{1,2,3,4,5,6,7,}。
assume cs:code,ds:code,ss:stack
stack segment stack
db 64 dup (0)
stack ends
code segment
start:mov ax,cs
mov ds,ax
mov ax,stack
mov ss,ax
xor ax,ax
mov es,ax
mov di,200h
mov si,offset new7ch
mov cx,offset new7chend-offset new7ch
cld
repz movsb
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4+2],0
mov ah,0
int 7ch
mov ax,105h
int 7ch
mov ax,2a0h
int 7ch
mov ah,3
int 7ch
mov ax,4c00h
int 21h
new7ch:jmp news
a dw offset new1+1c2h,offset new2+1c2h,offset new3+1c2h,offset new4+1c2h
news:cmp ah,3
ja newret
mov bl,ah
mov bh,0
add bx,bx
call word ptr a[bx]
newret:iret
new1:push es
mov cx,2000
mov ax,0b800h
mov es,ax
xor di,di
s_1:mov byte ptr es:[di]," "
add di,2
loop s_1
pop es
ret
new2:push es
push bx
mov bx,0b800h
mov es,bx
mov di,1
mov cx,2000
new2_a:and byte ptr es:[di],0f8h
or byte ptr es:[di],al
add di,2
loop new2_a
pop bx
pop es
ret
new3:push es
push bx
mov bx,0b800h
mov es,bx
mov di,1
mov cx,2000
ne_a:and byte ptr es:[di],8fh
or byte ptr es:[di],al
add di,2
loop ne_a
pop bx
pop es
ret
new4:push es
mov ax,0b800h
mov es,ax
mov ds,ax
xor di,di
mov si,160
mov cx,24*160
rep movsb
mov cx,80
mov di,24*160
n_ew:mov byte ptr es:[di],' '
add di,2
loop n_ew
pop es
ret
new7chend:nop
code ends
end start
评论次数(2) |
浏览次数(375) |
类型(汇编作业) |
收藏此文 |