03 2011 档案
摘要:以下是几种常见排序: 1 const max=100;n=10; 2 var i:integer; 3 a,b:array[1..n] of integer; 4 procedure swap(var a,b:integer); 5 var t:integer; 6 begin 7 t:=a;a:=b;b:=t; 8 end; 9 procedure print; 10 var i:integer; 11 begin 12 for i:=1 to n do 13 write(a[i],' '); 14 writeln; 15 end; 16 procedure createAr
阅读全文
摘要:divdw:push bxpush simov bx,ax;暂存低位mov ax,dx;高位除法mov dx,0div cxmov si,ax;暂存商mov ax,0add ax,bx;得到高位余数和低位之和div cx;ax中得到商,dx中是余数mov cx,dxmov dx,sipop sipop bxret
阅读全文
摘要:ASSUMEDS:DATA<----既然已经将DATA分配给DSASSUMEES:EXTR......MOVAX,DATA<----为什么还要把DATA的地址赋值给DSMOVDS,AXassume只是设定ds与data的对应关系,并没将数据写入ds中.也即没有后面的mov ax,datamov ds,axds里面不没有真正指定data数据段的地址不过,对于assume还是不清楚啊!
阅读全文
摘要:内存地址空间一个cpu的地址总线宽度为10,那么可寻址1024个内存单元,这1024个可寻址的内存单元就构成这个菜谱的内存地址空间。cpu在操纵和控制这些物理上独立的存储器件时,把它们都当作内存来对待,把它们总的看作一个由若干存储单元组成的逻辑存储器,这个逻辑存储器就称为内存地址空间。汇编中,所面对的是内存地址空间。
阅读全文
摘要:通过改变内核启动参数获得根权限 启动电脑,等待GRUB菜单,如果GRUB菜单隐藏,可以按Esc调出(好像是Shift),如果设置了GRUB密码,按p来解锁,比如我们选择了 Ubuntu,kernel 2.6.12-8-386,按e在启动前编辑启动参数,选择kernel /boot/vmlinuz-2.6.12-8-386root=/dev/hda2 ro quiet splash,按e编辑选定的启动菜单项,在参数最后添加rwinit=/bin/bash,即改为如下命令行: grub edit> kernel /boot/vmlinuz-2.6.12-8-386 root=/dev/hda
阅读全文
摘要:工具:nasmCygwin流程:1.boot.asmorg 07c00h ; 告诉编译器程序加载到7c00处mov ax, csmov ds, axmov es, axcall DispStr ; 调用显示字符串例程jmp $ ; 无限循环DispStr:mov ax, BootMessagemov bp, ax ; ES:BP = 串地址mov cx, 16 ; CX = 串长度mov ax, 01301h ; AH = 13, AL = 01hmov bx, 000ch ; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)mov dl, 0int 10h ; 10h 号中断re
阅读全文

浙公网安备 33010602011771号