百度首页 | 百度空间
 
文章列表
 
您正在查看 "Asm" 分类下的文章

2005-09-12 12:15
;子程序名;dtobin

;功能 :把用ASCII码表示的十进制数字串转换为二进制数

;入口参数:DS:BX=缓冲区首地址

;出口参数:AX=转换得到的二进制数
dtobing proc

push bx

push cx

push dx

xor ax,ax

mov cl,[bx]

inc bx

xor ch,ch

jcxz dtobin2

dtobin1: mov dx,10

mul dx

mov dl,[bx]

inc bx

and dl,0fh

xor dh,dh

add ax,dx

loop dtobin1

dtobin2: pop dx

pop cx

pop bx

ret

dtobin endp
假设要转换的十进制数字串存放在由DS:BX做指的缓冲区中,该缓冲区的第一字节含有十进制数字串长度。

设十进制数字串各位对应的BCD码是dn、dn-1、……、d2、d1,那么它所表示的二进制数可由下式算出:

Y=((((0*10+dn)*10+dn-1)*10+……)*10+d2)10+d1

可通过迭代的方法进行上式的计算,迭代公式如下,y的初值为0:

y=y*10+di (i=n,n-1,……1)
类别:Asm | 评论(2) | 浏览()
 
2005-09-12 07:51
assume cs:code,es:data

data segment

chao db 0B8h,0FFh,0FFh,0BBh,00,00,50h,53h,0CBh,0B8h,00,4Ch,0CDh,21h

data ends
code segment

start: mov ax,data

mov es,ax

mov bx,offset chao
mov al,1

mov ch,0

mov cl,1

mov dl,0

mov dh,0

mov ah,3

int 13h

mov ax,4c00h

int 21h

code ends

end start
以上程序编译以后,运行改写软盘引导区,当软盘引导计算机的时候不断从启,经过实验没有问题,但是利用13号中断改为硬盘版,然后引导(用虚拟机试 操作系统为MS-DOS 7.1~~~~我可不想用自己机器试),并不是不断启动,而是报错。这是为什么呢?
另外再叉皮和2003这样的操作系统中改写硬盘一扇区,会不会出现越权报错呢?
传说中的硬盘逻辑锁是怎么写的呢~~~~挖咔咔
类别:Asm | 评论(2) | 浏览()
 
     
 
 
文章分类
 
 
 
Apps(56)
 
Config(35)
 
Shell(47)
 
 
 
 
 
 
Others(17)
 
 
 
Emacs(16)
 
 
 
 
 
 
Games(19)
 
Asm(2)
 
Vim(10)
 
 
 
Hack(6)
 
 
Tip(23)
 
Sql(15)
 
 
Gtk(2)
 
Gentoo(35)
 
 
 
 
 
 
Ad(0)
 
     
 
文章存档
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     
 
最新文章评论
   

信息要互通有无,谢谢分享
 

长见识啦
 

高手
 

汗...
 
 
     


©2008 Baidu