太原理工汇编语言实验报告二
- 格式:doc
- 大小:41.00 KB
- 文档页数:4
汇编语言——实习报告在大学的学习生涯中,我有幸参与了一次关于汇编语言的实习。
通过这次实习,我对汇编语言有了更深入的理解和掌握,也积累了宝贵的实践经验。
一、实习目的本次实习的主要目的是让我们熟悉汇编语言的编程环境和基本语法,掌握汇编语言程序的设计和调试方法,提高我们的编程能力和解决问题的能力。
同时,通过实际的项目开发,培养我们的团队合作精神和创新意识。
二、实习环境我们使用的编程环境是 MASM(Microsoft Macro Assembler),这是一款功能强大的汇编语言编译器。
同时,我们还使用了一些调试工具,如 DEBUG 和 CodeView,来帮助我们查找和解决程序中的错误。
三、实习内容1、基础语法学习在实习的初期,我们首先学习了汇编语言的基础语法,包括数据类型、寄存器的使用、指令系统等。
通过大量的示例代码和练习,我们逐渐掌握了如何使用汇编语言进行基本的算术运算、逻辑运算和数据传输。
2、程序设计与实现在掌握了基础语法之后,我们开始进行程序设计和实现。
我们先后完成了一些简单的程序,如加法器、减法器、乘法器等。
在这个过程中,我们不仅要考虑程序的功能实现,还要注意代码的优化和效率。
3、系统调用和中断处理接下来,我们学习了如何在汇编语言中进行系统调用和中断处理。
通过使用系统提供的中断服务例程,我们实现了一些与操作系统交互的功能,如文件操作、控制台输入输出等。
4、项目开发在实习的后期,我们分组进行了一个小型的项目开发。
我们的项目是开发一个简单的操作系统内核,包括进程管理、内存管理、文件系统等模块。
在项目开发过程中,我们充分发挥了团队合作的精神,每个人负责一个模块的设计和实现,然后进行整合和调试。
四、实习中遇到的问题及解决方法1、语法错误在编写汇编代码时,由于对语法规则的不熟悉,经常会出现语法错误。
例如,忘记在指令后面添加操作数、寄存器的使用错误等。
对于这些错误,我们通过仔细检查代码和参考教材中的语法规则,逐步找出并改正了错误。
合肥工业大学实验报告课程:汇编语言程序设计专业班级:学号:姓名:实验一Debug程序的使用一. 实验目的1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。
2、掌握8086/8088的寻址方式及多字节数据的处理方法。
二. 实验内容1、利用DEBUG程序中的“E”命令,将两个多字节数“12345678H”和“FEDCBA98H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。
2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H 单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。
要求:本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。
三. 实验过程和程序基础题:1、利用DEBUG程序中的“E”命令,将两个多字节数“12345678H”和“FEDCBA98H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。
2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。
附加题:1. 从DS:0000H开始的5个16位带符号数分别记为x,y,z,v,w,用E命令初始化为:540,1,-1,1080,0, 试求w=(v-(x*y+z-540))/x2. 完成BX中1的个数的统计。
3. 用串操作指令将DS:0000开始20个字节初始化为:0CCH。
并将这20个字节的内容复制到其后的20个字节里。
四. 实验结果(包括必要的截图)基础题 1:基础题 2:附加题 1:附加题 2:附加题 3:五. 实验体会1. 在汇编语言中,变量的其实都是地址。
2. 在Debug中,数值都是16进制的。
3. 在读写内存中的数据时,必须指出数据类型是byte还是word。
汇编语言实验报告1.实验目的:掌握子程序设计方法,常用系统调用的使用方法,能够设计字符串处理相关的程序。
2.实验内容:从键盘输入(带回显)一个长度在10字符以内的字符串,并保存在缓冲区;检测并删除字符串中的数字字符,将字符串中所有小写字母改为大写字母;将处理后的字符串在新的一行显示,若字符串为空串则显示‘?’。
设计要求:以下两个功能使用子程序实现检测并清除数字字符;字符串中小写字母改为大写字母。
3.实验过程:前提:建立一个工作目录,将DEBUG,LINK,MASM放在一起。
①.编辑程序:用任意一种文本编辑器编写程序,程序需按照汇编语言程序框架来写,按要求将检测并清除数字字符;字符串中小写字母改为大写字母。
这两个功能模块写在子程序里。
②.汇编连接:得到可执行文件③.调试:执行查看运行结果是否正确。
根据结果修改完善程序。
以下是操作正确已经生成可执行文件的程序片段stack0 segment stack //堆栈段的定义dw 40 dup(?)stack0 endsdata segment //数据段的定义Maxlen db 11 //输入字符串的最大允许长度Inptlen db ? //实际输入的字符串的长度source db 11 dup(0) //用来存储输入的字符串result db 11 dup(0) //用来存储处理过后的字符串data endscode segmentassume cs:code,ds:data,ss:stack0main:mov ax,datamov ds,axlea dx,Maxlenmov ah,0ahint 21h //调用系统的输入字符串的功能xor cx,cxmov cl,Inptlen //初始化计数变量lea si,sourcelea di,result //初始化si和di的内容mov bx,0L1: push si //保护当前的si用来与调用子程序figure后进行对比call firgue //调用figure子程序,检测并清除数字字符pop axcmp ax,sijnz L8//判断当前字符是不是数字字符,是则跳转至L8,不是则按顺序执行call convert//不是数字字符则调用子程序convert,将小写字母改为大写字母。
汇编语言实验报告姓名:王先海专业:网络工程班级:133班学号:139074347实验内容一:编写一个程序,用来显示AL寄存器中的两位十六进位制数程序清单:datas segmentdata db '0123456789ABCDEF'datas endscodes segmentassume cs:codes,ds:datasstart: mov ax,55hmov bx,datasmov ds,bxmov bx,offset datapush axmov cl,04hlab1: shr al,1 ;循环4次逻辑右移1位取高位16进制数dec cljnz lab1xlatmov dl,almov ah,2int 21hpop axmov cl,04hmov ch,7fhlab2: and al,ch ;循环4次and使al高四位清零ror ch,1dec cljnz lab2xlatmov dl,almov ah,02hint 21hmov ah,4chint 21hcodes endsend start1.运行结果:2.思考与体会:循环需要一个跳出条件。
XLAT指令用来将AL中的内容置换成以(BX)为首址(AL)为位移量的内存单元中的内容。
实验内容二:1.程序说明:本程序是用来判别键盘上输入的字符:若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符<CR>,z则结束程序,若为其他字符则不显示,继续等待新的字符输入。
首先输入一个字符,将其和回车字符比较,若是回车字符,则结束程序。
1-9字符,则显示之。
若是若小于0,则重新等待输入。
若大于9,则跳转到和‘A’、Z’比较,若小于’A’,则重新等待输入,若大于’Z’,则跳转到和’a’、’z’比较处,若小于a或大于z,则重新等待输入,否则输出‘c’。
2.程序清单:datas segmentstr db ?,0ah,0dh,'$',' input again!',0ah,0dh,'$'datas endscodes segmentassume cs:codes,ds:datasstart: mov ax,datasmov ds,axnext1: mov ah,01hint 21hcmp al,0dhjz exitlea dx,strmov bx,dxnext2: cmp al,'1'jb next7cmp al,'9'ja next3mov [bx],aljmp next6next3: cmp al,'a'jb next4cmp al,'z'ja next7jmp next5next4: cmp al,'A'jb next7cmp al,'Z'ja next7next5: mov [bx],byte ptr 'c'next6: mov ah,9int 21hjmp next1next7: lea dx,str+4mov ah,9int 21hjmp next1exit: mov ah,4chint 21hcodes endsend start3.运行结果:4.思考与体会:根据条件判定进入不同的分支程序。
(最新版)汇编语言实验报告汇编语言课程设计学院:专业:姓名:学号:汇编语言是计算机专业的一门重要的专业基础课,主要介绍汇编语言程序设计的基本原理和方法。
汇编语言是一门理论性和实践性较强的课程,辅助课堂教学的实验有助于帮助学生理解汇编语言的基本原理,锻炼学生的动手能力,提高学生的综合应用知识的能力。
目录1 利用DEBUG调试汇编语言程序段………………………………………2 初级程序的编写与调试实验(一).................................................................................3 初级程序的编写与调试实验(二)………………………………………...4 汇编语言程序上机过程 .......................................................................................................... 5分支程序实验……………………………………………………………6 循环程序实验……………………………………………………………..1 利用DEBUG调试汇编语言程序段一.课程目的1.熟悉DEBUG有关命令的使用方法;2.利用DEBUG掌握有关指令的功能;3.利用DEBUG运行简单的程序段。
二.课程内容1.进入和退出DEBUG程序;2.学会DEBUG中的1)D命令(显示内存数据D 段地址:偏移地址)例1:-D1002)E命令(修改指定内存)例1:-E100 41 42 43 44 48 47 46 45-D 100,L08结果:08F1:0100 41 42 43 44 48 47 46 45例2:-E 100:08F1:0100 76 42 :42是操作员键入此命令是将原100号内存内容76修改为42,用D命令可察看。
3)R命令(显示当前寄存器的内容)4)T命令(设置陷井,单步执行)5)A命令(将指令直接汇编成机器码输入到内存中。
汇编语言实验报告实验一实验目的:1. 掌握程序结构2. 掌握七种寻址方式3. 掌握三种类型指令(传送指令,算术指令,逻辑指令)4. 掌握数据定义方式及存储方式5. 掌握不同进制,正负数值,字符的表示实验要求:1. 编制完整顺序结构程序2. 包含上述七种寻址方式3. 至少三种以上数据定义4. 调试每条指令的执行结果,做好记录5. 记录内存地址分配和变化结果实验结果:1.部分代码及分析;=======================数据段=============D1 SEGMENTA1 DW 1122HA2 DB 5A3 DW 3344HA4 DW?COUNT EQU 6COUNT1 DW 0COUNT2 DW 0M DB 13,10,'MASM for Windows1213243524365 MASM for WINDOWS 121',13,10,'$'L DB50 DUP(0)N DW50D1 ENDS;代码段;=====A1+A2结果存放到AX中=====MOV AX,A1MOV BX,A3ADD AX,BX;=======七种寻址方式=====MOV BX,A4 ;立即数寻址,将a4的值赋到bx中mov AX,BX 将BX的值传送到AX,;MOV BX,[2000] ;直接寻址,bx的值由ds和所给的偏移地址确定SUB AX,BX ;AX-BX并将结果存入AX中MOV BX,AX ;寄存器寻址,将AX中的操作数赋值到BX中ADD AX,BX ;将BX于AX的值相加,并将结果存入AX中。
MOV CX,AX ;将AX的值赋到CX中。
MOV AX,[BX] ;寄存器间接寻址,操作数的物理地址由堆栈段寄存器SS与BX中的偏移地址构成;SUB AX,CX ;AX-CX并将结果存入AX中MOV BX,COUNT[BP]; 基址寻址,偏移地址是指令中给定的偏移量count和基数指针BP的内容之和。
本科实验报告课程名称:汇编语言程序设计实验项目:顺序程序实验实验地点:专业班级:学号:学生姓名:指导教师:2016年4月19日太原理工大学学生实验报告PUSH AXMOV AX, DATAMOV DS, AXMOV AX, XADD AX, YMOV Z, AXRETMAIN ENDPCODE ENDSEND START三、主要仪器设备惠普笔记本和DOSBOC四、操作方法与实验步骤1.DATA SEGMENTA DB 30HB DB 20HC DB 10HD DB 05HZ DB ?DATA ENDSMAIN PROC FARCODE SEGMENTASSUME CS:CODE, DS:DATA START: MOV AX, DATAMOV DS, AXMOV AX, 0MOV DX, 0MOV AL, AADD AL, BMOV DL, CSUB DL, DSUB AL, DLMOV Z, ALRETMAIN ENDPCODE ENDSEND START2.DATA SEGMENTX DW 32HY DW 14HZ DW 0AHW DW ?,?DATA ENDSMAIN PROC FARCODE SEGMENTASSUME CS:CODE, DS:DATA START: MOV AX, DATAMOV DS, AXXOR AX, AXXOR BX, BXXOR DX, DXMOV AX, XMOV BX, YMUL BXSUB AX, 32HXOR BX, BXMOV BX, ZIDIV BXMOV W, AXMOV W+2,DXRETMAIN ENDPCODE ENDSEND START五、实验数据记录和处理六、实验结果与分析七、讨论、心得友情提示:范文可能无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用,感谢您的下载!。
汇编语言程序设计实验报告实验名称循环结构与子程序设计实验班级学号姓名日期成绩评阅人软件学院一、实验目的与意义1、掌握循环结构程序的设计、子程序的设计及调试技巧与方法。
2、加深对循环结构的理解。
3、熟练掌握DEBUG的常用指令,学会用DEBUG调试程序。
4、掌握子程序的结构和使用方法。
5、加深对于循环指令的使用和理解。
二、实验环境操作系统:Windows XP软件名称:Editplus3.0,MASM5.0实验地点:综合楼311三、实验的预习内容实验四:单重循环程序设计实验预习内容:在实验前要了解循环程序的组成结构,要着重了解循环控制指令、串操作指令和操作功能,以及在循环控制过程中寄存器的使用,这样便于在程序中操作寄存器,为我们的编程提供了巨大的便利。
我们还需要掌握分支跳转的指令,虽然本实验是单重循环的实验,但仍然需要分支结构来实现跳转。
我们还需要掌握编制循环控制结构的技巧。
实验五:多重循环程序设计实验预习内容:在实验前应该了解多重循环结构的特点,掌握单重循环和多重循环的汇编指令的使用方法,以及各指令中寄存器的使用情况,这样在编写程序时可以更加灵活的使用寄存器。
我们还应该了解编制多重循环结构的技巧。
实验六:子程序及宏指令设计实验预习内容:在实验前要了解子程序和宏指令的定义,了解有关子程序和宏指令的使用方法,以及子程序和宏指令的调用方法。
四、实验的步骤与调试方法(1)单重循环程序设计实验实验步骤:首先,我将5个数字存储到DATA1的连续单元里,将数字的个数存储到CNT当中。
之后,我在代码段当中,取出DATA1中的数据,将其与100相比,如果两个数相等就输出Y,如果没有,则继续取出下一个数据,直到将所有的数据都比较完,如果都不相等的话则输出N。
对于使用字符串指令来实现该功能,大体原理相同,主要区别为使用了搜索字符SCASB。
异常与调试方法:1、在实验中,发现每次的结果都不正确,部分代码如下:DSEG SEGMENT ;定义数据段DATA1 DW 1,2,3,100CNT DW 4DSEG ENDS经过分析发现,单个数据定义为了字类型,数的大小和性质不对,在声明一组数放在一个地址空间中,我们应该将其定义为字节类型的数据。
汇编语言实验报告实验一汇编语言的源程序的输入一、实验目的1.通过实验了解和熟悉微机系统的配置2.学习在DEBUG状态下输入汇编源程序的方法3.初步掌握调试(在DEBUG状态下)的过程二、实验原理1.本实验在DEBUG状态下输入汇编源程序,并且用DEBUG命令进行调试,用单步跟踪的方法试验指令的功能;2.以下是给定的参考程序,并在实验时每条指令的“;”等号右边按要求填写指令的分析结果。
三、实验步骤1.开机后进入DOS系统2.用DEBUG的REGISTER命令检查所有寄存器内容,并作记录R[寄存器名]3.用DEBUG的ASSEMBLE命令输入汇编源程序A[内存地址]4.用DEBUG的UNASSEMBLE命令反汇编U[起始地址][终止地址]5.用DEBUG的TRACE命令单步跟踪程序T[起始地址][终止地址]6.用DEBUG的DUMP命令显示存贮器单元的内容四、参考程序及结果MOV AX,2000 ;AL=00MOV DS,AX ;DS=2000NOT AX ;AX=DFFFXOR AX,AX ;AX=0000DEC AX ;AX=FFFFINC AX ;AX=0000MOV BX,2030 ;BH=20MOV SI,BX ;SI=2030MOV [SI],BL ;[2030H]=30MOV WORD PTR[SI],10F ;[2030H]=0F [2030H]=01 MOV DI,SI ;DI=2030MOV [DI+50],BH ;[DI+50]=20MOV BH,[SI] ;BH=0FMOV BL,[DI+50] ;BL=20MOV SP,5000PUSH AX ;AX=0 [SS:4FFEH]=00H [SS:4FFFH]=00H PUSH BX ;BX=0F20 [SS:4FFCH]=20H [SS:4FFDH]=0FH POP AX ;AX=0F20POPF ;F=00000000NEG BX ;BX=F0E0XCHG BX,AX ;BX=0F20STD ;F=01010001STI ;F=01110001CLD ;F=00110001CLI ;F=00010001ADC DI,2050 ;DI=4081 F=00000010ADC SP,DI ;SP=9081 F=10010010ADC AX,1500 ;AX=05E0 F=00000001SUB AX,BX ;AX=F6C0 BX=0F20SHL AH,1 ;AH=ECRCL AX,1 ;AX=D981SHR BX,1 ;BH=07RCR BL,1 ;BL=90MOV CL,4MOV DX,80F0ROL DX,CL ;DX=0F08 CL=04INT 20 ;CS=00A7 IP=1072实验二数据的建立与传送程序一、实验目的1.学习DEBUG命令2.验证指令的功能二、实验原理在DEBUG状态下,输入程序,用G命令进行连续方式执行程序,用DUMP命令查看建立的数据块内容三、参考程序及结果1.在内存1000单元开始,建立00H~0FH~00H 31个数,要求00H~0FH数据逐渐增大,0FH~00H逐渐减小,程序从内存CS:0100H地址开始输入MOV AX ,100HMOV DS ,AXMOV SI,0MOV CL ,0FHXOR AX,AXPPE1: MOV [SI] ;ALINC SI ;INC ALDEC CLJNZ PPE1MOV CX,10HPPE2:MOV[SI],ALINC SIDEC ALLOOP PPE2INT 20H数据块的内容1000:0000:00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 1000:0100:0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 002.把上一程序的执行结果分几种方式传送到以下指定区域(a)该程序从内存CS:0150H开始输入,把数据块传送到15050H 开始的存储区域中MOV AX,1000HMOV DS,AXMOV SI,0MOV DI,5050HMOV CX,1FHPPEA: MOV AL,[SI]MOV [DI],ALINC SIINC DILOOP PPEAINT 20H结果:1000:5050 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 1000:5060 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00(b)用串传送指令MOVSB,把数据块传送到15150H开始的区域,该程序从内存CS:0200H开始输入MOV AX,100HMOV DS,AXMOV ES,AXMOV SI,0MOV DI,5150HMOV CS,1FHCLDPPEB: MOVSBLOOP PPEBINT 20H结果:1000:5150 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 1000:5160 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00(C)用重复串操作指令”REP MOVSB”把数据传送到15250H开始的区域,该程序从CS:250H地址开始输入MOV AX,1000HMOV DS,AXMOV ES,AXMOV SI,0MOV DI,5250HMOV CX,1FHCLDREPZMOVSBINT 20H结果:1000:5250 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 1000:5260 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00(c)用串操作的减量工作方式,把数据传送到25050H开始的区域,该程序从CS:0300H开始输入MOV AX,1000HMOV DS,AXADD AX,AXMOV ES,AXMOV SI,1EHMOV DI,506EHMOV CX,1FHSTDREP MOVSBINT 20H结果:2000:5050 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 2000:5060 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00实验四统计学生成绩程序一、实验目的进一步掌握分支程序和循环程序的编写方法二、实验原理设有10个学生的成绩分别为56,69,84,82,73,88,99,63,100和80分。
太原理工大学现代科技学院
实验报告
课程名称:汇编语言程序设计
实验名称:书上例题
专业班级:2011级计算机科学与技术指导老师:秦智
姓名:学号:成绩:
预习报告
实验目的:学习程序设计的基本方法,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。
实验仪器:硬件:IBM-PC机及其兼容机
软件:PC-DOS或MS-DOS操作系统
上机要用到以下文件:
(1)编辑程序:EDIT.EXE
(2)汇编程序:MASM.EXE
(3)连接程序:LINK.EXE
(4)调试程序;DEBUG.COM
实验原理:
1、建立ASM文件:利用EDIT程序在磁盘上建立一个源程序,并起个文件名,如:EX_MOVS.ASM;
2、用MASM程序产生OBJ文件:用汇编程序对源文件
汇编,产生二进制的目标文件(OBJ文件);
3、用LINK程序产生EXE文件:利用连接程序LINK 把OBJ文件转换为可执行的EXE文件;
4、程序的执行:在建立了EXE文件后,就可以直接从DOS执行该程序。
5、COM文件:是一种系统文件,也是可执行文件,其存储空间比EXE文件小的多,也不分段。
程序
D_SEG SEGMENT
AUGW LABEL WORD
AUGEND DD 99251
SUM DD ?
D_SEG ENDS ;以上定义数据段
;----------------------------------------------------------------
E_SEG SEGMENT
ADDW LABEL WORD
ADDEND DD -15962
E_SEG ENDS ;以上定义附加段
;----------------------------------------------------------------
C_SEG SEGMENT
MAIN PROC FAR
ASSUME CS: C_SEG, DS: D_SEG, ES:E_SEG
START: PUSH DS ;设置返回DOS
SUB AX,AX
PUSH AX
MOV AX,D_SEG
MOV DS, AX ;给DS赋值
MOV AX, E_SEG
MOV ES, AX ;给ES赋值
;
MOV AX, AUGW ;以下6条指令进行加法计算
MOV BX, AUGW+2
ADD AX, ES: ADDW
ADC BX, ES: ADDW+2 ;不考虑有符号数溢出
MOV WORD PTR SUM, AX
MOV WORD PTR [SUM+2], BX
RET
MAIN ENDP
C_SEG ENDS ;以上定义代码段
;----------------------------------------------------------------
END START
实验步骤
机器代码
Microsoft (R) Macro Assembler Version 5.00 12/31/13 21:58: Page 1-1
1 0000 D_SEG SEGMENT
2 0000 AUGW LABEL WORD
3 0000 B3830100 AUGEND DD 99251
4 0004 ???????? SUM DD ?
5 0008 D_SEG ENDS ;以上定义数据段
6 ;--------------------------------------
--------------------------
7 0000 E_SEG SEGMENT
8 0000 ADDW LABEL WORD
9 0000 A6C1FFFF ADDEND DD -15962
10 0004 E_SEG ENDS ;以上定义附加段
11 ;--------------------------------------
--------------------------
12 0000 C_SEG SEGMENT
13 0000 MAIN PROC FAR
14 ASSUME CS: C_SEG, DS: D_SEG, ES:E_SEG
15 0000 1E START: PUSH DS ;设置返回DOS
16 0001 2B C0 SUB AX,AX
17 0003 50 PUSH AX
18 0004 B8 ---- R MOV AX,D_SEG
19 0007 8E D8 MOV DS, AX ;给DS赋值
20 0009 B8 ---- R MOV AX, E_SEG
21 000C 8E C0 MOV ES, AX ;给ES赋值
22 ;
23 000E A1 0000 R MOV AX, AUGW ;以下6条指令进行加法计算
24 0011 8B 1E 0002 R MOV BX, AUGW+2
25 0015 26: 03 06 0000 R ADD AX, ES: ADDW
26 001A 26: 13 1E 0002 R ADC BX, ES: ADDW+2 ;不考虑有符号数溢出
27 001F A3 0004 R MOV WORD PTR SUM, AX
28 0022 89 1E 0006 R MOV WORD PTR [SUM+2], BX
29 0026 CB RET
30 0027 MAIN ENDP
31 0027 C_SEG ENDS ;以上定义代码段
32 ;--------------------------------------
--------------------------
33 END START
Microsoft (R) Macro Assembler Version 5.00 12/31/13 21:58:09
Symbols-1
Segments and Groups:
N a m e Length Align Combine Class
C_SEG . . . . . . . . . . . . . 0027 PARA NONE
D_SEG . . . . . . . . . . . . . 0008 PARA NONE
E_SEG . . . . . . . . . . . . . 0004 PARA NONE
Symbols:
N a m e Type Value Attr
ADDEND . . . . . . . . . . . . . L DWORD 0000 E_SEG
ADDW . . . . . . . . . . . . . . L WORD 0000 E_SEG
AUGEND . . . . . . . . . . . . . L DWORD 0000 D_SEG
AUGW . . . . . . . . . . . . . . L WORD 0000 D_SEG
MAIN . . . . . . . . . . . . . . F PROC 0000 C_SEG Length = 0027
START . . . . . . . . . . . . . L NEAR 0000 C_SEG
SUM . . . . . . . . . . . . . . L DWORD 0004 D_SEG
@FILENAME . . . . . . . . . . . TEXT d
33 Source Lines
33 Total Lines
12 Symbols
49312 + 399808 Bytes symbol space free
0 Warning Errors
0 Severe Errors
写一下上机实验的体会。