资源描述:
《汇编语言第一章 预备知识课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、AssemblyLanguageProgramming第一章预备知识一、程序设计语言简介(P1)2、机器语言计算机唯一能够直接识别的语言,用0和1来表示。致命缺点:难以使用。机器语言程序设计语言低级语言汇编语言:MASM高级语言,例如:C/C++、JAVA1、程序设计语言的分类13、汇编语言用便于记忆的符号(助记符)来表示。特点:汇编指令与机器语言一一对应,相对机器语言易于理解、掌握,但必须经过汇编程序翻译才能执行。4、高级语言用更加接近自然语言和数学符号来表示。特点:便于使用,便于交流和推广。虽然高级语言编程效率高,但运行效率低25、学习汇编语言的意义
2、①与硬件密切相关,是学习硬件类课程的基础课。②有利于理解计算机的工作原理。③可直接而有效地控制硬件。④执行效率高,占用空间小。⑤特殊应用只能使用汇编语言,如加密解密等。应该指出的是:在计算机速度大大提高和存储器容量大大增加的今天,高级语言的使用更为广泛和普遍。3二、数据表示(P4)1、数制(计数符号、基数和权、计数规则)①计数符号用于书写数值的符号,所有计数符号的集合称作数符集。k进制的数符集中必然包含k个符号。二进制的数符集中有两个符号:0和1八进制中有8个符号:0~7十进制中有10个符号:0,~9十六进制中有16个符号:0~9,A,B,C,D,E,F
3、4②基数和权把k称为一个数制的基数,而把ki称为k进制数第i位的权。③计数规则:“逢k进1,借1当k”。④汇编语言中数的书写方法:二进制数尾部加B(b);八进制数尾部加Q(q);十进制数尾部加D(d),但通常可以省略。十六进制数尾部加H(h),如果以记数符号a,b,c,d,e,f打头,头部应加0,记数符号a,b,c,d,e,f不区别大小写;52、进制之间的转换①十进制转化为二进制整数部分除2取余,小数部分乘2取整。②十进制转化为八进制整数部分除8取余,小数部分乘8取整。③十进制转化为十六进制整数部分除16取余,小数部分乘16取整。6⑥十六进制转化为二进制
4、1位十六进制化成4位二进制⑦八进制转化为二进制1位十六进制化成3位二进制④二进制转化为十六进制从小数点向两边4位1组合并(不足4位补0)⑤二进制转化为八进制从小数点向两边3位1组合并(不足3位补0)73、BCD编码(8421码)(P6)计算机中的数采用二进制数,字母、符号等也同样采用二进制代码的排列组合表示。BCD码规定用四位二进制数表示一位十进制数。十进制BCD码00000100012001030011401005010160110701118100091001对多位十进制数,只要把每一位十进制数分别表示为四位二进制数即可。例如:十进制28的BCD码为
5、:00101000十进制956的BCD码为:1001010101108BCD编码在计算时的问题(补充)例如:十进制5的BCD码为:0101十进制8的BCD码为:1000当计算5+8时:0101+1000————————1101运算结果1101不是BCD码,出现错误。校正方法:加6修正。1101+0110————————0001001194、ASCII码(P7)解决字母、符号在计算机内部表示。例如:A的ASCII码为41H。基本ASCII码(标准ASCII码)用七位二进制数表示一个符号(共128个)。请应记住常用字符的ASCII码。数字:30H~39H英文
6、字母A:41H英文字母a:61H105、基本数据类型(P8)②字:第15位第1位第0位③双字:第31位第1位第0位①字节:第7位第1位第0位⑥字符串:例如'ABC'相当于41H,42H,43H④四字⑤十字节116、汇编语言中的常数(补充)②八进制常数:以q或Q结尾的若干个0~7组成的序列。例如:177Q③十进制常数:以D或d结尾的若干个0~9组成的序列。例如:123D①二进制常数:以B或b结尾的若干个0和1组成的序列。例如:00001010B④十六进制常数:以H或h结尾的若干个0~9和A~F1组成的序列。例如:0FFFH12⑤字符串常数:用引号括起的若干
7、个字符。例如:‘0’的值为30H‘AB’的值为4142H‘ab’的值为6162H例如:MOVAL,65DMOVAL,41HMOVAL,101QMOVAL,01000001BMOVAL,‘A’上面5条指令等价。13三、有符号数表示方法(用0和1表示符号)1、原码表示(补充)①正数的原码:正数符号位为0,数值位照抄。例1:X=+25=11001B=0011001B用8位来表示,[X]原=00011001B②负数的原码:符号位为1,数值位照抄。例2:X=-25=-11001B=-0011001B用8位来表示,[X]原=10011001B③0的原码不唯一因为:+
8、0=+000000B[+0]原=00000000B-0=-000000B[-0]