assume cs:code
data segment
db 'welcome to masm!',0
data ends
code segment
start: ;安装程序
mov ax,cs
mov ds,ax
mov si,offset tp
mov ax,0
mov es,ax
mov di,200h
cld
mov cx,offset tpend-offset tp
rep movsb
mov ax,0;安装入口
mov es,ax
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4+2],0h
mov dh,10
mov dl,10
mov cl,2
mov ax,data
mov ds,ax
mov si,0
int 7ch;调用中断
mov ax,4c00h
int 21h
tp: mov ax,0b800h
mov es,ax
push di
push bx
push cx
;以下为确定在屏幕显示的位置
mov al,dl
mov ah,2
mul ah
mov bx,ax
mov al,dh
mov ah,160
mul ah
add bx,ax
mov di,0
mov ah,cl
lp: mov cl,ds:[si]
mov ch,0
jcxz ok
mov al,byte ptr ds:[si]
mov es:[bx+di],al;输出字符
mov es:[bx+di+1],ah;输出字符属性
add di,2
inc si
jmp lp
ok: pop bx
pop cx
pop di
iret
tpend:nop
code ends
end start
- [lhjoanna] 复杂问题简单化,博主可以这样想,之前学过了中断例程的编写与安装,这章所讲的也就是中断例程的编写与安装 02/10 21:29
- [stategrid] 数据与程序相分离。让程序清晰了很多 02/09 13:41
- [stategrid] http://www.asmedu.net/blog/user/postcontent.jsp?ne 02/09 13:27
- [stategrid] 怎么都不对齐了呀? 02/08 17:39
- [stategrid] 就担心基础不牢, 所以一边复习一边再向前进。呵呵 02/06 01:01
- [stategrid] 是呀。正准备呢,呵呵 02/06 00:58
- [游客] 不错,博主说的对。所有的检测点和实验必须自己动手做一边,否则,真的是“水过地皮湿”了,没有什么收获的 02/05 16:27
- [游客] 不错。准备开始课程设计1吧。有了前面的这几个子程序的基础,会好弄的多啦。 努力~~ 02/05 16:21
- [stategrid] 是呀。第二次做由于不知道 是哪道题做错了所以每一步都有去看。终于找出了原先错的地方 02/05 15:52
- [游客] 你的感觉其实就是检测题制度的设计原则。 02/05 15:19