| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 
- assume cs:codesg,ds:data,ss:stact
 
  
- data segment  ;数据段
 
 -         db "overflow!"
 
  
- data ends
 
  
- stact segment ;栈段
 
  
- stact ends
 
  
- codesg segment 
 
 -  start:     ;安装do0
 
 -             mov ax,cs 
 
 -             mov ds,ax 
 
 -             mov si,offset do0  ;设置ds:si指向源地址
 
 -             mov ax,0
 
 -             mov es,ax
 
 -             mov di,200h        ;设置es:di指向目的地址
 
 -             mov cx,offset do0end-offset do0  ;设置cx为传输长度=do0end的偏移地址-do0偏移地址
 
 -             cld                      ;设置传输方向为正
 
 -             rep movsb
 
 -             
 
 -                 ;设置中断向量表
 
 -                 mov ax,0
 
 -                 mov es,ax
 
 -                 mov word ptr es:[0],200h
 
 -                 mov word ptr es:[2],0
 
 -                         
 
 -            
 
 -         mov ax,4C00H 
 
 -         int 21H 
 
 -                 
 
 -         do0:                    ;显示字符串"overflow!"
 
 -                 jmp short do0start 
 
 -                 db "overflow!"     ;数据应该放在安全的空间
 
 -         do0start:
 
 -                 mov ax,cs     ;[cs=0000h]
 
 -                 mov ds,ax 
 
 -                 mov si,202 ;设置ds:si指向字符串,jmp指令占用两个字节,字符串从202开始
 
  
-                 mov ax,0b800h 
 
 -                 mov es,ax
 
 -                 mov di,12*160+36* 2   ;设置es:di指向显存空间的中间位置
 
 -                 mov cx,9              ;设置cx为字符串长度
 
 -           s:mov al,[si]
 
 -             mov es:[di],al 
 
 -                 inc si
 
 -                 add di,2
 
 -                 loop s
 
 -                                 
 
 -                 mov ax,4c00h
 
 -                 int 21h
 
 -  do0end:nop
 
 -            
 
 -            
 
 - codesg ends
 
 - end start
 
 -           
 
 
  复制代码 
 
 
 
 
我的问题: 
执行 
        mov ax,1000h 
                mov bh,1 
                div bh 
后,没有显示overflow! 而显示乱码  错在哪儿?  
 
 
 
 
- 0xca?
 
 - 所以说,是 202 还是 202h ?
 
 
  复制代码 
 
 
 
 
 |   
 
 
 
 |