<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      匯編語言之加載器加載用戶程序

      效果圖:

       

       

       

      加載器代碼:

      	lbr_start equ 100
      
      SECTION mbr align=16 vstart=0x7c00
      	mov ax,0
      	mov ss,ax 
      	mov sp,ax 
      	
      	mov ax,[cs:phy_base]
      	mov dx,[cs:phy_base+0x02]
      	mov bx,16
      	div bx 
      	mov ds,ax 
      	mov es,ax 
      	
      	xor di,di 
      	mov si,lbr_start
      	xor bx,bx 
      	call read_hard_disk 
      	
      	mov ax,[0]
      	mov dx,[2]
      	mov bx,512
      	div bx 
      	cmp dx,0
      	jnz next
      	dec ax 
      	
      next:
      	cmp ax,0
      	jz direct
      	push ds 
      	mov cx,ax 
      	
      continue_read:
      	mov ax,ds
      	add ax,0x20
      	mov ds,ax 
      	inc si 
      	xor bx,bx 
      	call read_hard_disk
      	loop continue_read
      	pop ds 
      	
      direct:
          mov ax,[0x06]
          mov dx,[0x08]
      	call my_segment
      	mov [0x06],ax  
      	
      	mov cx,[0x0a] 
      	mov bx,0x0c
      
      remalloc:
      	mov ax,[bx]
      	mov dx,[bx+0x02]
      	call my_segment
      	mov [bx],ax 
      	add bx,4
      	loop remalloc
      	
      	jmp far [0x04]
      	
      read_hard_disk:
      	push ax 
      	push bx
      	push cx 
      	push dx 
      	
      	mov dx,0x1f2
      	mov al,1
      	out dx,al 
      	
      	inc dx 
      	mov ax,si 
      	out dx,al 
      	
      	inc dx 
      	mov al,ah
      	out dx,al 
      	
      	inc dx 
      	mov ax,di 
      	out dx,al 
      	
      	inc dx 
      	mov al,0xe0
      	out dx,al 
      	
      	inc dx 
      	mov al,0x20
      	out dx,al 
      	
      waits:
      	in al,dx
      	and al,0x88
      	cmp al,0x08
      	jnz waits
      	
      	mov cx,256
      	mov dx,0x1f0
      	
      reads:
      	in ax,dx 
      	mov [bx],ax 
      	add bx,2
      	loop reads
      	
      	pop dx
      	pop cx 
      	pop bx 
      	pop ax 
      	
      ret
      
      my_segment:                   
          push bx  
          add ax,[cs:phy_base]
          adc dx,[cs:phy_base+0x02]
      	mov bx,16
      	div bx     
          pop bx 
      ret
      
      
      
      
      
      phy_base dd 0x10000
      
      times 510-($-$$) db 0
      db 0x55,0xaa 
      

       

      用戶程序代碼:

      SECTION header vstart=0
      	program_length dd program_end
      	code_entry     dw start
      				   dd section.code.start
      
      	segment_count  dw (segment_end-segment_start)/4 
      	
      	segment_start:
      	code_segment   dd section.code.start
      	data_segment   dd section.data.start
      	stack_segment  dd section.stack.start
      	segment_end:
      	
      SECTION code align=16 vstart=0
      put_string:
      		mov cl,[bx]
      		or cl,cl 
      		jz exit
      		call put_char
      		inc bx                         
              jmp put_string
      
      exit:
               ret
      put_char:
      		push ax 
      		push bx 
      		push cx 
      		push dx 
      		push ds
      		push es 
      		
      		mov dx,0x3d4
      		mov al,0x0e 
      		out dx,al 
      		mov dx,0x3d5
      		in al,dx 
      		mov ah,al 
      		
      		mov dx,0x3d4
      		mov al,0x0f
      		out dx,al 
      		mov dx,0x3d5
      		in al,dx 
      		mov bx,ax 
      		
      		cmp cl,0x0d 
      		jnz jump_one
      		mov ax,bx 
      		mov bl,80
      		div bl 
      		mul bl 
      		mov bx,ax 
      		jmp set_cursor
      		
      jump_one:
      		cmp cl,0x0a
      		jnz jump_two 
      		add bx,80
      		jmp roll_screen
      		
      		
      jump_two:
      		mov  ax,0xb800
      		mov  es,ax 
      		shl  bx,1
      		mov  [es:bx],cl 
      		
      		shr bx,1
      		add bx,1
      		
      roll_screen:
      		cmp bx,2000
      		jl  set_cursor
      		
      		mov ax,0xb800
      		mov ds,ax 
      		mov es,ax 
      		cld 
      		
      		mov si,0xa0
      		mov di,0x00
      		mov cx,1920
      		rep movsw 
      		
      		mov bx,3840                    
              mov cx,80
      		
      cls:
              mov word[es:bx],0x0720
              add bx,2
              loop cls
      
              mov bx,1920
      		
      set_cursor:
      		mov dx,0x3d4
      		mov al,0x0e
      		out dx,al 
      		mov dx,0x3d5 
      		mov al,bh 
      		out dx,al 
      		
      		mov dx,0x3d4 
      		mov al,0x0f
      		out dx,al
      		mov dx,0x3d5 
      		mov al,bl 
      		out dx,al 
      		
      		pop es 
      		pop ds 
      		pop dx 
      		pop cx 
      		pop bx 
      		pop ax
      		
      ret 
      start:
      	mov ax,[stack_segment]
      	mov ss,ax 
      	mov sp,stack_end
      	
      	mov ax,[data_segment]
      	mov ds,ax 
      	
      	mov bx,message
      	call put_string
      	
      	
      	
      	
      jmp $
      
      SECTION data align=16 vstart=0
      message db 'Hello World'  
      		db 0x0d,0x0a 
      		db 0
      data_end:
      
       
      SECTION stack align=16 vstart=0
      resb 256
      stack_end:
      	
      	
      	
      SECTION trail align=16
      	program_end:
      

        

       

      posted @ 2021-02-04 00:09  sunshine_gzw  閱讀(169)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲综合国产一区二区三区| 午夜综合网| 亚洲高清WWW色好看美女| 无码人妻斩一区二区三区| 成人亚欧欧美激情在线观看| 阿瓦提县| 光棍天堂在线手机播放免费| 激情 自拍 另类 亚洲| 涟水县| 中文字幕午夜福利片午夜福利片97| 蜜臀久久精品亚洲一区| 日本毛茸茸的丰满熟妇| 亚洲码亚洲码天堂码三区| 深夜av免费在线观看| 人妻互换一二三区激情视频| 亚洲国产精品一区二区第一页 | 成人av午夜在线观看| 好紧好滑好湿好爽免费视频| 狠狠v日韩v欧美v| 手机看片AV永久免费| 野外做受三级视频| 免费无码黄十八禁网站| 天天综合亚洲色在线精品| 国产一区二区不卡在线| 日本狂喷奶水在线播放212| 久久婷婷五月综合色99啪ak| 亚洲真人无码永久在线| 国产亚洲精品日韩av在| 国产片av在线观看国语| 看全色黄大黄大色免费久久| 精品人妻少妇一区二区三区在线| 天天爽天天摸天天碰| 精品免费看国产一区二区| 四虎影视一区二区精品| 精品国产一区二区三区久| 欧美丰满熟妇xxxx性ppx人交| 国产一精品一av一免费爽爽| 国产gaysexchina男外卖| 国产日产亚洲系列最新| 亚洲色最新高清AV网站| 国产成人午夜福利高清在线观看|