|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- assume cs:dmd
- sjd segment
- db 10 dup(0)
- sjd ends
-
- dmd segment
- cxks:mov ax,12666
- mov bx,dmd
- mov ds,bx
- mov si,0
- call dtoc
-
- mov dh,8
- mov dl,3
- mov cl,2
- call show
- mov ax,4c00h
- int 21h
-
- dtoc: mov bx,0
- s1: mov dx,0
- mov cx,10
- div cx ;DX AX 中的数据除10,余数给CX
- add dx,30h;取其ascii码,这里与书上说的不符 DX中存余数
-
- mov ds:[bx],dl ;将数据送入代码段中保存
-
- mov cx,ax
- jcxz tc ;AX中为0时跳转退出
- inc bx
- jmp s1
- tc :ret
-
-
-
-
- show:mov al,dh
- push cx
- mov cl,160
- mul cl
- pop cx
- mov dh,16
- div dh
- add ax,0b800h
- mov es,ax ;将显存第三行段地址送给ES附加段
- mov dh,0
- add dl,dl ;占用2个字节,ASCII码和字符属性
- mov di,dx ;第三列偏移送给DI
- mov si,0
- mov dl,cl ;将字符属性送给DL
-
- s3: mov al,ds:[bx]
- mov es:[di],al
- mov es:[di+1],dl
- mov cx,bx
- jcxz s2
-
- add di,2
- dec bx ;减一指令
- jmp s3
-
- s2:ret
- dmd ends
- end cxks
复制代码 为神魔书上说 DX + AX 为被除数 CX 为除数,余数存放在CX中,但我用DEBUG 检测余数却存放在DX中望高手指教 |
|