资源描述
汇编语言是一种
范文一:汇编语言的用法
(一)
winxp或win2k环境下的tasm安装方法:
直接把我拷给大家的tasm.rar解压到c:tasm就可以了
或者说,把tasm.rar拷贝到c。然后鼠标右键单击该文件,点”解压到当前文件夹”就可以了。
(二)
winxp或win2k环境下的tasm运行方法:
(1)开始->运行->输入cmd,然后按确定
(2)cdc:tasmsource(然后按回车)
(3)在c:tasmsource>提示符下输入
path=c:tasmbin(然后按回车)
(告诉计算机当前路径为path=c:tasmbin,如果不想学这些dos命令,大家只需要承认它,这不影响对汇编语言的学习)
(4)在c:tasmsource>提示符下输入
tasm/la/z/zich2_01.asm
(5)在c:tasmsource>提示符下输入
tlink/vch2_01.obj
(6)在c:tasmsource>提示符下输入
ch2_01.exe
就会出现运行结果3
如果这一步不是输入"ch2_01.exe"而是输入tdch2_01.exe则出现单步运行或者说调试程序的界面。
(三)
td的使用
以下列程序为例解说td的使用
datasegment
aadb'1'
bbdb'2'
dataends
prognamsegment
assumecs:prognam,ds:data
start1:
movax,data
movds,ax
movcx,10
moval,31h
next:pushax
movdl,al
movah,02h
int21h
popax
incal
loopnext
movah,4ch
int21h
prognamends
endstart1
1、汇编:tasm/la/z/ziex01.asm;
2、连接:tlink/vex01.obj
3、调试:tdex01.exe
td的使用:
运行tdex01.exe后指向movax,data
此时,movax,data还没有执行,按一下f7,指向movds,ax。
此时,movax,data已执行。下面将要执行的语句是movds,ax。
执行完movmovds,ax后,若要看数据段的内容,我们可以按f10,将光标移到view菜单条,按回车,然后选择菜单dump,按回车。会出现一个窗口,其中一部分内容为ds:00003132000000。其中31即‘1’的ascii码,32即‘2’的ascii码。
移动窗口:
按一下ctrl+f5选中这个窗口,用方向键,将窗口移动到所期望的地方,然后按回车。
放大缩小窗口:
按一下ctrl+f5选中这个窗口,用shift+方向键改变窗口的大小。
关闭窗口:
alt+f3
在不同的窗口之间切换
f6
查看寄存器的内容:
按f10,将光标移到view菜单条,按回车,然后选择菜单registers,按回车。查看单个寄存器变量(如ax)或数据段的变量(如aa),可以按ctrl+f7,然后输入你想查看查看的变量名,如ax,aa等。
将程序运行到光标所在的位置
用f4。
如,已开始,movax,data
若用方向键将光标移动到movah,4ch,然后按f4,这样程序便执行到movah,4ch之前,
即所有的循环语句都已经被执行了,这样有助于在已确定循环语句肯定正确的情况下跳过循环语句。
设置断点
用方向键将光标移动到要设断点的语句处,然后按f2。用f9则可以将程序运行到断点处。
取消断点:
在用方向键将光标移动到原来设断点的语句处,然后按f2。
(一)
winxp或win2k环境下的tasm安装方法:
直接把我拷给大家的tasm.rar解压到c:tasm就可以了
或者说,把tasm.rar拷贝到c。然后鼠标右键单击该文件,点”解压到当前文件夹”就可以了。
(二)
winxp或win2k环境下的tasm运行方法:
(1)开始->运行->输入cmd,然后按确定
(2)cdc:tasmsource(然后按回车)
(3)在c:tasmsource>提示符下输入
path=c:tasmbin(然后按回车)
(告诉计算机当前路径为path=c:tasmbin,如果不想学这些dos命令,大家只需要承认它,这不影响对汇编语言的学习)
(4)在c:tasmsource>提示符下输入
tasm/la/z/zich2_01.asm
(5)在c:tasmsource>提示符下输入
tlink/vch2_01.obj
(6)在c:tasmsource>提示符下输入
ch2_01.exe
就会出现运行结果3
如果这一步不是输入"ch2_01.exe"而是输入tdch2_01.exe则出现单步运行或者说调试程序的界面。
(三)
td的使用
以下列程序为例解说td的使用
datasegment
aadb'1'
bbdb'2'
dataends
prognamsegment
assumecs:prognam,ds:data
start1:
movax,data
movds,ax
movcx,10
moval,31h
next:pushax
movdl,al
movah,02h
int21h
popax
incal
loopnext
movah,4ch
int21h
prognamends
endstart1
1、汇编:tasm/la/z/ziex01.asm;
2、连接:tlink/vex01.obj
3、调试:tdex01.exe
td的使用:
运行tdex01.exe后指向movax,data
此时,movax,data还没有执行,按一下f7,指向movds,ax。
此时,movax,data已执行。下面将要执行的语句是movds,ax。
执行完movmovds,ax后,若要看数据段的内容,我们可以按f10,将光标移到view菜单条,按回车,然后选择菜单dump,按回车。会出现一个窗口,其中一部分内容为ds:00003132000000。其中31即‘1’的ascii码,32即‘2’的ascii码。
移动窗口:
按一下ctrl+f5选中这个窗口,用方向键,将窗口移动到所期望的地方,然后按回车。
放大缩小窗口:
按一下ctrl+f5选中这个窗口,用shift+方向键改变窗口的大小。
关闭窗口:
alt+f3
在不同的窗口之间切换
f6
查看寄存器的内容:
按f10,将光标移到view菜单条,按回车,然后选择菜单registers,按回车。查看单个寄存器变量(如ax)或数据段的变量(如aa),可以按ctrl+f7,然后输入你想查看查看的变量名,如ax,aa等。
将程序运行到光标所在的位置
用f4。
如,已开始,movax,data
若用方向键将光标移动到movah,4ch,然后按f4,这样程序便执行到movah,4ch之前,
即所有的循环语句都已经被执行了,这样有助于在已确定循环语句肯定正确的情况下跳过循环语句。
设置断点
用方向键将光标移动到要设断点的语句处,然后按f2。用f9则可以将程序运行到断点处。
取消断点:
在用方向键将光标移动到原来设断点的语句处,然后按f2。
范文二:仇和语言汇编爱民:
1、坚持维护群众利益高于一切、关心群众疾苦重于一切、解决群众困难先于一切,深怀爱民之心,恪守为民之责,善谋富民之策,多办利民之事。最大限度地将人民群众的愿望集中起来、智慧凝聚起来、力量发挥出来。
1、“人人有事干,人人有钱赚,社会就稳定了。你们要对上负责,对上负责就是对百姓负责。”
2、“想得到的不一定办到,但想不到的永远办不到,看准的事情,砸锅卖铁也要做。”
3、领导干部要开阔胸襟、视野、思路、眼界,要学习先进经验,不断解决困难及问题,变压力为动力。要多换思想少换人,但不换思想就换人。阻力不是来自百姓、市民,是在领导干部中。”
4、“一线工作法”:“干部在一线工作,决策在一线落实,问题在一线解决,创新在一线体现,成效在一线检验”;
5、“定下来的事,必须无条件、无阻力、无障碍地坚决执行、迅速落实,做到说了算、定了干,招之即来,来之能办,办之能成,高效率、快节奏,强力推动各项工作落实。”
6、“我到昆明工作人地两疏,与大家无亲无故,从未共事过,与大家无恩无怨,只身一人,也无牵无挂,工作一定能无私无畏。”
7、“天下最真实的官只有两个,一是宰相,一是县官,越是落后的地方越是有改革的空间和余地。”
8、“治安问题的根本就是警匪一家。”
9、“为公才改革,为私谁改革。”
10、“不用强制力量怎么行。中国要用50年的时间走完西方国家
300年的路,那得怎么走。只能是压缩饼干式的发展。”
11、“环保,现在再也不是光喊领导干部。高度重视。的层面了,而是要切切实实地定量学习,一招不让地严格执行。”
12、“我就是要拼了命干。”
13、“形成一个新的冲击波,扫除一切阻碍发展的思想障碍,清除一切影响发展的制度瓶颈。”
14“治湖先治水、治水先治河、治河先治污、治污先治人、治人先治官”。
15、“我会有累不垮的精神,耗不尽的精力,干不厌的激情,折不挠的毅力”,“不来则已,一来就扎根”。
16、仇和要求各个新闻单位提供近期报道,特别提出“要负面的报道,看看我们做得不好或者不足,为市委下一步工作改进提供依据。”
17、在一次内部会议上,仇和提到,太湖蓝藻危机实际上为环保部门大力推进水污染防治工作创造了极好的契机,水污染问题虽然是个老大难问题,但是,“老大难,老大难,老大重视就不难,这次老大终于重视了”。
18、“老百姓可不管什么cod,他们只知道污染物总量在增加、水质在变坏,水不安全了,他们当然要骂娘。”仇和说
19、2007年6月5日,第36个世界环境日上,仇和曾即席发言说,“地球是一个村庄,你我都是老乡;国家是一个家园,你我都是成员。”
20、“改革要冒风险,稳定要付成本,发展要付代价。”这是仇和常说的一句话。
21、“有一个好的班子,好的思路和好的精神,没有什么改变不了
的面貌,没有克服不了的困难,没有逾越不了的障碍”。
22、“要拼了命地干”。
23、“形成一个新的冲击波,扫除一切阻碍发展的思想障碍,清除一切影响发展的制度瓶颈”。
24、“不争论,大胆地试,大胆地闯,发展才是硬道理”。
25、“昆明不仅是云南的,也是全国的,更是世界的昆明”.
26、“能否每盘菜都放一双公筷、一把公勺,吃不完的菜打包带走,不仅节约也卫生”。
27、“腐败我看有三种。第一种是贪污,第二种是决策失误造成经济损失,第三种是宁愿少干事,甚至不干事,保证不出事,四平八稳,按年龄大小、皱纹多少、胡子长短排队等提拔,失去机遇,影响一个区域经济社会发展。后两种比第一种造成的损失更大,更可恶。”
28、“科技和教育是城市第一竞争力,是高端产业、人才产业”。
29、“现代新昆明建设需要原动力,需要现代化的教育事业”。
30、尤其要高度重视和解决“两后双百”。初中毕业后考不上高中、高中毕业后考不上大学的,要百分之百接受职业教育、百分之百外输内转解决就业。
31、要在存量不动的基础上,引进民间、民营等资本要素,依靠市场的力量扩大增量,迅速扩张资源总量,提高优质资源的比例和比重,公办和民办待遇对等、一视同仁、平等竞争,以奖代补,给予保障,做到“民投、民有,民办、民营,民富、民强,民享、民乐”。
32、“要有决心、有目标、有规划,步伐要快,不能等”。
33、要多换思想少换人,但不换思想就换人。
2、全心全意做昆明人民的公仆
——在XX市干部大会上的讲话
(2007年12月28日)
仇和
同志们:
刚才,省委副书记李纪恒宣读了中央和省委的决定,并作了重要讲话,对昆明工作给予了充分肯定,对未来发展提出了明确要求,对杨崇勇同志作了高度评价,对我本人提出了新的要求,对市委班子寄予了殷切期望。我们一定要认真学习,深刻领会,迅速贯彻,立即落实。中央调我到云南工作,省委安排我到昆明任职,这是组织信任,我衷心感谢、坚决拥护、愉快服从。
肩负XX市委书记的担子,接过昆明改革发展的“接力棒”,我深感使命光荣、责任重大,同时也对未来充满了坚定信心。
之所以说使命光荣,是因为昆明是我国西南的一座重要城市,是云南的政治、经济、文化和社会中心,是享誉海内外的“春城”,钟灵俊秀、物华天宝,底蕴深厚、人文荟萃,风光旖旎、环境优美。能来到这块令人羡慕、引人向往的好地方,能和一大批有开拓精神、创新勇气和务实作风的同志们合作共事,能与608万勤劳善良的昆明各族人民共同工作、学习、生活,我深感高兴和荣幸。
之所以说责任重大,是因为昆明的经济总量占据全省的1/3,地位举足轻重。尤其是当前昆明出现了大建设、大开发的好势头,到了工业化加速、城市化提升、市场化转型、国际化拓展的关键时期,能否继续保持良好的发展态势,能否推进各项工作再上新台阶、更上一层楼,省委寄予很高期望,群众充满无限期盼。在这样一个地方工作,
我深感责任重大,担子沉甸,不能有半点闪失和丝毫懈怠。
之所以说信心坚定,是因为有XX省委的正确领导,有历届XX市委,特别是以杨崇勇同志为“班长”的市委打下的良好基础,有市委一班人和市人大、政府、政协、纪委的支持配合,有一大批德高望众的老领导、老同志的指导帮助,特别是全市上下有一支水平高、素质好、干劲足的干部队伍,还有全市各族人民的支持。我坚信,只要我们上跟中央和省委,下靠昆明各族干群,就一定能够继往开来,不辱使命,在昆明发展史上写下新的光辉篇章。
光荣的使命鼓舞我无私无畏、奋发有为,重大的责任鞭策我务实苦干、顽强拼搏,必胜的信心激励我勇往直前、开拓进取。在此,我向在座的各位同志并通过你们向全市广大干群表示,在今后的工作中我将尽心尽力,尽职尽责,用昆明铿锵前进的步伐,表达我不辱使命的决心。
一是坚定不移地与中央、省委保持高度一致。旗臶指引方向,旗臶展示形象,旗臶产生力量。党的十七大明确提出,要高举中国特色社会主义伟大旗臶。学习贯彻十七大精神,必须与本地实际联系起来,找准结合点、切入点和着力点。思想是行动的先导。以学习贯彻十七大和省委八届四次全体(扩大)会议精神为动力,从市委、市政府开始,在全市上下来一次思想的大解放,进一步提升信念、理念、观念,统一思想、思维、思路,形成一个新的冲击波,扫除一切阻碍发展的思想障碍,清除一切影响发展的制度瓶颈。我们深知,昆明过去的大发展得益于中央和省委、省政府的大力支持。我们将始终自觉地、坚定地与党中央和省委保持高度一致,确保中央的大政方针和省委、省政府的决策部署在昆明得到全面有效的贯彻落实。
二是坚定不移地贯彻落实科学发展观。科学发展观是全面建设小康社会的根本指针。我们必须进一步加深对科学发展观精神实质的理解和把握,切实增强贯彻落实科学发展观的自觉性和坚定性,致力在加快发展中体现科学发展观的精神实质,在协调发展中体现科学发展观的基本原则,在和谐发展中体现科学发展观的根本宗旨。在今后的工作实践中,必须坚持把“富民强市”放在落实科学发展观的核心位臵,富民,就是百姓富、地区富、城乡居民共同富;强市,就是企业强、产业强、全市综合实力强,努力推动昆明走上率先发展、科学发展、和谐发展、可持续发展之路。
三是坚定不移地抢抓发展机遇。机遇听之无声,望之无形,但却是最宝贵的发展资源和实现跨越的跳板。随着西部大开发战略的深入推进,作为西南地区中心的昆明,必将获得千载难逢的发展机遇。昆明具有“东连黔桂通沿海,北经川渝进中原,南下越老达泰柬,西接缅甸连印巴”的独特区位优势。特别是作为中国与东盟自由贸易区经济圈、泛珠三角区域经济合作圈的交汇点之一,必将赢得更为广阔的发展空间。因此,对昆明来说,尤其要强调在云南、在西部乃至在更大区域内实现率先发展,这是一种政治责任,也是一种必须保持的精神状态、思想作风和目标定位。我将和全市广大干群一道,牢固树立机遇意识,敏锐地发现机遇,深刻地认识机遇,果断地抓住机遇,创造性地用好机遇。
四是坚定不移地推进改革开放。不发展没有出路,不改革就难以取得又好又快的发展。大力推进市场化取向的改革,彻底改变一切束缚发展的做法和规定,坚决革除一切影响发展的体制和机制。坚持彻底放开依靠民力,全面开放借助外力,深化改革增强活力,加快发展
壮大实力,对一切有利于昆明发展的新生事物都要积极鼓励,对一切有利于昆明发展的工作举措都要坚决支持,对一切有利于昆明发展的劳动价值都要予以承认,对一切为昆明作出贡献的各方人士都要充分尊重。昆明不仅是云南的昆明,也是全国的昆明,更是世界的昆明。新一轮的大发展,要充分发挥地处边陲、依托泛珠三角地区以及作为中国联系东南亚南亚“桥头堡”的区位优势,在更高层次上推进对内对外开放,把国内外各种生产要素充分吸引过来、聚集起来,真正让一切激活发展的活力竞相迸发,让一切创造财富的源泉充分涌流。
五是坚定不移地落实富民优先政策。关注民生,造福百姓,是科学发展观的核心内容,是构建和谐社会的根本所在。始终牢固树立执政为民理念,坚持维护群众利益高于一切、关心群众疾苦重于一切、解决群众困难先于一切,深怀爱民之心,恪守为民之责,善谋富民之策,多办利民之事。最大限度地将人民群众的愿望集中起来、智慧凝聚起来、力量发挥出来,让608万昆明人民充分享有接受教育培训、医疗保健、休闲娱乐、创业就业和社会保障的机会,使百姓得到更多的实惠,过上更加美好的生活,进而以自己是昆明人为荣,为自己是昆明人感到骄傲和自豪。
六是坚定不移地加强团结合作。团结出凝聚力、出战斗力、出生产力,团结也出财富、出干部。近代中国睁眼看世界的第一人林则徐,曾任职昆明,并一直以“海纳百川、有容乃大,壁立千仞、无欲则刚”自勉。作为“班长”,我将高度重视班子的团结,大事讲原则,小事讲风格,平时多沟通,遇事多协商,努力营造一个既能充分发扬民主,又能有效实现集中的良好氛围。各级干部对同事要有一份真情,对群众要有一份深情,对事业要有一份痴情,对所从事的工作要有一份激
情。我将团结和带领市委一班人,协调好与其他市级领导班子之间的关系,尊重老领导、老干部、老同志,增强班子成员之间的团结协作,切实形成推动昆明经济社会发展的整体合力。
七是坚定不移地推进工作落实。一个地区的发展,往往不是缺少好的思路,而是缺少抓落实的力度和解决问题的办法。贯彻十七大精神,一是认真学习,把握经济社会发展方向;二是认真研究,找准与市情的结合点,把握工作重点;三是认真落实,强化抓落实机制,把各项工作落到实处。党委的执政、人大的督政、政府的行政、政协的参政,这“四政”都是为老百姓服务的,为基层办事的。为此要制订实施最严格的限时办结制度、最严肃的服务承诺制度、最严厉的问责制度,简化办事流程,实施结果倒逼,实行现场会办,注重督查推动,严格奖惩激励。大力推行“一线工作法”,要求干部在一线工作,决策在一线落实,问题在一线解决,创新在一线体现,成效在一线检验。决策形成之前,应该广泛征求意见、充分酝酿讨论,但定下来的事,则必须无条件、无阻力、无障碍地坚决执行、迅速落实,做到说了算、定了干,高效率、快节奏,召之即来,来之能办,办之能成,强力推动各项工作落实。
八是坚定不移地保持清正廉洁。清正是为官之德,廉洁是民心所向。各级党政机关工作人员都要树立正确的权力观、利益观、幸福观,始终保持共产党人和公务人员的蓬勃朝气、昂扬锐气和浩然正气,清正廉洁,无私无畏。作为“班长”,从我做起,向我看齐,凡是要求大家做到的,自己首先做到;凡是要求大家不做的,自己带头不做。同时,加大从源头上预防和治理腐败的力度,坚决查处各种违法违纪现象,绝不让腐败分子在党内和公务员队伍中有藏身之地。我到昆明工
作人地两疏,与大家无亲无故,从未共事,与大家无恩无怨,只身一人,也无牵无挂,工作一定能无私无畏。
当前,正值年根岁底,工作千头万绪,各种事务较多。希望大家不要受人事调整的影响,不要因为主要负责同志的正常交流调动,使工作发生断层、出现落差、产生真空、影响连续,大家要一心一意、聚精会神、全力以赴干好工作,确保2007年圆满收尾,并科学谋划好2008年。特别是元旦、春节即将来临,要千方百计、群策群力让全市人民和所有外来人员,过上一个干净整洁、欢乐喜庆、殷实富足、平安祥和、美满幸福的节日。
各位领导,同志们,中央和省委派我到云南、昆明工作,不仅是给我一个服务昆明人民、建设昆明城市、发展昆明经济的宝贵机会,更是给我一个报效国家、回报人民、丰富人生的难得机遇。我一定抓住机会,珍惜机遇,拼命工作,会有累不垮的精神,耗不尽的精力,干不厌的激情,折不挠的毅力。我从未来过云南、到过昆明,现在已经成为云南人民、XX市民的一员。不来则已,一来就扎根,将与大家长期共事、处事、谋事、办事,一定会和大家成为永远的好同事。我的家乡在江苏苏北农村美丽的射阳河畔,少年时期,经常看到纤夫们背负纤绳毅然前行的身影,他们不屈不挠的坚强意志、负重奋进的敬业精神、无私无畏的高贵品德、齐心协力的合作态度,时时激励着我,鞭策着我,鼓舞着我。从现在开始,我愿做一名合格的“纤夫”,按照省委、省政府的掌舵指向,与昆明各族干群一道,心往一处想,劲往一处使,拉动XX市这艘“巨轮”快速平稳前行。请同志们相信我,监督我,帮助我。
范文三:c语言对比汇编的好处c语言对比汇编的好处简单来说,c语言对汇编语言进行了抽象,具有如下优点:。。。。。更符合人类思维习惯,开发效率高、时间短。模块化。可移植性好。提供数学函数并支持浮点运算。程序可读性和可维护性强。c语言当然也有缺点,比如实时性通常要比汇编差。在编写汇编的时候可以清楚的知道每一条指令究竟要多少个机器周期,但是在c中掌控准确的时间稍微困难一些。c51包含ansic关键字的同时,也有针对51单片机扩展的一些关键字。c51的扩展关键字从某种程度上体现了c51语言与标准c语言的不同。例如可重入函数、存储模式等等都是标准c中不存在的问题。ansic关键字。。。。。。。。。。。。。。。。。。。。。。。。auto:自动变量double:双精度类型int:声明整型类型struct:声明结构体类型break:跳出当前循环else:条件语句否定分支(与if连用)long:声明长整型类型switch:用于开关语句。case:开关语句分支。。enum:声明枚举类型register:声明寄存器变量typedef:用以给数据类型取别名(当然还有其他作用)char:声明字符型类型extern:声明变量是在其他文件正声明(也可以看做是引用变量)。。return:子程序返回语句(可以带参数,也看不带参数)。。union:声明联合数据类型const:声明只读变量float:声明浮点型类型short:声明短整型类型unsigned:声明无符号类型类型continue:结束当前循环,开始下一轮循环。for:一种循环语句(可意会不可言传)signed:生命有符号类型类型void:声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
。。。。。。。。default:开关语句中的“其他”分支。goto:无条件跳转语句。。。。sizeof:计算数据类型长度。。volatile:说明变量在程序执行中可被隐含地改变。do:循环语句的循环体while:循环语句的循环条件static:声明静态变量if:条件语句c51扩展关键字_at_alienbdatabitcodecompactdataidatainterruptlargepdata_priority_reentrantsbitsfrsfr16small_task_usingxdata为变量定义存储空间绝对地址声明与pl/m51兼容的函数可位寻址的内部ram位类型rom使用外部分页ram的存储模式直接寻址的内部ram间接寻址的内部ram中断服务函数使用外部ram的存储模式分页寻址的外部ramrtx51的任务优先级可重入函数声明可位寻址的特殊功能位8位的特殊功能寄存器16位的特殊功能寄存器内部ram的存储模式实时任务函数选择工作寄存器组外部ramc51的运算符与c语言几乎无异(至今没有发现区别)。算术运算符+加,。一元取正。
*/%-++减,。一元取负。乘。除取模。自减1。自加1逻辑运算符||。逻辑与逻辑或逻辑非关系运算符>>=>
其它运算符。sizeof*->.expr1。expr2:expr3计算字节数指针操作求址下表运算符成员访问运算符成员访问运算符运算符在c51中与标准的c语言并没有什么差异,但是变量却有一些比较关键的区别。变量的数据类型基本变量类型与标准c语言,c51的基本数据类型有char、int、short、long和float。除float外均可以使用signed和unsigned指定有符号型和无符号型,默认情况下都是signed。char占用一个字节,int和short都占2个字节,long占4个字节,float占4个字节。其它数据类型指针类型:指针与标准c中的指针概念相同,指向一个特定的地址(地址存放的可以是变量也可以是函数)。例如:intfunc(inta,intb);int(*pointer)(int,int)=func;其它数据类型:enum、struct、union以及数组。专有数据类型:c51专有数据类型:bit、sfr、sfr16以及sbit。bit变量存储在可位寻址区,保存一位二进制数。注:不能用指针指向位变量。sfr和sfr16指的是特殊寄存器变量。sbit声明的是可位寻址变量的一个位。可位寻址的变量就是存储在bdata的变量,以及部分sfr。例如:
intbdatabittest;sbitbit0=bittest^0;例子中的bit0就是bittest的第0位。变量的作用域c51的变量分为局部变量和全局变量。变量的存储种类auto:默认register:编译器尽量将变量放在寄存器中。extern:全局变量,可以在多个文件中使用。static:使得局部变量的寿命与程序相同;使得全局变量只在文件内有效。变量的存储区域这个是c51与标准c语言区别很明显的地方。中可以指定变量存储在具体的存储器c51区域内:例如片内ram、片外ram、或者是rom里。例如:chardatatest='c';定义test变量存储在直接寻址的内部ram区。具体的存储区域如下表:存储类型dataidatapdataxdatacodebdata指针与存储区域存储区域片内直接寻址ram片内间接寻址ram分页寻址的片外ram片外数据存储(64k)片内统一编址rom(64k)片内可位寻址的ram(128位)
与变量相同,我们也可以指定指针的存储区域,以及指针所指向的变量的存储区域。指明了所指向变量的具体存储区域的指针效率要更高一些,占用的存储区也少一些(三字节一字节)。例如:chardata*str1;//指针指向data存储区的字符变量chardata*datastr2;//指针本身也在data区域绝对地址的变量在c51中,可以另变量存储在存储器中的特定地址。这是通过“_at_”关键字实现的。例如:chardatatest_at_0x100;不过需要注意的是,绝对地址的变量具有如下要求:。。。不能初始化bit类型不能用绝对地址只有全局变量才可以使用绝对地址顺序结构、顺序结构、选择结构与循环结构顺序结构仅仅是简单的一个语句一个语句的执行。选择结构的语句有:ifelse,switch循环结构的语句有:for,while,dowhile与标准c语言一样,循环结构中可以使用break和continue,switch中可以使用break。函数在c51中,函数的声明,定义和调用的方式基本一致,这里仅仅记录一些主要的不同之处:可重入函数c51中的函数在默认情况下是不可以被多个进程共享的,而可重入函数则没有这个限制。让函数可重用的方法如下:
inttestfunc(inta,intb)reentrantreentrant;指定寄存器组在c51中,我们可以指定函数指定特定的寄存器组。如果为中断函数指定寄存器组,那么所有被该中断函数调用的函数都必须使用这个寄存器组。指定函数使用的寄存器组的方法是在函数原型后面加一个usingn,n表示寄存器组。inttestfunc(inta,intb)using00;中断服务子程序(中断函数)中断服务子程序(中断函数)可以通过在函数原型后面添加interruptn来指定中断n的中断服务子程序。inttestfunc(inta,intb)interrupt0;
范文四:汇编语言复习汇编语言考试复习范围:课本的习题:p98(习题三)6-14
7.什么是堆栈操作。以下关于堆栈操作的指令执行后,sp的值是多少。
pushaxpushcxpushdxpopaxpushbxpopcxpopdx
堆栈被定义为一种先进后出的数据结构,即最后进栈的元素将被最先弹出来。堆栈从一个称为栈底的位置开始,数据进入堆栈的操作称为压入(或压栈),数据退出堆栈的操作称为弹出,每进行一次弹出操作,堆栈就减少一个元素,最后一次压入的元素,称为栈顶元素,压入弹出操作都是对栈顶元素进行的堆栈的两种基本的操作。
在进行以上一系列堆栈操作后,sp指针的值是原sp-2。8
用汇编语言指令实现以下操作。
(1)将寄存器ax、bx和dx的内容相加,和放在寄存器dx中。addax,bxadddx,ax
(2)用基址变址寻址方式(bx和si)实现al寄存器的内容和存储器单元buf中的一
个字节相加的操作,和放到al中。addal,byteptr[bx][si]
(3)用寄存器bx实现寄存器相对寻址方式(位移量为100h),将dx的内容和存储单元
中的一个字相加,和放到存储单元中。add100h[bx],dx
(4)用直接寻址方式(地址为0500h)实现将存储器中的一个字与立即数3abch相加,
和放回该存储单元中。movax,3abchadd[0500h],ax
(5)用串操作指令实现将内存定义好的两个字节串buf1和buf2相加后,存放到另一
个串buf3中的功能。……
movcx,countcx存放count地址
movsi,offsetbuf1计算出buf1地址存入si
movdi,offsetbuf2计算出buf2地址存入dimovbx,offsetbuf3计算出buf3地址存入bxagain:
lodsb是将ds:[si]处的字节送到al中,si将随df的设置'
增1'(df=0,使用cld指令设置)或者是'减1'(df=1,使用std指令设置)而指向下一个字节
addal,[bx]将地址[bx]中的数值与al相加incbxbx加1deccxcx减1jnzagaincx非0则循环跳转到标号again处继续,如果cx为0则跳出循环……9
指出下列指令中,源操作数及目的操作数的寻址方式。(1)subbx,[bx+35];寄存器寻址、寄存器相对寻址(2)movax,2030h;寄存器寻址、立即寻址(3)scasb;隐含操作数为寄存器寻址和寄存器间接寻址(4)inal,40h;寄存器寻址、立即寻址(5)mov[di+bx],ax;基址加变址寻址、寄存器寻址(6)addax,50h[di];寄存器寻址、寄存器相对寻址(7)moval,[1300h];寄存器寻址、直接寻址(8)mulbl;寄存器寻址、目的操作数为隐含寄存器寻址
10已知(ds)=1000h,(si)=0200h,(bx)=0100h,(10100h)=11h,(10101h)=22h,(10600h)=33h,(10601h)=44h,(10300h)=55h,(10301h)=66h,(10302h)=77h,(10303h)=88h,试分析下列各条指令执行完后ax寄存器的内容。(1)movax,2500h(ax)=2500h(2)movax,500h[bx](ax)==4433h(3)movax,[300h](ax)=6655h(4)movax,[bx](ax)=2211h(5)movax,[bx][si](ax)=6655h(6)movax,[bx+si+2](ax)=8877h11判断下列指令是否有错,如果有错,说明理由。(1)subbl,bx;两个操作数的宽度不一样(2)movbyteptr[bx],3456h;将16位的立即数传送到一个字节的内存单元(3)shlax,ch;移位指令的移位位数用cl给出,不能用ch。(4)movah,[si][di];不能用两个变址寄存器来实现寻址操作(5)shrax,4;只有当移位位数为1时,才能用立即数表达(6)movcs,bx;不能对cs实现传送操作(7)mov125,cl;立即数不能做目的操作数
(8)movax,byteptr[si];源操作数限定为字节,与目的操作数宽度不一致(9)mov[di],[si];两个操作数不能同时为内存数12设(ds)=1000h,(es)=2000h,(ss)=3000h,(si)=0080h,
展开阅读全文