下载此文档

王爽《汇编语言》第十三章所有练习解答.doc


文档分类:IT计算机 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
请注意,里面有程序和测试程序,例如 ,。。。
;
; 安装中断7ch的中断例程
; 功能:求一个word型数的平方
;
;
assume cs:code
code segment
start:
; 拷贝代码到非系统管理区
mov ax, cs
mov ds, ax
mov si, offset sqr ; 从cs段的sqr开始复制到0:200处
mov ax, 0
mov es, ax
mov di, 200h
mov cx, offset sqrend - offset sqr ; cx为需要复制的代码字节数
cld
rep movsb ; 调用 movsb 把 es:[di] 的字节拷贝到 ds:[si]
; 设置好中断向量
mov ax, 0
mov es, ax
mov word ptr es:[7ch*4], 200h ; 用 word ptr 指明是要拷贝一个字
mov word ptr es:[7ch*4+2], 0
mov ax, 3
int 7ch
mov ax, 4c00h
int 21h
sqr:
mul ax
iret
sqrend:
nop
code ends
end start
;
; 安装7ch中断的中断例程
; 功能:实现将 ds:[si] 开始的字符串显示出来
assume cs:code
data segment
db "e to masm!", 0
data ends
code segment
start:
; 拷贝代码到非系统管理区
mov ax, cs
mov ds, ax
mov si, offset int7c ; 从cs段的int7c开始复制到0:200处
mov ax, 0
mov es, ax
mov di, 200h
mov cx, offset int7cend - offset int7c
cld
rep movsb
; 设置好中断向量
mov ax, 0
mov es, ax
mov word ptr es:[7ch*4], 200h
mov word ptr es:[7ch*4+2], 0
; dh = 行数,dl = 烈数,cl = 颜色,ds:si指向首地址
mov dh, 10
mov dl, 10
mov cl, 2
mov ax, data
mov ds, ax
mov si, 0
int 7ch
mov ah, 01h
int 21h
mov ax, 4c00h
int 21h
int7c:
push ax
push bx
push cx
push dx
push es
; 计算好字串开始显示的地址Y = 160*(行数-1) + 列数*2-2, B800 : Y
; 循环将参数里的字串写进显卡内存,并检测到0就返回

; bx = 160*(行数-1)
sub dh, 1h
mov al, 160
mul dh
mov bx, ax ; bx 为根据行数算出来的偏移值
; ax = 列数*2-2
mov al, 2
mul dl
sub ax, 2 ; 根据列数算出来的偏移值
add bx, ax ; 行数和列数的和存在bx中了
mov ax, 0b800h
mov es, ax

mov dl, cl ; 保存字体颜色属性
mov ch, 0
s_show_str:
mov cl, ds:[si]
mov es:[bx], cl
jcxz ok_show_str
mov es:[bx+1], dl
inc si
add bx, 2
jmp short s_show_str
ok_show_str:
pop es
pop dx
pop cx
pop bx
pop ax
iret
int7cend:
nop
code ends
end start
;
; 上一个程序的测试程序
; 测试 7ch 中断,显示字符串
assume cs:code
data segment
db "e to masm !", 0
data ends
code segment
star

王爽《汇编语言》第十三章所有练习解答 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wyj199215
  • 文件大小111 KB
  • 时间2018-07-15