汇编网首页登录博客注册
fishboy的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态

[2007-10-29 16:43] 【转贴】汇编伪指令四

完整段定义格式的伪指令
1、完整段定义伪指令
完整段定义由SEGMENT和ENDS这一对伪指令实现,格式如下:
段名    segment [定位类型] [组合类型] [段字/寻址方式] ['类别']
    。。。。。
段名    ends
段定义后的4个关键字由来确定段的各种属性,堆栈段要使用stack组合类型,代码段应具有‘code’类别,其他为可选性参数。
(1)定位类型(align)——指定逻辑段在主存储器中的边界,该关键字可为:
BYTE:段开始为下一个可用的字节地址(xxxx xxxxB),属性值为1
WORD:段开始为下一个可用的偶数地址(xxxx xxx0B...
阅读全文 | 评论次数(0) | 浏览次数(849) | 所属类型(汇编自留地)

[2007-10-29 16:41] 【转贴】汇编伪指令三

点击查看原图
程序段的定义和属性
一、DOS的程序结构
DOS操作系统的两种可执行程序是EXE和COM
1、EXE程序
EXE程序可以有独立的代码、数据和堆栈段,还可以有多个代码段和多个数据段,程序长度可以超过64KB,执行起始地址可以任意指定。规则的EXE文件在磁盘上由两部分组成:文件头和装入模块。装入模块就是程序本身。文件头则是由连接程序生成,包含有文件的控制信息和重定位信息,供DOS装入EXE文件时使用。实际上大EXE文件还可能包含一个附加部分,此部分由开发者用连接程序以外的工具附加到程序末尾,不属于装入模块,也不直接装入主存,仅供程序本身使用。当DOS装入或执行一个程序时,DOS确定当时主存...
阅读全文 | 评论次数(2) | 浏览次数(949) | 所属类型(汇编自留地)

[2007-10-29 16:32] 【转贴】汇编伪指令二

变量定义伪指令为变量申请固定查长度的存储空间,并可以同时将相应的存储单元初始化。
一、变量定义伪指令,格式如下:
变量名  伪指令   初值表
变量名为用户自定义标识符,表示初值表首元素的逻辑地址,即用这个符号表示地址,常称为符号地址。
初值表是用逗号分隔的参数,主要由数值常数、表达式或?、DUP组成,?代表初值不确定,即未付初值,重复初值可以用DUP进行定义。DUP格式:
重复次数  DUP   (重复参数)
变量定义伪指令有DB/DW/DD/DF/DQ/DT
(1)、DB——定义字节单元伪指令,用于分配一个或多个字节单元,每个数据一定是字节量(Byte),可以是0~255的无...
阅读全文 | 评论次数(1) | 浏览次数(962) | 所属类型(汇编自留地)

[2007-10-29 16:28] 【转贴】汇编伪指令一

点击查看原图
相对于硬指令,伪指令完成诸如程序存储模式、主存变量、子程序、宏及段定义等一些不产生CPU动作的说明性工作,正确透彻的理解伪指令,对于理解汇编程序,程序结构,运行机制等至关重要。
一、参数、变量和标号
    在源程序语句格式的4个组成部分中,参数是指令的操作对象,参数之间用逗号分隔。,汇编语言中,指令参数有数值型,它的主要形式是常数和数值表达式;还有地址型,主要形式是标号和名字(变量名、段名、过程名等)。我们知道,硬指令的参数有立即数、寄存器和存储单元,其中立即数要用数值型参数表达式,存储单元应该用地址型参数。
1、常数:表示一个固定的数值,分多种形式:
(1)十进制常数——0~9组成...
阅读全文 | 评论次数(1) | 浏览次数(2144) | 所属类型(汇编自留地)

[2007-10-18 10:19] 推荐博文 初学汇编易犯的N个错误

1.段的定义不完整:
定义一个段空间的格式为:
 segName segment
 ....
 segName ends
一般首行很少出错,但是,有时候段体内容多了,忘了段结束的 edns了。^_^
2.代码段的起始指令错误:
code segment
start:
mov ax ,1
s:
mov ax , 2
code ends
end s
在上面这段代码中,程序执行从标号s开始,因为在源代码的最后一行“end s”指明了代码开始的位置是s处,而不是start处。做过检测题的朋友们,应该还有印象吧。start只是个标号,没有之外的任何意思,反倒是“end”定义了...
阅读全文 | 评论次数(8) | 浏览次数(2826) | 所属类型(汇编自留地)

[2007-10-16 16:08] C嵌套汇编语言

(1)在C语言中使用寄存器,需要注意的是,使用的寄存器格式为:_REG。而且,寄存器的名称要大写。例子如下:

/*实现两个数求和*/
short int add ( short int x, short int y){
  _AX = x;
  _BX = y;
  _AX = _AX + _BX;

  return (_AX) ;
}

main(){

   printf("%d" , add(6 , 8));
   getch();

}

(2)在C语言中使用汇编指令。格式为 “asm 汇编指令”,如“asm mov ax ,3”,例子如下:
...
阅读全文 | 评论次数(3) | 浏览次数(1066) | 所属类型(技术改变未来)

[2007-10-12 19:08] 推荐博文 汇编中的宏指令

宏指令能够在程序中扩展成代码,这对一些重复性比较高的代码段,能起到简化源程序的作用。
汇编中使用宏指令的过程如下:
1.定义。
宏指令的定义格式为:
   宏指令名 macro [形参1,形参2...]
       ......
       ......(宏内容)
        endm
2.宏指令的调用。
宏指令的调用格式:
    宏指令名 [形参1,形参2....]
3.宏指令的展开。
在代码中,调用宏指令的地方,会在程序编译的时候根据给定参数自动替换成宏指令的内容。
需要注意一下几点:
(1)宏指令的参数可有可无。
(2)宏指令的定义必须在调用之前。...
阅读全文 | 评论次数(7) | 浏览次数(2218) | 所属类型(技术改变未来)

[2007-10-12 12:28] 【转贴】汇编指令集合

在论坛中,看到好多人汇编代码中写到了自己以前没有遇到过的指令,看起来有点费劲,就查了一下,原来自己不知道的汇编指令还不少。转帖一下,与来者诸君共同学习。
1. 通用数据传送指令.  
   MOV 传送字或字节.  
   MOVSX 先符号扩展,再传送.  
   MOVZX 先零扩展,再传送.  
   PUSH 把字压入堆栈.  
   POP 把字弹出堆栈.  
   PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.  
   POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.  
   PUSHAD 把EAX,ECX,...
阅读全文 | 评论次数(2) | 浏览次数(1179) | 所属类型(技术改变未来)

[2007-10-06 16:07] 【汗】电脑终于能关机了!!

前段时间的一个早晨,突然发现电脑处于开机状态,很是纳闷,以为是自己关机的时候误按了重启按钮。可是,第二天还是如此,我一哥们说:你的电脑牛了,不肯关机,一直重启!“不会吧!”当时就感到不对劲了。立马实验了一把。果真,明明是按的关机,却是重新启动。这下可闹大了!先检查一下Bios,没问题。开始怀疑是电源的问题了。然后,试了试电源,长按后也能关机,电源的问题可能性也不大。那就是系统的问题了。从网上查了查,有的说是电源的问题,有的说是系统的问题,按照一些方法试了试,根本没有效果。只能自己的了。换系统当然是最容易做到的了。幸亏之前做过备份,做了一个还原。希望能够关机,要是电源的问题就麻烦了。我一边祈祷一...
阅读全文 | 评论次数(1) | 浏览次数(550) | 所属类型(技术改变未来)

[2007-09-14 16:02] assembly,nothing is impossible !

记得大学刚学C语言的情形,老师在讲台上磨磨唧唧的讲着指针,结构体,台下1/3兄弟姐妹趴在书桌上睡的不亦乐乎,1/3的人在谈笑风声,剩下的也都浑浑噩噩的,不知老师所云。我努力的想死死记住老师的每句话,但,可惜我的大脑不是电脑。编程,变得越来越难懂,编程语言越来越神秘。脑袋中都浮现除了天书奇谈中那个蛋生将N多天书字符吃进肚子的情形,多希望自己也能那样吃书啊。
    都说C是最基础的编程知识,真不敢想,我们这些连C都不懂的能干啥。放弃还是坚持,谁也说不清。编程成了鸡肋!吃又吃不得,扔了又可惜。唉!不知道这个计算机专业能学个什么样子。难道就是为了学数学,物理,毛概,邓论之类,拿个证书么?那还不如报...
阅读全文 | 评论次数(6) | 浏览次数(643) | 所属类型(技术改变未来)
页码数(2):  1  2