当前位置:编程学习 > 汇编语言 >>

关于汇编语言的问题

题目是 编写并安装int 7ch 中断例程 功能为显示一个yong0结束的 字符串,中断例程安装在0:200初 以下是我编的两个 程序 可是 运行之后 总是出现 cup 遇到无效指令 请大家给解决一下啊 谢谢了 第一个程序 assume cs:code code segment start: mov ax,code mov ds,ax mov si,offset s1 mov ax,0 mov es,ax mov di,200h mov cx,offset s2-offset s1 cld rep movsb mov di,7ch*4 mov word ptr es:[di],200h inc di inc di mov word ptr es:[di],0 mov ax,4c00h int 21h s1:mov ax,0b800h mov es,ax mov bl,cl sub dh,1 sub dl,1 mov al,160 mul dh add dl,dl mov dh,0 add ax,dx mov di,ax s4:mov al,[si] mov ch,0 mov cl,al jcxz s3 mov es:[di],al inc di mov es:[di],bl inc di inc si jmp s4 s3:iret s2:nop code ends end start 第二个程序 assume cs:code,ds:data,ss:stack data segment db 'welcome to masm!',0 data ends stack segment dw 100 dup(0) stack ends code segment start:mov ax,stack mov ss,ax mov sp,2*100 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 code ends end start
追问:可以具体点吗   我初学汇编
答案:;--------------------------------- DATA SEGMENT MESG DB 13, 10, 'I love yong0 ! ', 10, 13, '$' DATA ENDS ;--------------------------------- CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX ;---------------------------- PUSH DS MOV DX, OFFSET DISP_7C ;取中断服务程序的偏移地址. MOV AX, SEG DISP_7C ;取中断服务程序的段地址. MOV DS, AX MOV AH, 25H ;写中断向量. MOV AL, 7CH INT 21H ;写入. POP DS ;---------------------------- INT 7CH ;执行该中断程序. ;---------------------------- MOV AH, 4CH INT 21H ;---------------------------- DISP_7C PROC FAR ;中断服务程序DISP_7C MOV DX, OFFSET MESG MOV AH, 09H INT 21H IRET DISP_7C ENDP ;---------------------------- CODE ENDS END START ;---------------------------------蓝屏
其他:安装中断需要在实DOS模式 

上一个:精通汇编语言有用吗
下一个:汇编语言TEST

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,