assume cs:code
code segment
start:
mov ah,0
int 16h
cmp al,'r'
je r_s
cmp al,'g'
je g_s
cmp al,'b'
je b_s
r_s: mov ah,4
jmp short setcolor
g_s: mov ah,2
jmp short setcolor
b_s: mov ah,1
setcolor:
mov bx,0b800h
mov ds,bx
mov si,1
mov cx,2000
sc_s: and byte pt...


- [shuimx] 不明白。我写的简化了。就是和书上的一样,结果也是一样的。是 3002 。 06/07 08:41
- [游客] 你写的和书上不一样哎 06/06 17:34
- [游客] 检测点11.4你明白了吗 06/06 17:34
- [游客] 顶 06/06 17:25
- [游客] 先运行一下你的程序,在运行一下下面的检测程序: assume cs:code code segm 06/06 17:17
- [游客] 可以给我讲讲汇编吗?同意的话,太感谢了。QQ:791505640 05/30 22:46
- [游客] 可以给我讲讲汇编吗?同意的话,太感谢了。QQ:791505640 05/30 22:46
[2011-06-23 16:40] 第17章(1) 接收用户的输入,改变屏幕的前景色
阅读全文 |
评论次数(0) |
浏览次数(462) |
所属类型(汇编作业)
[2011-06-23 11:29] 第16章汇编测试题目
(1)
将标号a处的8个数累加的和放到标号b处所在的单元中,下面选项中的程
序正确的是______。
1、 assume cs:code
code segment
mov si,0
mov cx,8
s: add b,a[si]
inc si
loop s
mov ax,4c00h
int 21h
a db 1,2,3,4,5,6,7,8
b db 0
code ends
end
2...
将标号a处的8个数累加的和放到标号b处所在的单元中,下面选项中的程
序正确的是______。
1、 assume cs:code
code segment
mov si,0
mov cx,8
s: add b,a[si]
inc si
loop s
mov ax,4c00h
int 21h
a db 1,2,3,4,5,6,7,8
b db 0
code ends
end
2...
阅读全文 |
评论次数(0) |
浏览次数(500) |
所属类型(汇编作业)
[2011-06-23 11:22] 实验16
实验16的中断程序的代码
assume cs:code,ss:stack
stack segment
dw 64 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,64
;安装 int_7ch中断 0:200
mov ax,code
mov ds,ax
mov si,offset int_start
mov ax,0
mov es,ax
mov di,200h
mov cx,offset int_end - offset int_sta...
assume cs:code,ss:stack
stack segment
dw 64 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,64
;安装 int_7ch中断 0:200
mov ax,code
mov ds,ax
mov si,offset int_start
mov ax,0
mov es,ax
mov di,200h
mov cx,offset int_end - offset int_sta...
阅读全文 |
评论次数(0) |
浏览次数(469) |
所属类型(汇编作业)
[2011-06-23 11:15] 16章子程序 setscreen 带参数检测
assume cs:code,ss:stack
stack segment
dw 64 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,64
mov ah,6;功能号 {0 1 2 3}
mov al,8;颜色 {0 1 2 3 4 5 6 7}
call setscreen
mov ah,4ch
int 21h
;;;;;;-----子程序setscreen--------;;;;;;;
setscreen:
jmp short...
stack segment
dw 64 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,64
mov ah,6;功能号 {0 1 2 3}
mov al,8;颜色 {0 1 2 3 4 5 6 7}
call setscreen
mov ah,4ch
int 21h
;;;;;;-----子程序setscreen--------;;;;;;;
setscreen:
jmp short...
阅读全文 |
评论次数(0) |
浏览次数(552) |
所属类型(汇编作业)
[2011-06-18 11:27] 16章(2)显示正弦值的子程序(带参数检测)
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,125
call show_sin
mov ah,4ch
int 21h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;show_sin 子程序:显示 sin(ax)的数值
;参数 有1个
;ax:角度值 {0 30 60 90 120...
stack segment
db 128 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,128
mov ax,125
call show_sin
mov ah,4ch
int 21h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;show_sin 子程序:显示 sin(ax)的数值
;参数 有1个
;ax:角度值 {0 30 60 90 120...
阅读全文 |
评论次数(0) |
浏览次数(460) |
所属类型(汇编作业)
[2011-06-18 10:23] 16章(1)以16进制的形式在屏幕中间显示给定的byte型数据
assume cs:code,ds:data
data segment
a db "0123456789abcdef";保存“0-f”的ascii码
b db 0,0;保存byte型数据16进制的形式
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,15;byte型数据 200
mov bl,16
div bl
mov bh,0
cmp al,0;al 低4位
je gewei
mov bl,al
mov cl,a[bx]
mov b,cl
g...
data segment
a db "0123456789abcdef";保存“0-f”的ascii码
b db 0,0;保存byte型数据16进制的形式
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,15;byte型数据 200
mov bl,16
div bl
mov bh,0
cmp al,0;al 低4位
je gewei
mov bl,al
mov cl,a[bx]
mov b,cl
g...
阅读全文 |
评论次数(0) |
浏览次数(508) |
所属类型(汇编作业)
[2011-06-10 16:01] 实验15
;运行环境:开始-运行-Command.com进入Command.com运行
assume cs:code
code segment
start:
;安装新int9 的中断例程
mov ax,code
mov ds,ax
mov si,offset int_begin
mov ax,0
mov es,ax
mov di,204h
mov cx,offset int_end - offset int_begin
cld
rep movsb
;修改中断向量表
mov ax,0
mov ds,ax
mov ax,ds:[9*4]...
assume cs:code
code segment
start:
;安装新int9 的中断例程
mov ax,code
mov ds,ax
mov si,offset int_begin
mov ax,0
mov es,ax
mov di,204h
mov cx,offset int_end - offset int_begin
cld
rep movsb
;修改中断向量表
mov ax,0
mov ds,ax
mov ax,ds:[9*4]...
阅读全文 |
评论次数(0) |
浏览次数(471) |
所属类型(汇编作业)
[2011-06-10 15:39] 15.5 新的int 9 中断例程
注意下面的程序要在 开始-运行-Command.com进入Command.com运行。
从开始-运行-cmd 进入了cmd.exe运行的这个程序,应该是会有问题的。
command.com是ms-dos的应用程序,(严格地说,是内部命令处理程序)是所有内部命令的集合,调入内存后可以接受键入的内部命令,并按照dos的规定的功能执行命令,cmd.exe是基于windows系统运行的程序,只是为习惯dos操作提供的一个命令提示符窗口。
cmd下会恢复一些用户已经更改的中断向量。Command.com下不恢复。
assume cs:code
code segme...
从开始-运行-cmd 进入了cmd.exe运行的这个程序,应该是会有问题的。
command.com是ms-dos的应用程序,(严格地说,是内部命令处理程序)是所有内部命令的集合,调入内存后可以接受键入的内部命令,并按照dos的规定的功能执行命令,cmd.exe是基于windows系统运行的程序,只是为习惯dos操作提供的一个命令提示符窗口。
cmd下会恢复一些用户已经更改的中断向量。Command.com下不恢复。
assume cs:code
code segme...
阅读全文 |
评论次数(0) |
浏览次数(446) |
所属类型(汇编作业)
[2011-06-10 11:04] 15.4 编写int 9 中断例程不调用原来的中断例程的办法
assume cs:code
data segment
dw 0,0
data ends
stack segment
db 256 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,256
mov ax,data
mov ds,ax
mov ax,0
mov es,ax
mov ax,es:[9*4];保存原 int 9 的入口地址
mov ds:[0],ax
mov ax,es:[9*4+2]
mov ds:[...
data segment
dw 0,0
data ends
stack segment
db 256 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,256
mov ax,data
mov ds,ax
mov ax,0
mov es,ax
mov ax,es:[9*4];保存原 int 9 的入口地址
mov ds:[0],ax
mov ax,es:[9*4+2]
mov ds:[...
阅读全文 |
评论次数(0) |
浏览次数(869) |
所属类型(汇编作业)
[2011-06-10 10:54] 15.4 编写int 9 中断例程遇到的问题及解决办法
1、遇到的问题
在debug 下 -t 执行到
mov ax,offset int9;改变int9的入口地址
mov es:[9*4],ax;----------------出错
解决方法:
(1)在修改中断响亮表的程序中不可以使用-t 命令。
在设置新中断向量地址的时候,如果发生中断(-t 命令会调用单步中断)就会出错,以为你修改了段地址,已中断,就根据现在的向量表调用中断例程了,那么此时调用的谁知道是什么啊。既不是你的例程也不是原来的例程。所以在修改中断响亮表的程序中 在debug 下使用-t 命令会报错。
(2)也就是 我们不能使用 -t 命令单步调试。
2.执行...
在debug 下 -t 执行到
mov ax,offset int9;改变int9的入口地址
mov es:[9*4],ax;----------------出错
解决方法:
(1)在修改中断响亮表的程序中不可以使用-t 命令。
在设置新中断向量地址的时候,如果发生中断(-t 命令会调用单步中断)就会出错,以为你修改了段地址,已中断,就根据现在的向量表调用中断例程了,那么此时调用的谁知道是什么啊。既不是你的例程也不是原来的例程。所以在修改中断响亮表的程序中 在debug 下使用-t 命令会报错。
(2)也就是 我们不能使用 -t 命令单步调试。
2.执行...
阅读全文 |
评论次数(0) |
浏览次数(265) |
所属类型(汇编作业)