汇编语言(王爽)实验十三

实验十三

1、编写并安装int7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处

参数:(dh)=行号 (dl)=列好 (cl)=颜色 ds:si指向字符串首地址

assume cs:code
data segment
	db "welcome to masm!",0
data ends

code segment
	start:	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
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:[7ch*4+0],200h
			mov word ptr es:[7ch*4+2],0
			
			mov ax,4c00h
			int 21h
			
	  do0:	push ax					; 保护现场
	  		push es
	  		push di
	  		push si

	  		mov ax,0b800h			; 设置段地址
	  		mov es,ax
			  
	  		mov al,0A0H				; 设置偏移地址
			mul dh
			mov di,ax
			mov al,2
			mul dl
			add di,ax
	  
	  	s:	push cx				
	  		mov ch,0
	  		mov cl,[si]
	  		jcxz retend
	  		pop cx
	  		
	  		mov al,[si]
	  		mov es:[di],al
	  		mov es:[di+1],cl
	  		add di,2
	  		inc si
	  		
	  		jmp short s

   retend:	pop cx					; 恢复现场
   			pop si
   			pop di
   			pop es
   			pop ax
   			iret
   do0end:	nop	
			
code ends
end start

image-20200322163158382

3、补全程序,分别在屏幕的第2、4、6、8行显示4句英文诗

assume cs:code

code segment
	s1:	db 'Good,better,best,','$'
	s2:	db 'Never let it rest','$'
	s3: db 'Till good is better','$'
	s4 :db 'And better,best.','$'
	s:	dw offset s1, offset s2, offset s3, offset s4
  row:	db 2,4,6,8

	start:	mov ax,cs
			mov ds,ax
			mov bx,offset s 
			mov si,offset row
			mov cx,4

	   ok:	mov bh,0			; 第0页
	   		mov dh,cs:[si]		; 行号
			mov dl,0			; 列号
			mov ah,2			; 设置光标位置
			int 10h

			mov dx,cs:[bx]		; ds:bx指向字符串的首地址
			mov ah,9			; 功能号9,在光标处显示字符串
			int 21h

			inc si				; 换行
			add bx,2			; 下一个字符串

			loop ok

			mov ax,4c00h
			int 21h
code ends
end start

image-20200322165959582

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章