汇编语言程序设计1.ppt_第1页
汇编语言程序设计1.ppt_第2页
汇编语言程序设计1.ppt_第3页
汇编语言程序设计1.ppt_第4页
汇编语言程序设计1.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

汇编语言程序设计AssemblyLanguageProgramming,第一章基础知识,1数的表示,数的表示数制数制之间的转换运算计算机中数的表示BCD码字符编码基本位操作,预备知识,22=424=1628=256210=1024220=10485761K=210=1024(Kilo)1M=1024K=220(Mega)1G=1024M=230(Giga)1T=1024G=240(Tera)1个二进制位:bit(比特)8个二进制位:Byte(字节)1Byte=8bit2个字节:Word(字)1Word=2Byte=16bit1个双字:DWord=2Word,B:Byteb:bit网络速度:10Mbps文件大小:10MB,1.1数制,十进制:基数为10,逢十进一12.34D=1101+2100+310-1+410-2二进制:基数为2,逢二进一1101B=123+122+120=1310十六进制:基数为16,逢十六进一9187H=9163+1162+8161+7160八进制:基数为8,逢八进一,数制基数数码,二进制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,F,二进制十进制1011B=11D除法:整数部分除2;小数部分乘2。,1.2数制之间的转换,小数可能不能用二进制来表示完全,如0.6,二进制十六进制001101011011111135BFA19C1010000110011100A19CH=1010,0001,1001,1100B4位二进制对应一位16进制,十六进制十进制BF3CH=11163+15162+3161+12160降幂法除法常用数000H12880H255FFH256100H327677FFFH65535FFFFH,二进制加法规则乘法规则0+0=000=00+1=101=01+0=110=01+1=0(进位1)11=1十六进制05C3H3D25H+3D25H-05C3H42E8H3762H,1.3算术运算,1.4计算机中数的表示,肯定是用二进制是否需要表示负数?无符号数(unsigned)和有符号数(signed)无符号数用“二进制”来表示,有符号数用补码来表示注意正数与无符号数的差别除非明确说明(?),汇编中任何一个数都有二义性:30H?80H?,补码,定义最高有效位为符号位:0正;1负正数的补码为它本身(二进制值);负数的补码由2n-|x|求得。n为机器的字长。注:2n-|x|等价于对|x|取反+146补码=00101110-46补码=28-|-46|=1,000011010010-46补码:|-46|=46=0010111011010010,补码的特性,求补特性,加减x+y补=x补+y补x-y补=x补-y补这个特性使得对于补码数或者一般的二进制数对加减规则一样。不可用于乘除运算。x-y补=x补+-y补:减法可用加法实现。,求补:取反加1x补求补-x补补码为11001100,十进制数为?,举例,-321110,0000+250001,1001-71111,10010000,0110(取反)0000,0111(加1),补码的物理意义,考虑8位二进制数,其表示范围为0255,即256=0。若将其想象为一个环,以0为基点,向顺时针方向移246个单位,则得246。然而,若按逆时针方向移动,则该位置就是-10。即-10=0F6H=246因此,在8位二进制表示下,对于负数x(-128-1)来说,存在下列等式:-x=256-x,数的范围,无符号数:8位(0-255)16位(0-65535)有符号数:8位(-128-127)16位(-32768-32767)n位补码表示数范围:-2n-1N2n-1-1,n位二进制补码的表数范围,十进制二进制十六进制十进制十六进制n=8n=16+127011111117F+327677FFF+126011111107E+327667FFE.+20000001002+20002+10000000101+100010000000000000000-111111111FF-1FFFF-211111110FE-2FFFE.-1261000001082-327668002-1271000000181-327678001-1281000000080-327688000,一个带符号数在不同位数下,其二进制补码表示可能是不同的,补码:C语言,其实C语言中unsigned和signed两个关键字就是来区别无符号数和有符号数,缺省的是signed类型,也就是有符号数。实例:chari=-1;shortj=-1;intk=-1,数的扩展,扩展:保持数不变,而“拉长”它。无符号数:加01=0000,00010000,0000,0000,0001有符号数:加符号位-1=1111,11111111,1111,1111,1111,1.5BCD(Binary-CodedData)码,Why?十进制用起来很方便。二进制编码的十进制:PackedBCD:用4位二进制表示一个十进制数码0000-00001-10001,0010,0011,0100=1234UnpackedBCD:用8位二进制表示一个十进制数码*0000-0*0001-1*,0001,*,0010,*,0011,*,0100=1234,1.6字符编码,ASCII:英文,7bits常用字符的ASCII码。数字09:30H39H字母AZ:41H5AH字母az:61H7AH空格:20H回车CR:0DH换行LF:0AH空字符:0注意回车与换行的差别:CR用来控制光标回到当前行的最左端;LF用来移动光标到下一行,而所在列不变。,1.6字符编码,GB:国标码,是我国于1981年公布的国家标准,作为信息交换用汉字编码的字符(GB2312-80),包括6763个简体字以及其他字符。GBK:GB的扩展,包括Unicode中的20902个汉字,也称汉字大字符集。,BIG5:大五碼,包括13,060個繁體字,也是香港比較多人使用的標準。UNICODE:16位二进制=65536汉字:20902个UTF-8:用4字节表示,232=42亿.,2基本位操作,逻辑操作移位与循环移位,2.1逻辑运算(按位bit操作),“非”运算(NOT)AA0110,“与”运算(AND)ABAB000010100111,“异或”运算(XOR)ABAB000011101110,“或”运算(OR)ABAB000011101111,例:X=00FFHY=5555H,求Z=XY=?X=0000000011111111BY=0101010101010101BZ=0101010

温馨提示

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

评论

0/150

提交评论