|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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 ?
复制代码
|
|