汇编语言程序设计课件基础知识_第1页
汇编语言程序设计课件基础知识_第2页
汇编语言程序设计课件基础知识_第3页
汇编语言程序设计课件基础知识_第4页
汇编语言程序设计课件基础知识_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

汇编语言程序设计姓名:陈少军电话mail:mcc@QQ:545373402

汇编语言程序设计前言编程之道(TheTaoOfProgramming)Book1--TheSilentVoid第一篇静寂的空宇Thusspakethemasterprogrammer:

编程大师如是说:"Whenyouhavelearnedtosnatchtheerrorcodefromthetrapframe,itwillbetimeforyoutoleave."

编程大师如是说:“当你有本事夺走我手中的这块水晶石时,就是你出师的时候了。”编程之道

1.1Somethingmysteriousisformed,borninthesilentvoid.Waitingaloneandunmoving,itisatoncestillandyetinconstantmotion.Itisthesourceofallprograms.Idonotknowitsname,soIwillcallittheTaoofProgramming.

在静寂的空宇里,一种神奇的物质形成并诞生了。它立刻便静止,独自守候着,毫无动静,然而又处于永恒的运动之中。它是所有程序的源头,我不知道它的名字,所以我将称它为编程之道。IftheTaoisgreat,thentheoperatingsystemisgreat.Iftheoperatingsystemisgreat,thenthecompilerisgreat.Ifthecompilerisgreater,thentheapplicationsisgreat.Theuserispleasedandthereisharmonyintheworld.如果此道是完美的,那么操作系统就是完美的;如果操作系统是完美的,那么编译程序就是完美的;如果编译程序是完美的,那么应用程序就是完美的。所以用户心满意足,整个世界因此和谐。TheTaoofProgrammingflowsfarawayandreturnsonthewindofmorning.编程之道流逝远去,又乘着晨风而归。编程之道1.2TheTaogavebirthtomachinelanguage.Machinelanguagegavebirthtotheassembler.此道产生了机器语言,机器语言又产生汇编语言。。

Theassemblergavebirthtothecompiler.Nowtherearetenthousandlanguages.汇编语言产生了编译程序,如今有了上万种的语言。Eachlanguagehasitspurpose,howeverhumble.EachlanguageexpressestheYinandYangofsoftware.EachlanguagehasitsplacewithintheTao.不论多么的微不足道,每种语言都有他自己的目的,每种语言都表达了软件的阴阳两极。每种语言都各得其道。ButdonotprograminCOBOLifyoucanavoidit.但是,应尽量避免用COBOL语言编写程序。编程之道1.3InthebeginningwastheTao.TheTaogavebirthtoSpaceandTime.Therefore,SpaceandTimearetheYinandYangofprogramming.道之初,带来了空间和时间,所以,空间和时间是编程的阴阳两极。ProgrammersthatdonotcomprehendtheTaoarealwaysrunningoutoftimeandspacefortheirprograms.ProgrammersthatcomprehendtheTaoalwayshaveenoughtimeandspacetoaccomplishtheirgoals.

不懂编程之道的编程者常常把空间和时间消耗殆尽,得道的编程者则总是有足够的空间和时间去完成编程任务。Howcoulditbeotherwise?除此之外,难道还有其它的情形吗?编程之道1.4ThewiseprogrammeristoldabouttheTaoandfollowsit.TheaverageprogrammeristoldabouttheTaoandsearchesforit.ThefoolishprogrammeristoldabouttheTaoandlaughsatit.精明的编程者听说了此道,并遵循它;普通的编程者听说了此道,并寻觅它;愚蠢的编程者听说了此道,却嘲笑它。

Ifitwerenotforlaughter,therewouldbenoTao.要不是因为有嘲笑,道也就不复存在了。Thehighestsoundsarethehardesttohear.Goingforwardisawaytoretreat.Greatertalentshowsitselflateinlife.Evenaperfectprogramstillhasbugs.最高的声音最难被听见。前进也是一种倒退。大器晚成。即使是一个完美的程序也仍然会有隐患。

计算机语言的发展机器语言FORTRANBASICCOBOLPASCALC/C++JAVA...汇编语言高级语言汇编语言的特点面向机器的低级语言,通常是为特定的计算机或计算机系列专门设计的。保持了机器语言的优点,具有直接和简捷的特点。可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。经常与高级语言配合使用,应用十分广泛。例1

编程实现c=a+b,并在屏幕上显示出结果。#include"stdafx.h“#include"stdio.h"int

