汇编语言第1章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

IBM—PC汇编语言程序设计(第2版)清华大学计算机系列教材沈美名温冬蝉编著计算机语言的发展机器语言FORTRANBASICCOBOLPASCALC/C++JAVA...汇编语言高级语言汇编语言的特点面向机器的低级语言,通常是为特定的计算机或计算机系列专门设计的。保持了机器语言的优点,具有直接和简捷的特点。可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。经常与高级语言配合使用,应用十分广泛。#includestdafx.h#includestdio.hintmain(intargc,char*argv[]){inta,b,c;a=1;b=2;c=a+b;printf(“c=%d\n,c);return0;}编程实现c=a+b,并在屏幕上显示出结果。例1编译后的目标文件达到3.59KBdatasegmentadb?bdb?cdb?stringdb'c=$'dataendscodesegmentmainprocfarassumecs:code,ds:data,es:datastart:pushdssubax,axpushaxmovax,datamovds,axmoves,axmova,1movb,2moval,aaddal,bmovc,alleadx,stringmovah,09int21haddc,30hmovdl,cmovah,2int21hmovdl,0ahint21hmovdl,0dhint21hretmainendpcodeendsendstart例2.C=a+b汇编后的目标文件只有208字节汇编语言的应用系统程序、效率代码、I/O驱动程序70%以上的系统软件是用汇编语言编写的。某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。高级绘图程序、视频游戏程序一般是用汇编语言编写的。教师建议目标:●了解汇编语言的特性及其编程技术,●建立起“机器”和“程序”、“空间”和“时间”的概念。建议:●充分注意“汇编”课实践性强的特点,●多读程序,多写程序,多上机调试程序,●熟悉PC机的编程结构,●掌握汇编语言及其程序设计的基本概念、方法和技巧。参考资料1.80X86汇编语言程序设计沈美明温冬婵清华大学出版社2.IBMPC汇编语言与程序设计PETERABEL编著第4版清华大学出版社.PRENTICEHALL第5版人民邮电出版社3.IBMPC汇编语言与程序设计例题习题集温冬婵沈美明清华大学出版社教学日历:第一周绪论数制数制之间的转换数和字符的表示运算第二周计算机组织CPU存储器外部设备寻址方式第三周指令系统(1)第四周指令系统(2)BIOS和DOS调用第五周上机过程完整段定义和简化段定义格式伪操作第六周循环与分支程序设计子程序结构第七周高级汇编语言技术I/O程序设计第八周中断程序设计复习第1章基础知识数制数制之间的转换运算数和字符的表示预备知识存储容量1K=1024=210(Kilo)1M=1024K=220(Mega)1G=1024M=230(Giga)1个二进制位:bit(比特)8个二进制位:Byte(字节)1Byte=8bit2个字节:Word(字)1Word=2Byte=16bit1.数制数制基数数码二进制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二进制:基数为2,逢二进一11012=1×23+1×22+1×20=1310十六进制:基数为16,逢十六进一1001,0001,1000,01119187=9×163+1×162+8×161+7×1602.数制之间的转换二进制十六进制十进制二进制十进制十六进制降幂法除法二进制十六进制001101011011111135BF∴0011,0101,1011,1111B=35BFHA19C1010000110011100∴A19CH=1010,0001,1001,1100B1011B=23+21+20=11D降幂法除法例:27D=?B2711331----2n16842111011∴27D=11011B二进制十进制十六进制十进制BF3CH=11163+15162+3161+12160=48956D降幂法除法例:399D=?H39914315399/16→24/16→1/16→0---↓↓↓16n256161F8118F∴399D=18FH算术运算二进制数:逢二进一借一为二加法规则乘法规则0+0=000=00+1=101=01+0=110=01+1=0(进位1)11=13.运算(算术运算和逻辑运算)05C3H3D25H42E8H+3D25H05C3H3762H-1-1十六进制数:逢十六进一借一为十六逻辑运算(按位操作)“与”运算(AND)“或”运算(OR)ABABABAB000000010011100101111111“非”运算(NOT)“异或”运算(XOR)AAABAB0100010011101110例:X=00FFHY=5555H,求Z=XY=?X=0000000011111111BY=0101010101010101BZ=0101010110101010BZ=55AAH4.数和字符的表示计算机中正负数的表示76543210符号位数值位假设机器字长为16位:符号位=0正数数值位=1负数1514131211109876543210假设机器字长为8位:H.O.ByteL.O.ByteH.O.NibbleL.O.Nibble数的常用表示法——原码反码补码原码表示法:符号+绝对值例:n=8bit[+3]原码=0000,0011=03H[-3]原码=1000,0011=83H[+0]原码=0000,0000=00H[-0]原码=1000,0000=80H0的表示不惟一反码表示法:正数的反码同原码,负数的反码数值位与原码相反例:n=8bit[+5]反码=0000,0101=05H[-5]反码=1111,1010=FAH[+0]反码=0000,0000=00H[-0]反码=1111,1111=FFH0的表示不惟一例:机器字长8位,[-46]补码=?[46]补码=001011101101000111010010=D2H机器字长16位,[-46]补码=FFD2H[+0]补码=000000001111111100000000=[-0]补码0的表示惟一按位求反末位加一按位求反末位加一补码(Two’sComplement)表示法:正数的补码:同原码负数的补码:(1)写出与该负数相对应的正数的补码(2)按位求反(3)末位加一十进制二进制十六进制十进制十六进制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]补码减法规则:[X-Y]补码=[X]补码+[-Y]补码补码减法可转换为补码加法64(-46)18+010000001101001000010010+例:进位和溢出进位:由于运算结果超出了位数,最高有效位向前的进位,这一位自然丢失,一般不表示结果的对错。溢出:表示结果超出了字长允许表示的范围,一般会造成结果出错。例:(-64)1100000012701111111+6401000000+100000001010000000012810000000进位溢出字符的表示ASCII码:用一个字节来表示一个字符,低7位为字符的ASCII值,最高位一般用作校验位。例:‘A’41H‘a’61H‘1’31H换行0AH回车0DH空格20H第1章作业Page141.1~1.8

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功