用debug写汇编程序

上传人:c****d 文档编号:242973629 上传时间:2024-09-13 格式:PPT 页数:31 大小:73.50KB
返回 下载 相关 举报
用debug写汇编程序_第1页
第1页 / 共31页
用debug写汇编程序_第2页
第2页 / 共31页
用debug写汇编程序_第3页
第3页 / 共31页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,计算机数据采集系统,第4章 用debug编写汇编程序,1,4.1 机器语言与汇编语言,一、机器语言,机器语言是,机器指令,的集合。,机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列,二进制数字,。计算机将之转变为一列,高低电平,,以使计算机的,电子器件,受到驱动,进行运算。,用机器语言编写的程序是计算机唯一能够直接识别并执行的程序,而用其他语言编写的程序必须经过,翻译,才能变换成机器语言程序,所以,机器语言程序被称为,目标程序,。,2,二、机器语言的缺点,早期的程序设计均使用机器语言。程序员们将用0、1数字编成的程序代码打在纸带或卡片上,1打孔,0不打孔,再将程序通过,纸带机,或,卡片机,输入计算机,进行运算。,应用,8086CPU,完成运算,s=768+12288-1280,,,机器码如下:,11,00,01,假如将程序错写成以下这样,请读者找出错误。,11,00,01,3,要书写和阅读机器码程序不是一件简单的工作,要记住所有抽象的二进制码。,上面只是一个非常简单的小程序,就暴露了机器码的晦涩难懂和不易查错。写如此小的一个程序尚且如此,实际上一个有用的程序至少要有,几十行,机器码。,试想:如果程序里有一个“1”被误写为“0”,又如何去查找呢?,4,三、汇编语言,为了克服机器语言的缺点,人们采用,助记符,表示机器指令的操作码,用,变量,代替操作数的存放地址等,这样就形成了汇编语言。,汇编语言的主体是,汇编指令,。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。,例如:,机器指令,11000,表示把寄存器,BX,的内容送到,AX,中。汇编指令则写成,mov,ax,bx,。,这样的写法与人类语言接近,便于阅读和记忆。,操作:寄存器,BX,的内容送到,AX,中,机器指令:,11000,汇编指令:,mov,ax,bx,5,用汇编语言编写的程序称为,汇编源程序,。,汇编语言是一种符号语言,比机器语言容易理解和掌握,也容易调试和维护。但是,汇编语言源程序要,翻译,成机器语言程序才可以由计算机执行。这个翻译的过程称为“,汇编,”,这种把,汇编源程序,翻译成,目标程序,的语言加工程序称为,汇编程序,。,6,4.2 第一个汇编程序,4.2.1 相关的debug命令,一、用E输入机器语言程序,用G运行,-D 100,-F 100 17F 00,-D 100,-E 100,B2 01 B4 02 CD 21 CD 20,-D 100,-G=100,注:G =运行起始地址。若省略起始地址,则从CS:IP处开始运行。,7,二、用A输入汇编语言程序,用U反汇编,-D 100,- F 100 17F 00,- A 100,MOV DL, 01,MOV AH, 02,INT 21,INT 20,- U 100,-G=100,8,4.2.2 汇编与反汇编,一、汇编:汇编语言机器语言,工具:手工做;,DEBUG的A命令;,MASM、TASM等汇编软件。,二、反汇编:机器语言汇编语言,工具:DEBUG的U命令;,TRW等工具软件。,三、A命令 -A 地址,9,该命令,从指定地址开始允许输入汇编语句,,把它们汇编成机器代码,相继存放,在从指定地址开始的存储器中。,四、U命令,1)-U 地址,该命令,从指定地址开始,反汇编,32个字节,。若地址省略,则从上一个U命令的最后一条指令的下一单元开始显示32个字节。,2)-U 范围,该命令对,指定范围内存单元,进行反汇编。,10,4.2.3 第一个程序的含义,一、 DOS系统功能调用(课本P471),对8086系列机来说,MS-DOS操作系统是最主要的操作系统。MS-DOS操作系统除了具有较为完整的,文件管理功能,之外,同时还为各种应用程序、外围设备等提供,软件接口,。,DOS系统功能调用,是DOS为用户提供的常用子程序,可在汇编语言中直接调用。,DOS系统功能调用的方法一般可分为以下几步:, 设置所要调用功能的入口参数。, 在AH寄存器中存入所要调用功能的功能号。, INT 21H指令自动转入中断子程序入口。, 相应中断子程序运行完毕,可按规定取得出口参数。,11,二、常用的DOS系统功能调用,单字符输入(,1,号调用),单字符显示(,2,号调用),打印输出 (,5,号调用),结束调用 (,4CH,号调用),显示字符串(,9,号调用),字符串输入(,0AH,号调用),例如:单字符显示(,2,号调用),格式:,MOV DL,,,待显示字符的,ASCII,码,MOV AH,,,2,INT 21,功能:,将,DL,寄存器中的字符送显示器显示,如果,DL,中为,CTRL+BREAK,的,ASCII,码,则退出。,12,三、 第一个程序,MOV DL, 01,MOV AH, 02,INT 21,INT 20,思考:如何显示其他的ASCII字符?,(能说出两种修改方法吗?),13,4.3 扩展第一个汇编程序,例如:下面的程序可显示满屏的, (笑脸),(无限循环)。,MOV DL, 01,MOV AH, 02,INT 21,JMP 0100,14,4.4 全部ASCII字符显示程序,要求:,编写一程序,在屏幕上显示所有的ASCII字符。当程序编写好以后,可以把它保存在磁盘中,以便直接从DOS执行程序而不必进入DEBUG才能执行。,15,4.4.1 几个新的DEBUG命令,一、N命令(NAME),用法:,N 文件名,作用:,设定好L和W命令所要用到的文件名。,此命令设置好一个文件名。然后就可以用L命令把此文件装入内存中,或者用W命令把内存中的程序保存到此文件中。,二、L命令(LOAD),用法:,L 地址,作用:,把由N命令所设置好的一个文件,装入到由地址,开始的内存中。,16,装入完成后,BX和CX中保存了所读文件的字节数。,三、W命令(WRITE),用法:,W 地址,作用:,把指定内存区域中的数据写入由N命令所设置好,的一个文件中。在用此命令前,BX和CX中应包含,要写入文件的字节数。,17,4.4.2 把内存中的程序保存到磁盘文件中,文件名;,要设置好,三要素,程序在内存中的起始地址;,程序的大小,用,N命令,设置好文件名,用,R命令,设置好BX和CX的值(程序的大小),用,W命令,保存程序(在保存时要指定起始地址),18,例:保存第一个程序,C:debug,-F 100 17F 00,-A 100,0B3E:0100 MOV DL,01,0B3E:0102 MOV AH,02,0B3E:0104 INT 21,0B3E:0106 INT 20,0B3E:0108,-N C:1ST.COM,-R BX,19,BX 0000,:,-R CX,CX 0000,:8,-W 100,Writing 00008 bytes,-Q,C:,20,例:在DOS下执行第一个程序,C:dir 1st*.*,Volume in drive C is NTFSCCCC,Volume Serial Number is FC03-2958,Directory of C:,2003-09-07 18:51 8 1ST.COM,1 File(s) 8 bytes,0 Dir(s) 1,080,619,008 bytes free,C:1st,C:,21,例:在DEBUG下执行第一个程序,方法一:,C:DEBUG 1ST.COM,-G=100,Program terminated normally,-,22,方法二:,C:DEBUG,-N C:1ST.COM,-L 100,-G=100,Program terminated normally,-,23,4.4.3 显示全部ASCII字符的程序,一、输入ASCII程序,并将其保存在磁盘上,文件名:ALLASC.com,C:DEBUG,-A 100,0B3E:0100 MOV DL, 00,0B3E:0102 MOV AH, 02,0B3E:0104 INT 21,0B3E:0106 INC DL,0B3E:0108 JMP 102,0B3E:010A,24,-U 100 109,0B3E:0100 B200 MOV DL,00,0B3E:0102 B402 MOV AH,02,0B3E:0104 CD21 INT 21,0B3E:0106 FEC2 INC DL,0B3E:0108 EBF8 JMP 0102,-N ALLASC.COM,-R BX,BX 0000,:,-,25,-R CX,CX 0000,:0A,-W 100,Writing 0000A bytes,-Q,C:,26,二、在MS-DOS命令行状态下执行ALLASC.com,在DOS下用DIR命令查看,发现ALLASC.com只有10个字节。,直接敲入文件名ALLASC可执行此程序。屏幕上一遍又一遍地显示所有的ASCII字符,并且伴随着“叮”“叮”的声音。(需要用CTRL-BREAK中断),三、用DEBUG重新装入ALLASC.com,并在DEBUG下运行,27,四、进一步改善ALLASC.com,只显示一遍所有ASCII字符,然后自动回到DOS(若从DEBUG运行就回到DEBUG)而不必用CTRL+C中断。,28,C:DEBUG,-A 100,0B3E:0100 MOV CX, 100,0B3E:0103 MOV DL, 00,0B3E:0105 MOV AH, 02,0B3E:0107 INT 21,0B3E:0109 INC DL,0B3E:010B LOOP 105,0B3E:010D INT 20,0B3E:010F,-,29,-U 100 10D,0B3E:0100 B90001 MOV CX,0100,0B3E:0103 B200 MOV DL,00,0B3E:0105 B402 MOV AH,02,0B3E:0107 CD21 INT 21,0B3E:0109 FEC2 INC DL,0B3E:010B E2F8 LOOP 0105,0B3E:010D CD20 INT 20,-,30,-N ALLASC-1.COM,-R BX,BX 0000,:,-R CX,CX 0000,:0F,-W 100,Writing 0000F bytes,-Q,C:,31,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!