zoukankan      html  css  js  c++  java
  • 王爽《汇编语言》(第三版)实验16解析

    安装程序

    assume cs:code 
    code segment 
    
    start:	mov ax,cs
    		mov ds,ax
    		mov si,offset setscreen
    		mov ax,0
    		mov es,ax
    		mov di,200h
    		mov cx,offset setscreenend-offset setscreen
    		cld
    		rep movsb
    		
    		mov ax,0
    		mov es,ax
    		mov word ptr es:[7ch*4],200h
    		mov word ptr es:[7ch*4+2],0
    		
    		mov ax,4c00h
    		int 21h
    
    setscreen:
    			cmp ah,0	; 清屏
    			je do1
    			cmp ah,1	; 设置前景色
    			je do2
    			cmp ah,2	; 设置背景色
    			je do3
    			cmp ah,3	; 向上滚动一行
    			je do4
    			jmp short sret
    		
    		do1:call sub1
    			jmp short sret
    		do2:call sub2
    			jmp short sret
    		do3:call sub3
    			jmp short sret
    		do4:call sub4
    		
    		sret: ret
    		
    	sub1:	push bx
    			push cx
    			push es
    			
    			mov bx,0b800h
    			mov es,bx
    			mov bx,0
    			mov cx,2000
    	sub1s:	mov byte ptr es:[bx],' '
    			add bx,2
    			loop sub1s
    			
    			pop es
    			pop cx
    			pop bx
    			ret
    		
    	sub2:	push bx
    			push cx
    			push es
    			
    			mov bx,0b800h
    			mov es,bx
    			mov bx,1
    			mov cx,2000
    	sub2s:	and byte ptr es:[bx],11111000b
    			or es:[bx],al
    			add bx,2
    			loop sub2s
    			
    			pop es
    			pop cx
    			pop bx
    			ret
    		
    	sub3:	push bx
    			push cx
    			push es
    			
    			mov cl,4
    			shl al,cl
    			mov bx,0b800h
    			mov es,bx
    			mov bx,1
    			mov cx,2000
    	sub3s:	and byte ptr es:[bx],10001111b
    			or es:[bx],al
    			add bx,2
    			loop sub3s
    			
    			pop es
    			pop cx
    			pop bx
    			ret
    		
    	sub4:	push cx
    			push si
    			push di			
    			push es
    			push ds
    			
    			mov si,0b800h
    			mov es,si
    			mov ds,si
    			mov si,160
    			mov di,0
    			cld
    			mov cx,24
    			
    	sub4s:	push cx
    			mov cx,160
    			rep movsb
    			pop cx
    			loop sub4s
    			
    			mov cx,80
    			mov si,0
    	sub4s1:	mov byte ptr [160*24+si],' '	;最后一行清空
    			add si,2
    			loop sub4s1
    			
    			pop ds 
    			pop es
    			pop di
    			pop si
    			pop cx
    			ret
    setscreenend: nop
    
    code ends
    end start
    

    测试

    assume cs:code
    
    code segment
    		
    start:	;mov ah,0	;清屏
    		
    		;mov ah,1
    		;mov al,7	; 设置前景色,al为颜色
    		
    		;mov ah,2
    		;mov al,7	; 设置背景色,al为颜色
    		
    		;mov ah,3	; 向上滚动一行
    		int 7ch
    		
    		mov ax,4c00h
    		int 21h
    code ends
    
    end start
    
  • 相关阅读:
    serialVersionUID作用
    为什么要使用SLF4J而不是Log4J
    认识Log4j
    Java解析xml文件四种方式
    数据结构之R进制转换
    栈的压入、弹出序列
    中间件学习之RMI+JDBC远端数据库的访问
    Linux程序设计综合训练之简易Web服务器
    Html5笔记之小结
    PhoneGap + Dreamweaver 5.5 无法在模拟器中打开的问题
  • 原文地址:https://www.cnblogs.com/nojacky/p/13905862.html
Copyright © 2011-2022 走看看