main(int

argc,char*argv[]){

int

a,b,c;a=1;b=2;c=a+b;

printf(“c=%d\n",c);return0;}编译后的目标文件达到3.59KB使用汇编编写相应功能的程序datasegmentadb?bdb?cdb?stringdb'c=$'dataendscodesegmentmainprocfarassumecs:code,ds:data,es:datastart:pushdssubax,axpushax

mov

ax,data

mov

ds,ax

mov

es,ax

mova,1

movb,2mov

c,almov

al,aaddal,bleadx,string

movah,09

int21haddc,30h

mov

dl,c

movah,2

int21h

movdl,0ah

int21h

movdl,0dh

int21hretmainendpcodeendsendstart汇编后的目标文件只有208字节汇编语言的应用系统程序、效率代码、I/O驱动程序70%以上的系统软件是用汇编语言编写的。某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。高级绘图程序、视频游戏程序一般是用汇编语言编写的。教师建议目标:了解汇编语言的特性及其编程技术,建立起“机器”和“程序”、“空间”和“时间”的概念。建议:充分注意“汇编”课实践性强的特点,多读程序,多写程序,多上机调试程序熟悉PC机的编程结构,掌握汇编语言及其程序设计的基本概念、方法和技巧。参考资料1.80X86汇编语言程序设计 沈美明温冬婵清华大学出版社2.IBMPC汇编语言与程序设计

PETERABEL编著 第4版清华大学出版社.PRENTICEHALL

第5版人民邮电出版社3.IBMPC汇编语言与程序设计例题习题集温冬婵沈美明清华大学出版社教学计划第1章 {3课时}第2章 {3课时}面向数据处理的程序设计教学组织简单数据处理(3) {9+3课时}复杂数据处理(3、5) {9+3课时}基本输入输出(3、8、5) {6课时}汇编语言程序格式(4) {3课时}子程序设计(3、6) {6课时}高级汇编技术(3、7) {3+3课时}覆盖章节1、2、3、4、5、6、7教学方式任务驱动的教学法提出问题设计解决方法画出流程图编写程序运行调试程序测试设计总结相关指令学习布置作业汇编语言程序设计第1章基础知识第1章基础知识数制数制之间的转换运算数和字符的表示预备知识存储容量1K=1024=210

1M=1024K=220

1G=1024M=230

1T=1024G=240

1个二进制位:bit(比特)8个二进制位:Byte(字节)1Byte=8bit2个字节:Word(字)1Word=2Byte=16bit1.数制二进制:基数为2,逢二进一

11012=1×23+1×22+1×20=1310十六进制:基数为16,逢十六进一

9187=9×163+1×162+8×161+7×160数制基数数码

二进制Binary20,1

八进制Octal80,1,2,3,4,5,6,7

十进制Decimal100,1,2,3,4,5,6,7,8,9

十六进制Hexadecimal160,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F2.数制之间的转换二进制十进制十六进制二进制十六进制

001101011011111135BF∴0011,0101,1011,1111B=35BFHA19C1010000110011100∴A19CH=1010,0001,1001,1100B二进制十进制1011B=23+21+20=11D

降幂法(除法)例:27D=?B2711331--

--2n168421

11011

∴27D=11011B

十六进制十进制

BF3CH=11163+15162+3161+12160

=48956D

降幂法除法

例:399D=?H39914315399/16→24/16→1/16→0---↓↓↓16n256161F81

18F

∴399D=18FH3.运算(算术运算和逻辑运算)算术运算二进制数:逢二进一借一为二加法规则乘法规则

0+0=0 00=0 0+1=1 01=0 1+0=1 10=0 1+1=0(进位1) 11=1十六进制数:逢十六进一借一为十六 05C3H 3D25H+) 3D25H -) 05C3H 42E8H 3762H逻辑运算(按位操作)“与”运算(AND)“或”运算(OR)

ABABABAB

000000010011100101111111“非”运算(NOT)

“异或”运算(XOR)

AA

ABAB0100010

011101110例:X=00FFHY=5555H,求Z=X

Y=?

X=0000000011111111B

Y=01010101

0101

0101BZ=0101010110101010BZ=55AAH4.信息在计算机中的表示无符号数的表示带符号数的表示字符的表示其它信息的表示无符号数的表示假设机器字长为8位00000000~111111110~255=(28-1)假设机器字长为16位0000000000000000~111111111111110~65535=(216-1)假设机器字长为32位0~232-1假设机器字长为64位0~264-1带符号数的表示假设机器字长为8位:假设机器字长为16位:符号位=0表示正数=1表示负数

76543210符号位

数值位H.O.NibbleL.O.Nibble符号位

数值位1514131211109876543210H.O.ByteL.O.Byte带符号数的常用表示法原码表示法:符号+绝对值例:n=8bit[+3]原码

=0000,0011=03H[-3]原码

=1000,0011=83H[+0]原码

=0000,0000=00H[-0]原码

=1000,0000=80H0的表示不惟一反码表示法:正数的反码同原码,负数的反码数值位与原码相反例:n=8bit[+5]反码

=0000,0101=05H[-5]反码

=1111,1010=FAH[+0]反码

=0000,0000=00H[-0]反码

=1111,1111=FFH0的表示不惟一补码表示法补码(Two’sComplement)表示法:正数的补码:同原码负数的补码:(1)写出与该负数相对应的正数的补码(2)按位求反(3)末位加一例:机器字长8位,[-46]补码=?[46]补码=001011101101000111010010=D2H机器字长16位,[-46]补码=FFD2H[+0]补码=000000001111111100000000=[-0]补码0的表示惟一按位求反末位加一按位求反末位加一十进制二进制十六进制十进制十六进制

n=8n=16+127011111117F+327677FFF+126011111107E+327667FFE......……...+20000001002+20002+10000000101+100010000000000000000-111111111FF-1FFFF-211111110FE-2FFFE......……...-1261000001082-327668002-1271000000181-327678001-1281000000080-327688000n位二进制补码的表示范围:

-2n-1≤N≤2n-1-1无符号整数的表示范围:

0≤N≤2n-1

补码的加法和减法:求补运算:对一个二进制数按位求反、末位加一[X]补码[-X]补码[X]补码加法规则:[X+Y]补码=[X]补码+[Y]补码减法规则:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论