汇编语言实验12(王爽)第三版

1,字符串要放在不会被其他数据覆盖并且处理程序能时刻找到的位置,比如处理程序内,这样安装后程序才能找到字符串
2,ds:[si]指向字符串首地址,al保存字符,ah保存属性(红色)
3,es:[di]指向屏幕中间,ax作为输出数据
4,因为返回dos所以用21号中断而不用iret

assume cs:code

code segment 
start:	mov ax,cs
		mov ds,ax
		mov si,offset do0
		mov ax,0
		mov es,ax
		mov di,200h
		mov cx,offset do0end - offset do0
		cld		;设置传输方向为正
		rep movsb
		
		mov ax,0
		mov es,ax
		mov word ptr es:[0*4],200h
		mov word ptr es:[0*4+2],0	; 设置中断向量表
		
		mov ax,4c00h
		int 21h
		
	do0:jmp short do0start
		db "divide error!"
		
do0start:	mov ax,cs
		mov ds,ax
		mov si,202h	;设置ds:si指向字符串
			
		mov ax,0b800h
		mov es,ax
		mov di,12*160+36*2
			
		mov cx,13		;字符长度为13
	s:	mov al,[si]
		mov es:[di],al
		inc si
		add di,2
		loop s
			
		mov ax,4c00h
		int 21h
do0end:	nop
code ends
end start

测试代码如下

assume cs:code

code segment 
start:	mov ax,1000h
	mov bh,1
	div bh

code ends
end start

发布日期:

所属分类: 易语言