实验1---汇编语言语法练习与代码转换

合集下载

汇编语言实验报告1~7

汇编语言实验报告1~7

汇编语言实验报告1~7实验一:数据传输指令、算术指令、逻辑指令的使用实验内容:利用汇编语言,编写一个程序,实现两个整数相加,并将结果存入第三个变量中实验步骤:1. 声明三个变量a、b、c2. 将10存入a,将20存入b3. 将a的值传入al,将b的值传入bl4. 使用add指令将al和bl相加,将结果存入al5. 将al的值传入c6. 显示c的值实验结果:a db 10mov al,aadd al,blint 21hmov ax,4c00h实验二:分支指令的使用实验内容:利用汇编语言,编写一个程序,实现当输入的值为正数时,输出"I'm positive!";当输入的值为负数时,输出"I'm negative!";当输入的值为零时,输出"I'm zero!"1. 定义一个变量num2. 接收用户输入,并将其存储在num中3. 用test指令判断num的值4. 当num=0时,执行输出"I'm zero!"的指令7. 退出程序num db ?lea dx, promptsub al, '0'test num, numjz zerojs negjmp positiveneg:output:zero_msg db 'I am zero!$'prompt db 'Please enter a number:', 0dh, 0ah, '$'1. 定义变量i、sum,分别表示累加的数字和累加和2. 将i赋初值1,sum赋初值03. 进入循环5. 使用inc指令将i加16. 使用cmp指令将i与10比较,如果i小于等于10,继续循环,否则退出循环7. 输出结果mov bx, iloopStart:inc bx实验四:过程调用的使用2. 循环遍历1到100之间的每个数3. 用一个for语句嵌套一个for语句判断该数是否为质数4. 用两个自定义的子程序is_prime和output输出结果call is_primeskip:cmp i, 100prime_loop:div blretje newlinejmp done实验目的:掌握字符串操作指令的使用实验内容:利用汇编语言,编写一个程序,将字符串"SJTU"改为字符串"MIT"1. 定义字符串SJTU和MIT2. 定义两个变量i和len,分别表示字符串的下标和长度3. 使用movsb将SJTU的值传到MIT中4. 输出MITSJTU db 'SJTU'lea si, SJTUstringLoop:实验内容:利用汇编语言,编写一个程序,实现将输入的字符串写入一个文件中,然后再读取该文件中的字符串并输出2. 打开文件3. 将字符串写入文件中4. 关闭文件6. 读取文件内容8. 输出读取的字符串fileName db 'test.txt'content db 32 dup(?)mov cx, word ptr [content]实验内容:利用汇编语言,编写一个程序,在系统按下Ctrl+C时,输出一条信息并退出1. 声明函数handleCtrlC2. 获取中断21的地址,将其存储到文件头中org 100hmov [old_int_21h], es:bxmov dx, offset handleCtrlCend开始:。

汇编语言程序设计实验报告(1)

汇编语言程序设计实验报告(1)

实验一单指令功能测试实验一、实验目的1.会使用DEBUG软件;2.利用DEBUG单步执行功能测试指令的执行。

二、实验内容P129,14题三、实验要求:1. 在上机实验之前,首先做完作业;2. 设计如何验证指令执行的正确性操作,并在作业中描述;3. 周五上机验证,并给出上机结果。

若有出入,简要说明原因。

4. 实验报告当堂提交。

实验二完整的汇编语言程序设计实验一、实验目的1.掌握完整的汇编语言源程序的设计方法;2.掌握汇编语言源程序的执行过程。

二、实验内容设计一个程序,将所有的小写字母转换为大学字母,此程序不能改变除字母a~z外的任何其它字符。

三、实验要求(结果)1. 在上机实验之前,首先编写程序;2. 周一上机调试程序,并给出修改、运行正确的源程序;3. 分析错误原因;4. 实验报告当天提交。

实验三子程序设计实验一、实验目的1.掌握汇编语言源程序子程序设计方法;2.会使用CV软件工具。

二、实验内容编写子程序:判断三边能否构成三角形;编写主程序:输入三边,调用子程序判断,若能,则输出“Y”,否则输出“N”。

共判断10次。

三、实验要求同实验二。

实验四 宏汇编程序设计实验一、实验目的1.掌握宏汇编程序编程技术及宏调用的方法;2. 了解浮点CPU 编程方法及特点。

二、实验内容求(1+2+3+4+5+6+7+8+9)⨯LC π21的和。

三、实验要求1. 利用重复宏定义实现1、2、3⋯9数据的定义;2. 编写程序,上机验证结果的正确性。

3. 其它要求同前。

实验五 多模块程序设计实验一、实验目的1.掌握汇编段的属性的含义;2. 掌握利用LINK 将多模块连接起来的方法;3.掌握利用库文件将多模块连接起来的方法。

二、实验内容将字符串反序。

具体要求:1. 子模块:完成反序。

2. 主模块:输入字符串,调用子模块,显示反序后字符串。

3. 用 LINK 或库文件的方法实现多模块连接。

4. 其他要求同前。

实验六 混合程序的开发实验一、实验目的1.了解混合调用中的参数设置;2. 掌握混合调用的方法;二、实验内容求(1+2+3+4+5+6+7+8+9)⨯LC π21的和,并将和显示在屏幕上;具体要求:1. 用汇编语言完成子程序LC π21的编程;2. 通过C++完成实验内容的要求。

汇编语言代码转换程序设计

汇编语言代码转换程序设计

信息工程学院课程设计报告设计题目:______代码转换程序设计______名称: 微机原理与接口课程设计班级:_______通信工程1002班______姓名:_______卓自强_王可______学号: ____2010013544 2010013524__设计时间: 至指导教师:__________卢清平____________评语:评阅成绩: 评阅教师:一、程设计的性质和目的通过课程设计,进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关软件程序设计的基本知识和基本方法,硬件电路的设计等,通过实际动手能力的培养,进一步熟悉汇编语的结构和使用方法,掌握软硬结合的控制程序设计,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平,增进对汇编语言的认识,加强用汇编语言编程的能力;掌握汇编语言的中断调用功能的应用,可以用汇编语言调用各种中断调用功能,并由此实现对硬件的控制等。

了解和掌握汇编语言程序设计过程、方法及实现,为以后相关的课程的学习打下良好基础。

二、课程设计要求1、遵循模块化、结构化的程序设计方法。

2、要求程序必须正确。

3、程序简明易懂,多运用输入输出提示,有出错信息及必要的注释。

4、要求程序结构合理,语句使用得当。

5、适当追求编程技巧和程序运行效率。

三、主要仪器设备及软件Pc机,MASM汇编软件,绘图软件,等四、课程设计题目及要求题目:代码转换程序要求:完成一个字母或数制之间的转化程序,主程序分别具有5种可选择的子功能,按相应的字符可分别进入相应的子功能并在屏幕上显示结果,按“q”键退出。

5种可选择的子功能分别为:1)实现小写字母向大写字母的转换2)实现大写字母向小写字母的转换3)实现二进制数向十六进制数的转换4)实现十六进制数向二进制数的转换5)实现十六进制数向十进制数的转换五、课题分析及设计思路1、实现大小写字母之间的转换:输入的字符串中,不是字母的字符不改变;大写字母改成小写字母时,若是大写字母则不改变;同样,小写字母改成大写字母时,若是小写字母则不改变2、二进制和十六进制数之间的转换:输入一个二进制数(或十六进制数),用十六进制数(或二进制数)表示输出;最多能把十六位二进制数(或四位十六进制数)用四位十六进制数(或十六位二进制数)表示输出;小于十六位(或四位)时按“q”结束并输出3、十进制数和十六进制数之间的转换:输入一个十六进制数,用十进制数表示输出;最大能把十六进制数FFFF转换成十进制数65535表示输出;小于FFFF时按“q”结束并输出整个程序由四个主要的子程序和若干个辅助子程序组成,实现六个转换功能:HEXIDEC用来把一个十六进制数转换成十进制数表示BINARY用来把十六制数转换为十六位二进制数表示BETOHE用来把一个十六位二进制数转换成十六进制输出1、INPUT用来输入字符串2、HEXIBIN用来输入一个十六进制数,并存放在BX中3、BINIDEC用来把BX中十六进制转换到十进制4、DEC_DIV用来除以各位十进制的权5、PRINT用来把BX中的十六进制数转换成二进制8、INBIN输入十六二进制数9、CRLF用来换行六、程序主要流程等于1调用BTOS 等于2调用STOB等于3调用HTOB等于4调用BTOH等于5调用HTOD调用INPUT 宏展开GAIXIE七、程序及主要代码与分析7.1程序及主要代码GAIXIE MACRO P1,P2,P3,P4,P5,P6 ;义该宏用来判定字母? P2: CMP BYTE PTR [SI],P3JB P5CMP BYTE PTR [SI],P4JNB P5CMP BYTE PTR [SI],'$' ;到$则结束JZ P6P1 BYTE PTR [SI],20HP5: INC SILOOP P2P6: LEA DX,BUF1+2 ;出改写后的字母MOV AH,9 ;调用9号中断功能,输出字符串INT 21HLEA DX,BF ;把BF首地址给CXMOV AH,9 ;调用9号中断功能INT 21HJMP START ;返回ENDMDA TA SEGMENT ;义数据段BUF DB '**********choose the operation**********',0DH,0AH DB '1:big to small',0DH,0AHDB '2:small to big',0DH,0AHDB '3:hexadecimal to binary',0DH,0AHDB '4:binary to hexadecimal',0DH,0AHDB '5:hexadecimal to decimal',0DH,0AHDB '6/q:EXIT',0DH,0AH,'$'BF DB 0DH,0AH,'$'BUF1 DB 21,?,20 DUP(?) ;用来存放输入的字符串BUF2 DB 'enter a hex data:$'BUF3 DB 'The input is wrong,choose again please:$'BUF4 DB 'enter a deci data:$'BUF5 DB 'enter a bin data:$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART:MOV AX,DA TAMOV DS,AXMOV DX,OFFSET BUF ;出选择界面MOV AH,9 ;调用9号中断功能INT 21HMOV AH,1 ;入要选择的操作INT 21HPUSH AX ;NT 会改变AL的值,应压栈保护LEA DX,BF ;行MOV AH,9 ;调用9号中断功能INT 21HPOP AX ;把AX压栈保护CMP AL,'1' ;把AL中内容跟1比较JZ BTOS ;相等则跳转到CMP AL,'2'JZ STOBCMP AL,'3'JZ HTOBCMP AL,'4'JZ BTOHCMP AL,'5'JZ HTODCMP AL,'6'JZ EXITCMP AL,71HJZ EXITLEA DX,BUF3 ;把BUF3的首地址给DXMOV AH,9INT 21HCALL CRLF ;调用子程序CALLJMP START ;返回,重新选择EXIT:MOV AH,4CH ;退出INT 21HBTOH:CALL BETOHE ;调用二进制转十六进制子程序HTOB:CALL BINARY ;调用十六进制转二进制子程序HTOD:CALL HEXIDEC ;调用十六进制转十进制子程序BTOS:CALL INPUT ;大写字母改为小写MOV CX,20 ;作为循环条件GAIXIE ADD,NEXT1,'A','Z',N1,N2 ;宏GAIXIE展开STOB:CALL INPUT ;小写字母改为大写MOV CX,20GAIXIE SUB,NEXT2,'a','z',N3,N4INPUT PROC NEAR ;输入字符串MOV DX,0 ;DX清零MOV DX,OFFSET BUF1 ;把BUF1的首地址给DXMOV AH,10 ;调用10号中断功能,输出字符串INT 21HLEA DX,BF ;把BF首地址给DXMOV AH,9INT 21HLEA SI,BUF1+2MOV BL,[SI-1] ;把输入的字符个数给BLMOV BH,0 ;BH清零MOV BYTE PTR [BX+SI+1],'$' ;把$作为字符串结束字符LEA DX,BUF1+2MOV AH,9INT 21HRET ;返回INPUT ENDPHEXIDEC PROC NEAR ;用该子程序把一个十六进制数转换成十进制数表示PUSH DS ;保护初始数据段SUB AX,AX ;AX清零PUSH AX ;把AX压栈保护START1: LEA DX,BUF2MOV AH,9INT 21HCALL HEXIBIN ;调用输入一个十六进制数子程序CMP AL,71H ;遇q则退出JZ EXIT1CALL CRLF ;换行CALL BINIDECCALL CRLFJMP START1 ;返回EXIT1:RETHEXIDEC ENDPHEXIBIN PROC NEAR ;输入一个十六进制数,并存放在BX中MOV BX,0 ;把BX清零MOV DX,0 ;作为输入四位的记数器INHEX:CMP DX,4 ;把DX跟4比较JNB HEXEND ;大于则跳转MOV AH,1 ;输入数据INT 21HCMP AL,71H ;遇到q则退出JZ HEXENDSUB AL,30H ;判断是否数字或字母?否则跳出JL HEXENDCMP AL,10 ;判断是否数字JL ADD_TO ;是则存放BX中SUB AL,7 ;把AL内容减7转为字母CMP AL,10 ;判断是否小写字母(a~f)JL HEXENDCMP AL,16JL ADD_TO ;小于则跳转SUB AL,20H ;判断是否大写字母(A~F)CMP AL,10JL HEXENDCMP AL,16JGE HEXENDADD_TO:MOV CL,4 ;作为循环条件SHL BX,CL ;BX乘以16MOV AH,0ADD BX,AX ;两数相加INC DX ;DX加1JMP INHEXHEXEND:RETHEXIBIN ENDPBINIDEC PROC NEAR ;用来把BX中十六进制转换到十进制MOV CX,10000 ;把10000给CX,作为万位的权CALL DEC_DIV ;调用除权子程序MOV CX,1000CALL DEC_DIVMOV CX,100CALL DEC_DIVMOV CX,10CALL DEC_DIVMOV CX,1CALL DEC_DIVRETBINIDEC ENDPDEC_DIV PROC NEAR ;除以各位十进制的权MOV AX,BX ;把BX内容给AXMOV DX,0 ;DX清零DIV CXMOV BX,DXMOV DL,ALADD DL,30H ;转换为ASSIIMOV AH,2INT 21HRETDEC_DIV ENDPCRLF PROC NEAR ;换行LEA DX,BFMOV AH,9INT 21HRETCRLF ENDPBINARY PROC NEAR ;该子程序用来把十六制数转换为十六位二进制数表示START2:LEA DX,BUF2MOV AH,9INT 21HPUSH DS ;把DS压栈SUB AX,AX ;AX清零PUSH AXCALL HEXIBINCMP AL,71HJZ EXIT2CALL CRLFCALL PRINTCALL CRLFJMP START2EXIT2:RETBINARY ENDPPRINT PROC NEAR ;把BX中的十六进制数转换成二进制MOV CX,16D ;记数ROT: SHL BX,1D ;每移一位最高位变为CFJC SET ;CF为1则跳到SET,否则输出0MOV DL,30HMOV AH,2INT 21HDEC CXJNZ ROTRETSET:MOV DL,31H ;输出1MOV AH,2INT 21HDEC CXJNZ ROTRETPRINT ENDPDECIBIN PROC NEAR ;输入一个五位的十进制数MOV BX,0MOV CX,0NEWCHAR:CMP CX,5JNB EXIT4MOV AH,1INT 21HCMP AL,71HJZ EXIT4SUB AL,30HJL EXIT4CMP AL,9JG EXIT4CBWINC CXXCHG AX,BXMOV DX,10MUL DXXCHG AX,BXADD BX,AXJMP NEWCHAREXIT4:RETDECIBIN ENDPBINIHEX PROC NEAR ;把BX中的十进制数转换成十六进制输出MOV CH,4ROTA TE:MOV CL,4ROL BX,CL ;把BX中高四位移到低四位,放到AL中MOV AL,BLAND AL,0FHADD AL,30HCMP AL,3AH ;判断是否为数字JL PRINTITADD AL,7PRINTIT:MOV DL,ALMOV AH,2INT 21HDEC CHJNZ ROTA TERETBINIHEX ENDPBETOHE PROC NEAR ;用该子程序来把一个十六位二进制数转换成十六进制数START3:LEA DX,BUF5MOV AH,9INT 21HPUSH DSSUB AX,AXPUSH AXCALL INBINCMP AL,71HJZ EXIT5CALL CRLFCALL BINIHEXCALL CRLFJMP START3EXIT5:RETBETOHE ENDPINBIN PROC NEAR ;输入十六二进制数MOV BX,0MOV CX,0PUTIN:CMP CX,16JNB EXIT6MOV AH,1INT 21HCMP AL,1BHJZ EXIT6SUB AL,30HJL EXIT6CMP AL,1JG EXIT6CBWINC CXXCHG AX,BXMOV DX,2MUL DXXCHG AX,BXADD BX,AXJMP PUTINEXIT6:RETINBIN ENDPCODE ENDSEND START7.2算法分析小写字母的ASCII码比大写字母的ASC码大20H,因此,大写字母转换成小写字母就是将大写字母的ASCII码加20H,反之,小写字母转换成大写字母就是将小写字母的ASCII码减20H。

汇编语言常见问题实验报告带正确源代码

汇编语言常见问题实验报告带正确源代码

汇编语言常见问题实验报告(带正确源代码)汇编语言程序设计实验报告计科0803余廷钊2008420692010 7-7实验一:字符回显实验目的:掌握DOS 1号功能的调用。

实验原理:ah 里面放功能号。

用int21调用。

实验内容:code segment assume cs:code start :mov ah,1 ;功能号放入ah int 21h ;调用DOS 功能 mov ah,4ch ;返回DOS int 21h code ends end start结果分析:DOS 1号功能可以把键盘的输入回显到屏幕上。

技术支持:Michael 实验二:显示字符T实验目的:开ah=1int21h结掌握DOS 2号功能的调用。

实验原理:ah 里面放功能号。

DL 里面放要显示的字符,用int21调用。

实验内容:code segment assume cs:code start :mov dl,'T'mov ah,2 ;功能号存入int 21h ;调用 mov ah,4chint 21h code ends end start 技术支持:Michael结果分析:DOS 2 号功能可以吧 DL 中的数据按照它对应的ASK 码字符输出。

实验三:显示‘how are you ’实验目的:掌握利用DOS 功能显示字符串。

实验原理:DOS 9 号功能可以把DS :DX 中的字符串显示出来,一‘$’为结束识别。

实验内容: data segment开ah=2 int21h结DL=‘T ’message db 'How are you?',13,10,'$' data ends code segmentassume cs:code,ds:data start :mov ax,datamov ds,ax ;数据段地址给ds mov ah,9mov dx,offset message ;送入偏移地址int 21h ;功能调用mov ah,4ch int 21h code ends end start结果分析:DOS 9 号功能可以把以DS :DX 为首地址,以‘$’为结束的字符串输出。

实验1---汇编语言语法练习与代码转换

实验1---汇编语言语法练习与代码转换

实验报告( 2015/ 2016 学年第二学期)课程名称微型计算机原理与接口技术实验名称实验时间指导单位指导教师学院学号指导老师实验报告三、实验过程描述与结果分析汇编语言源程序编写好以后,必须经过下列几个步骤才能在机器上运行:(1) 编辑源程序(生成.ASM文件)(2) 汇编源程序(.ASM → .OBJ)(3) 目标程序(.OBJ → .EXE )(4) 调试可执行程序(使用调试程序Debug调试生成的.EXE文件)(5) 运行程序输出结果。

排除语法错误要求通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序。

但有很多语法错误,要求按照原样对源程序进行编辑,汇编后,根据TASM给出的错误信息对源程序进行修改,直到没有语法错误为止,然后进行,并执行相应的可执行文件。

正确的执行结果是在屏幕上显示:25+9=34。

修改后代码:(分号后为修改);FILENAME:EXA121.ASM.486DATA SEGMENT USE16SUM DB ?,?,MESG DB '25+9= 'DB 0,0 ;DB 0,0,'$'N1 DB 9,F0H ;DB 9,0F0HNEXT: ADD [BX+8],SUM ;NEXT:MOV CL,SUMADD BYTE PTR [BX+8],CL ADD [BX+7],30H ;ADD BYTE PTR [BX+7],30HADD [BX+8],30H ;ADD BYTE PTR [BX+8],30HRETCHANG:ENDPCODE ENDSEND BEG。

汇编语言程序设计实验

汇编语言程序设计实验

汇编语⾔程序设计实验汇编语⾔程序设计实验指导实验⼀:字符串的显⽰及回车换⾏⼀.实验⽬的a)熟悉、掌握汇编语⾔的框架b)实现字符串的显⽰与回车换⾏⼆、实验重难点a)重点:需要运⽤mov指令实现数据的传送,操作结束须退出指令退出操作。

1.mov指令格式:Mov dest,src ;dest为⽬的操作数,src为源操作数Mov指令是双⽬操作,其中dest可为寄存器(R)、储存器(M.M),src可为R、M.M、⽴即数([IMM])。

2.退出指令:Mov ah,4chInt 21hb)难点:汇编语⾔不提供显⽰输出指令,也不提供回车换⾏指令,需借⽤DOS中的显⽰功能以及其中显⽰⼀个字符的功能。

如:回车符的ASSII码是0dh(13),换⾏符的ASSII码是0ah(10)。

1.借⽤dos显⽰输出:Mov dx,offset strMov ah,9Int 21h2.回车换⾏的实现:Mov dl,0dhMov ah,2 回车Int 21hMov dl,0ahMov ah,2 换⾏Int 21h三.程序代码a)字符串hello的显⽰:Data segment ;数据段开始Str1 db “hello$”;$为结束符Data ends ;数据段结束Code segment ;代码段开始Assume cs:code,ds:data Start:mov ax,dataMov ds,ax 取数据Mov dx,offset str1Mov ah,9Int 21hMov ah,4chInt 21hCode ends ;代码段结束End start四、实验结果b)实现hello world的回车换⾏显⽰:数据段添加:Str2 db “world$”代码段添加:Mov dl,0dhMov ah,2Int 21hMov dl,0ahMov ah,2Int 21h运⾏结果:实验⼆:减法运算及混合运算⼀.实验⽬的a)熟悉、掌握汇编语⾔的框架b)熟悉、掌握加法指令、减法指令c)实现加减法运算及其混合运算d)熟悉、掌握使⽤Debug命令⽅法及步骤⼆、实验重难点a)重点:在进⾏加减运算及其混合运算须⽤到加法指令、减法指令,需熟练掌握各条指令格式及功能。

实验一 汇编语言基本指令操作练习

实验一 汇编语言基本指令操作练习

实验一汇编语言基本指令操作练习一、实验目的:1、掌握8086/8088基本指令的使用方法和功能。

2、初步了解汇编语言程序设计的基本结构和利用DEBUG调试程序的方法。

3、进一步熟悉汇编语言的上机过程。

二、上机实验指导:(一)利用DEBUG的A命令输入指令,做如下实验。

1、比较下面指令的区别:①MOVAX,2000H②MOVBX,[2000H]-D2*******;显示字存储单元DS:2000的内容3ADC:20005A58ZX-R;显示指令执行前AX,BX的内容AX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=3ADCES=3ADCSS=3ADCCS=3ADCIP=0100NVUPEIPLNZNAPONC3ADC:0100858CFFF3TESTCX,[SI+F3FF]DS:F3FF=74C0-A;利用A命令输入汇编指令3ADC:0100MOVAX,20003ADC:0103MOVBX,[2000]3ADC:0107INT3;此中断为断点中断,使程序执行暂停3ADC:0108-G;不指定地址,从当前CS:IP处执行AX=2000BX=585ACX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=3ADCES=3ADCSS=3ADCCS=3ADCIP=0107NVUPEIPLNZNAPONC3ADC:0107CCINT3;指令执行后,AX=2000H,BX=585AH2、以寄存器BX作为地址指针,从BX所指的存储单元开始起,连续存放着两个无符号数(字操作数),编程求它们的和,并将结果存放在这两个数之后。

-RBX;显示BX寄存器中的内容(BX=0000h)BX0000:;回车-D0*******;显示DS:0000到DS:0005的内容(BX所指的三个字操作数),如BX不为0000H,自己修改范围。

实验1-汇编语言语法练习与代码转换

实验1-汇编语言语法练习与代码转换
8
六、指导教师评语 (含学生能力达成度的评价)
成绩
批阅人
日期
评分项 评 遵守实验室规章制度
学习态度
算法思想准备情况
程序设计能力

解决问题能力
课题功能实现情况
算法设计合理性
算法效能评价
回答问题准确度

报告书写认真程度
内容详实程度
文字表达熟练程度
其它评价意见
则 本次实验能力达成评价 (总成绩)
优秀
良好
; 程序跳转,如果最高位 是 1 那么就输出 1
JNC print0_max ;程序跳转, 如果最高位 是 0 那么就输出 0
Hale Waihona Puke print1_max: MOV DL , 31h ;把要在屏幕上输出的 字符 预先放到DL寄存器里边 ,
31h 表示字符 1
MOV AH , 2 ;把 要调用的系统功能的 第几号功能值放入 AH里边
2.运行截图 有3个负数,接下来分别显示最大和最小数的16位补码
实验报告
7
四、实验小结(包括问题和解决方法、心得体会、意见与建议等)
(一) 实验中遇到的主要问题及解决方法 1.普通的 DB 型只有 8 位,放不下 255 这个数 解决方法:改用 16 位 DW 型
(二)实验心得 第一次尝试用汇编写程序感觉很难,为了实现一个很简单的功能,不仅需要编写一长串代码, 期间还需要注意各种规范,如数据类型问题、运算时的正负号问题等。其中寄存器的数量少,感觉不 够用,很容易被新数据覆盖,所以需要及时把寄存器中的数据存入储存器中。虽然这次实验给人的体 验十分不友好,但是我也从中学到一段合格的程序的确是需要这样精打细磨出来的,通过实验我对数 据在内存中的二进制存放形式有了更深刻的理解。现在我还需要工具书的帮助,但相信熟能生巧,加 以时日我一定可以更流畅地编写一段程序。 (三)意见与建议(没有可省略)

汇编语言代码转换程序实验报告

汇编语言代码转换程序实验报告

课程设计说明书题目: 代码转换程序院系:专业班级:学号:学生姓名:指导教师:2010 年 12 月 31 日安徽理工大学课程设计(论文)任务书计算机科学与工程学院硬件教研室2010年 12月 17安徽理工大学课程设计(论文)成绩评定表摘要本次课程设计的题目是代码转换,这是一个基于计算机和汇编环境的程序,主要就是通过完成这次设计,实现二进制,十进制,十六进制代码的转换,以及大小写字母之间的转换。

从而掌握不同进制数及编码相互转换的程序设计方法,知道将存储在内存单元中的数据以十六进制数、十进制数形式和二进制数形式显示在屏幕上的方法,加深对数码转换的理解。

而且学会用INT21功能实现人机对话掌握代码转换的基本方法。

该程序界面友好,能够通过键盘输入选择相应的转换,结果也能够比较直观的显示在我们眼前,具有一定的人机交互性。

关键词:代码,进制,大小写字母,转换,INT21,人机交互性目录1设计目的 (1)2概要设计 (2)2.1 系统总体分析 (2)2.2 主模块框图及说明 (2)3 详细设计 (4)3.1 主模块及子模块说明 (4)3.2 各模块详细设计 (4)4程序调试 (11)4.1 运行界面分析 (11)4.2算法的分析 (12)4.3 调试过程及分析 (13)5心得体会 (14)5.1 设计体会 (14)5.2 系统改进 (14)参考文献 (15)1设计目的在做本次课程设计之前,首先要了解设计的目的。

本次课程设计的题目是代码转换,这是一个基于计算机和汇编环境的程序,主要就是通过完成这次设计,实现二进制,十进制,十六进制代码的转换,以及大小写字母之间的转换。

从而掌握不同进制数及编码相互转换的程序设计方法,知道将存储在内存单元中的数据以十六进制数、十进制数形式和二进制数形式显示在屏幕上的方法,加深对数码转换的理解。

而且学会用INT21功能实现人机对话掌握代码转换的基本方法。

该程序界面友好,能够通过键盘输入选择相应的转换,结果也能够比较直观的显示在我们眼前,具有一定的人机交互性。

微机原理课程设计(汇编语言)——将键盘输入的小写字母转换成大写字母的设计

微机原理课程设计(汇编语言)——将键盘输入的小写字母转换成大写字母的设计

SEGMENT DB 20 DUP(?) DB 'please input letters, end with enter, exit with ctrl-c',0DH,0AH,'$' DB 'the inverted litter is:', 0DH, 0AH,'$' DB 0DH,0AH,'$' ENDS SEGMENT ASSUME CS:CODE,DS:DATA MOV AX,DATA MOV DS,AX MOV SI,00H MOV BX,OFFSET DATA1 LEA DX,DISPP1 MOV AH,9 INT 21H MOV AH,1 INT 21H CMP AL,03H JZ L4 CMP AL,0DH JZ L3 CMP AL,61H JZ L2 SUB AL,20H JMP L2 MOV [BX+SI],AL INC SI JMP L1 LEA DX,DISPP3 MOV AH,9 INT 21H LEA DX,DISPP2 MOV AH,9 INT 21H MOV [BX+SI],AL MOV AL,0AH MOV [BX+SI+1],AL MOV AL,'$' MOV [BX+SI+2],AL MOV DX,BX MOV AH,9 INT 21H
INT 21H 的 01H 号子功能接收键入字符
Y
是 ctrl+c 键?
N Y
是回车键?
N
是小写字母?
N
Y
小写字母的 ASCII 码值转化为冲区[BX+SI]单元
SI 加 1 指向下一单元
显示转换后的字符行缓冲区内容

《汇编语言程序设计》

《汇编语言程序设计》

解法1
解法2
MOV AX, WORD PTR FIRST XCHG AX, WORD PTR SECOND MOV WORD PTR FIRST, AX
解法3
错误的代码 MOV AL, FIRST
MOV BL, SECOND
XCHG AL, BL MOV AL, FIRST+1 MOV BL, SECOND+1 XCHG AL, BL MOV MOV MOV MOV MOV MOV AH, FIRST FIRST, SECOND SECOND, AH AH, FIRST+1 FIRST+1, SECOND+1 SECOND+1, AH
66H
01H
CAH 01H
AX=6601H
(2)采用堆栈指令编写 PUSH WORD PTR FIRST PUSH WORD PTR SECOND POP WORD PTR FIRST POP WORD PTR SECOND
第1条指令执行后 第2条指令执行后 第3条指令执行后 第4条指令执行后
56H 78H 12H
12H
34H
34H
12H 34H
实验二:用户登录验证程序
时间:周四 地点:1416 类型:设计
• 一、实验目的: 学习掌握汇编语言的开发过程,汇编源程序的编程格式和基本结构, DOS/BIOS功能调用,掌握分支、循环、子程序等基本结构程序的设计方 法。 • 二、实验内容 用汇编语言程序设计方法,设计一个用户登陆验证程序。 • 三、实验要求 1. 程序执行后,给出操作提示,请用户键入用户名和密码。 2. 用户在键入密码时,程序不回显键入字符。 3. 只有当用户键入的用户和密码字符串和程序内定的字符串相同时,显 示欢迎界面,并返回DOS。 • 四、实验报告要求 实验报告的内容:实验名称、实验目的、实验内容、实验程序、实验结 果分析、实验过程遇到的问题及体会。 实验报告以文本形式递交,要求书写规范、文字简练、语句通顺、图表 清晰。

汇编语言-编程练习

汇编语言-编程练习

编程练习:1、求∑n!;(n=1,2,3,...,n)和存放在SUM 存储字单元中。

即: SUM=1!+2!+...+7!+n! (n=1-- 7 的任一个数)CODE SEGMENTASSUME CS:CODESTART: MOV AH,01HINT 21HCMP AL,’0’JBE STARTCMP AL,’7’JA STARTAND AL,0FHCBWMOV CX,AXMOV BX,1MOV SI,0MOV AX,BXFIND:MUL BXINC BXADD SI,AXNEXT: LOOP FINDCODE ENDSEND START2、编程实现 1*2+2*3+3*4+4*5+5*6+...+N*(N+1),求和直到大于5000。

CODE SEGMENTASSUME CS:CODESTART:MOV BX,1MOV SI,0;求和寄存器A1:MOV AX,BXINC BXMUL BXADD SI,AXCMP SI,5000JA EXITJMP A1EXIT:MOV AH,4CHINT 21HCODE ENDSEND START3、编写一程序,要求用键盘输入一个字符,然后在屏幕上连续输出这个字符的前导字符、本身字符和后继字符。

(X=A - Z 的任一个字母)CODE SEGMETASSUME CS:CODESTART:MOV AH,01HINT 21Hxxxx …;限制判断程序段MOV CX,3MOV DL,ALDEC DLA1:MOV AH,02HINT 21HINC DLLOOP A1MOV AH,4CHINT 21HCODE ENDSEND START4、编程实现,用键盘输入1位数字,让喇叭发出与数字相应次声响。

(响铃ASII码 07H)CODE SEGMENTASSUME CS:CODESTART: MOV AH,1INT 21Hxxxx 限制判断程序段…..AND AL ,0FHCBWMOV CX,AXBEEP:MOV AH,02HMOV DL,07HINT 21HMOV DI,30000DELAY:DEC DIJNZ DELAYLOOP BEEPMOV AH,4CHINT 21HCODE ENDSEND START5、编写程序实现以下要求首地址为DAT1的存储区连续放着20个单元的无符号字节数据,求出这20个数据的平均值,把结果存放在DAT2字节存储单元。

汇编语言编程实验报告

汇编语言编程实验报告

汇编语言编程实验报告学号:姓名:成绩:目录一、实验一: ......................................................错误!未定义书签。

二、实验二: (4)三、实验三: (8)四、实验四: (10)五、实验五: ......................................................错误!未定义书签。

六、实验六: (19)七、汇编实验总结 (23)实验一一. 实验题目【汇编语言补充作业T20T20】编写完整程序,利用】编写完整程序,利用DOS 系统功能调用,从键盘输入一个字符串,并将该字符串从屏幕上换行后并输出。

二. 程序流程及思路实现字符串输入,需要分成三个步骤:实现字符串输入,需要分成三个步骤:1、在数据段中定义一个缓存区为存放字符串做准备;2、DOS 系统功能调用0AH 号子功能,(DS:DX DS:DX))= = 输入缓冲区首址;输入缓冲区首址;输入缓冲区首址;3、在输入的字符串尾加上‘、在输入的字符串尾加上‘$$’字符,以作为输出结束条件。

’字符,以作为输出结束条件。

实现字符串输出,则需要注意的问题是:实现字符串输出,则需要注意的问题是:1、缓冲区第三个字节才开始存放输入的字符,前两个字节分别存放缓冲区长度和字符串实际字符数;和字符串实际字符数;2、输出回车换行可利用字符串:、输出回车换行可利用字符串:CR DB 0AH,0DH,CR DB 0AH,0DH,CR DB 0AH,0DH,’’$’。

’。

三. 源程序清单DATA SEGMENTN EQU 50MAXLEN DB N ;MAXLEN DB N ;缓冲区字符的最大长度缓冲区字符的最大长度缓冲区字符的最大长度ACTLEN DB ? ;ACTLEN DB ? ;实际字符个数实际字符个数实际字符个数STRING DB N DUP(?) ;STRING DB N DUP(?) ;字符空间字符空间字符空间CR DB 0AH,0DH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXLEA DX,MAXLENMOV AH,0AHINT 21H ;字符串输入字符串输入MOV AH,09HLEA DX,CRINT 21H ;回车换行回车换行MOV BL,MAXLEN+1 ;取实际的字符长度取实际的字符长度MOV BH,0LEA SI,MAXLEN+2 ;取字符开始的首地址取字符开始的首地址MOV BYTE PTR [SI+BX],'$' ;输出结尾要加上输出结尾要加上$ $MOV DX,SI ;把开始存放字符的首地址赋给DX(注:以下程序采用b方法)方法)。

2020年汇编实验报告代码(例文)

2020年汇编实验报告代码(例文)

汇编语言程序设计实验报告实验名称上机过程及顺序结构与分支结构程序设计实验班级学号姓名日期成绩评阅人软件学院一、实验目的与意义 1、掌握汇编语言程序设计的基本方法和技能; 2、熟练掌握使用全屏幕编辑程序 EDIT 编辑汇编语言源程序; 3、熟练掌握宏汇编程序 MASM 的使用; 4、熟练掌握连接程序 LINK 的使用。

5、掌握分支程序的结构6、掌握分支程序的设计、调试方法二、实验环境上机号24# 操作系统windows xp professional sp2软件环境Editplus +MASM+LINK+DEBUG三、实验的预习内容汇编程序上机的主要分为编辑,汇编,连接,执行等几个步骤汇编语言的工作环境为了运行汇编语言程序磁盘上应该有下列文件MASM.EXE LINK.EXE CREF.EXE 或 DEBUG.EXE1、汇编语言源程序的汇编过程汇编语言源程序的汇编过程是是利用汇编程序(MASM)对已编辑好的源程序文件(.ASM)进行汇编,将源程序文件中以 ASCII 码表示的助记符指令逐条翻译成机器码指令,并完成源程序中的伪指令所指出的各种操作,最后可以建立 3 个文件扩展名为 .OBJ 的目标文件、扩展名为 .LST 的列表文件和扩展名为 .CRF 的交叉索引文件。

目标文件是必须建立的,它包含了程序中所有的机器码指令和伪指令指出的各种有关信息,但该文件中的操作数地址还不是内存的绝对地址,只是一个可浮动的相对地址。

列表文件(.LST)中包含了源程序的全部信息(包括注释)和汇编后的目标程序,列表文件可以打印输出,可供调试检查用。

交叉索引文件(.CRF)是用来了解源程序中各符号的定义和引用情况的。

.LST 和.CRF 两个文件不是必须建立的,可有有无,可以通过汇编时的命令加以选择。

在对源程序文件(ASM 文件)汇编时,汇编程序将对 ASM 文件进行两遍扫描,若程序文件中有语法错误,则结束汇编,汇编程序将指出源程序中存在的错误,这时应返回编辑环境修改源程序中的错误,再经过汇编,直到最后得到无错误的目标程序,即 OBJ 文件。

汇编语言编程编程练习

汇编语言编程编程练习

汇编语言编程编程练习一、实验题1.非数值运算编程(a)实验目的通过非数值运算(如统计,分类,排序,代码转换等)编程,进一步掌握8086/8088 汇编语言程序设计方法和技巧(b)实验内容·统计设有100H个数,编程统计正数、负数和零的个数。

实验分析:程序中数的总数很多,某些部分需要重复执行,因此要用到循环结构。

循环结构每次测试循环条件,当满足条件时,重复执行这一段程序;否则循环结束,顺序往下执行。

其次,要统计正数、负数、零的个数,可以依靠标志位SF进行判断,SF=0,正数;SF=1,负数;零则为总数减去正负数的个数。

该程序流程图如下:开始初始化:设置缓冲区BUFF指针BX,设定循环次数256,统计计数器DL清零执行:从BUFF取数,进行算术运算,判断符号标志位SF修改:移动缓冲区指针,循环次数减一NO循环控制:CX=0YES结束:将寄存器的统计结果存入MEM单元,将控制交操作系统程序如下所示:STACK SEGMENT STACKDW 128 DUP(?)STACK ENDSDA TA SEGMENTBUFF DB 256 DUP(?)MEM1 DB ?MEM2 DB ?MEM3 DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA START:MOV AX,DATAMOV DS,AXMOV CX,256LEA BX, BUFFXOR DL,DLXOR DH,DHXOR SI,SI ;统计计数器清0NEXT:MOV AL,[BX];取数据到ALADD AL,0 ;做运算,影响标志位SFJNS AA1 ;是正数,跳到AA1INC DL ;是负数,统计加1AA1: INC DH ;是正数,加1INC BX ;移动指针LOOP NEXT ;循环控制MOV MEM1,DLMOV MEM2,DHMOV MEM3,SI ;保存统计结果MOV AX,4C00HINT 21HCODE ENDSEND START·代码转换编程将组合的BCD码9649转换成二进制数,考虑采用(((A*10)+B)*10)+C)*10+D 的算法。

(完整word版)汇编语言课程设计代码转换程序

(完整word版)汇编语言课程设计代码转换程序

汇编语言课程设计报告( 2010 ——2011 年度第2 学期)代码转换程序专业计算机科学与技术学生姓名袁帅班级B计算机092学号0910704225指导教师王志宏完成日期2011年6月24日目录目录 (3)1概述 (1)1。

1 课程设计目的 (1)1。

2 课程设计内容 (1)2程序需求分析 (1)2。

1 程序目标 (1)2。

2 主体功能 (1)2.3 开发环境 (2)3程序概要设计 (2)3.1 程序的功能模块划分 (2)3。

2 程序流程图 (2)4程序详细设计 (4)4.1 程序功能菜单模块设计 (4)4.2小写字母向大写字母转换模块设计 (5)4。

3大写字母向小写字母转换模块设计 (5)4.4 二进制数向十六进制数转换模块设计 (6)4.5 十六进制数向二进制数转换模块设计 (6)4.6 十六进制数向十进制数转换模块设计 (7)5测试 (7)5.1 测试方案 (7)5.2 测试结果 (8)6小结 (8)参考文献 (10)附录 (11)附录1源程序清单 (11)附录1.1程序功能菜单模块源程序 (11)附录1.2小写字母向大写字母转换模块源程序 (14)附录1。

3大写字母向小写字母转换模块源程序 (16)附录1.4二进制数向十六进制数转换模块源程序 (17)附录1。

5十六进制数向二进制数转换模块源程序 (18)附录1.6十六进制数向十进制数转换模块源程序 (19)代码转换程序设计1 概述1.1 课程设计目的1、通过利用汇编语言写代码转换程序,更好的掌握汇编语言,通过实践来巩固汇编语言的理论知识。

2、巩固并加深对汇编语言程序设计知识的理解3、进一步掌握和应用汇编语言集成开发环境4、提高运用汇编语言解决实际问题的能力5、掌握书写程序设计开发文档的能力(书写课程设计实验报告)1。

2 课程设计内容功能菜单的编制;小写字母向大写字母的转换;大写字母向小写字母的转换;二进制数向十六进制数的转换;十六进制数向二进制数的转换;十六进制数向十进制数的转换。

汇编语言中的字符串、代码转换

汇编语言中的字符串、代码转换
一般地讲,字符串指一串字符,或者说,是字符的有限序列。如 :6AN7BH,用ASCII码表示,并存储在连续的存储单元中,每个 字符占一个字或一个字节。用比较专业的术语来说,字符串是一种 特殊的线性表,它的数据元素仅由一个字符组成。
一个字符串中包含的字符个数,称为这个字符串的长度。长度为 零的字符串称为空串,它不包含任何字符。字符串通常用单引号或 双引号括起来,例如:
Hale Waihona Puke 3.LODS取串指令格式:可有三种 LODS SRC;源串元素由DS:SI指定的存储单元,目的串元素隐 含在由DS:AL或DS:AX指定的存储单元 LODSB; 8位字符串操作,省略源串和目的串不写 LODSW; 16位字符串操作,省略源串和目的串不写 功能:该指令把由SI指定的数据段中某单元[SI]的内容送到AL或 AX中,并根据方向标志及数据类型修改SI的内容。 说明: 1)如果是字节操作则先将由SI指定的单元内容送入AL中,然后 SI再自加/减1;如果是字操作则将[SI]送入AX,然后SI再自加/减 2。 2)该指令不影响标志位。
(1) ” X1 ” (2) ’ABC’
返回本节
字符串所能包含的字符,依赖于具体机器的字符集。目前世 界上应用最广的字符集是ASCII码字符集。 存储字符串的方法也就是存储列表的一般方法。最简单最普遍的 方法是顺序存储,还有链接存储等,这里仅讨论顺序存储的字符 串。 字符串的表示在8086/8088宏汇编语言中,可以借助数据定义语 句DB(因一个ASCII码是7位)来定义,字符串的特征表示一般有 两种,一种是在字符串的尾部用00H作标记,另一种是在字符串的 前面空出一个单元,放置字符串的长度。例: STRI DB ’ I am a student’,0 STR2 DB 4,’ABCD’

汇编语言字母大小写转换

汇编语言字母大小写转换

实验1 汇编语言选择结构程序设计班级xxxxx 学号xxxxx 姓名xxxxxx实验题目:完善例子:要求连续将键盘输入的小写字母转为大写字母,字母之间用“-”号间隔;若输入大写字母则直接输出,其他字符则不处理和输出,提示重新输入。

实验目的:1. 掌握选择结构程序设计;2. 掌握跳转类指令的使用;4. 掌握MASM、LINK、DEBUG等工具的使用。

实验设备:硬件:PC机软件:DOS操作系统、编辑软件、MASM 5.0实验内容:1.程序代码DA TA SEGMENTSTR DB 'Wrong word!Please input again:$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART:MOV AH,01HINT 21HMOV BL,AL ;保存在BL中MOV DL,'-' ;送‘-’号到DLMOV AH,02H ;显示‘-’INT 21H ;取回输入的字符MOV AL,BLCMP AL,'a' ;与‘a’比较JB A;小于‘a’转ACMP AL,'z' ;与‘z’比较JA EXIT ;大于‘z’转到EXITSUB AL,20H ;取大写字母MOV DL,AL ;输出MOV AH,02HINT 21HC: MOV DL,0AH ;输出换行MOV AH,02HINT 21HMOV DL,0DH ;输出回车MOV AH,02HINT 21HJMP START ;无条件转A: CMP AL,'A'JAE BJB DCMP AL,'Z'JBE BB: MOV DL,ALMOV AH,02HINT 21HLOOP CD: MOV BX,DA TA;请重新输入MOV DS,BXLEA DX,STRMOV AH,09HINT 21HLOOP BJMP STARTMOV AH,4CHINT 21HEXIT: MOV AH,4CHINT 21HCODE ENDSEND START2.调试过程如下图所示:(具体应用DEBUG指令及其结果)使用DEBUG调试过程以及程序运行结果如下所示:实验思考与总结:通过这次实验,使我对汇编语言的源程序结构有了一个系统地认识,并且掌握了选择结构程序设计,掌握了跳转类指令的使用和几种常见的DOS功能的使用;以及MASM、LINK、DEBUG等工具的使用,由于初次编写汇编程序,在实验过程中遇到了很多问题,但通过查看课本和请教老师,最终完成了实验,达到了实验的目的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告
(2015/ 2016 学年第二学期)
课程名称微型计算机原理与接口技术实验名称
实验时间
指导单位
指导教师
学院
姓名
学号
指导老师
实验报告
实验名称汇编语言语法练习指导教师
实验类型验证实验学时 1 实验时间2016年4月6日
一、实验目的和要求
1. 掌握汇编语言源程序的格式;
2. 进一步学习汇编语言源程序的编辑、汇编、目标文件的链接和可执行文件的执行全过程;
3. 掌握编辑软件、TASM、TLINK和TD的使用方法、掌握汇编语言的语法规则。

4. 实验内容:
(1)排除语法错误:给出的是一个通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序,但有很多语法错误。

要求实验者按照原样对源程序进行编辑,汇编后,根据TASM给出的信息对源程序进行修改,知道没有语法错误为止。

然后进行链接,并执行相应可执行文件。

正确的执行结果在屏幕上显示:25+9=34
二、实验环境(实验设备)
Windows XP +未来汇编软件
三、实验过程描述与结果分析
汇编语言源程序编写好以后,必须经过下列几个步骤才能在机器上运行:
(1) 编辑源程序(生成.ASM文件)
(2) 汇编源程序(.ASM→.OBJ)
(3) 链接目标程序(.OBJ→.EXE)
(4) 调试可执行程序(使用调试程序Debug调试生成的.EXE文件)
(5) 运行程序输出结果。

排除语法错误
要求通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序。

但有很多语法错误,要求按照原样对源程序进行编辑,汇编后,根据TASM给出的错误信息对源程序进行修改,直到没有语法错误为止,然后进行链接,并执行相应的可执行文件。

正确的执行结果是在屏幕上显示:25+9=34。

修改后代码:(分号后为修改)
;FILENAME:EXA121.ASM
.486
DATA SEGMENT USE16
SUM DB ?,?,
MESG DB '25+9= '
DB 0,0 ;DB 0,0,'$'
N1 DB 9,F0H ;DB 9,0F0H
N2 DW 25 ;DB 25
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET SUM
MOV AH, N1
MOV AL,N2
MOV [BX],AH
CALL CHANG
MOV AH,9
MOV DX,OFFSET MEST ;MOV DX,OFFSET MESG
INT 21H
MOV AH,4CH
INT 21H
CHANG:PROC
LAST: CMP [BX],10 ;LAST:CMP BYTE PTR [BX],10
JC NEXT
SUB [Bx],10 ;sub byte ptr [bx],10
INC [BX+7] ;INC BYTE PTR [BX+7]
JMP LAST
NEXT: ADD [BX+8],SUM ;NEXT:MOV CL,SUM
ADD BYTE PTR [BX+8],CL ADD [BX+7],30H ;ADD BYTE PTR [BX+7],30H
ADD [BX+8],30H ;ADD BYTE PTR [BX+8],30H
RET
CHANG:ENDP
CODE ENDS
END BEG
四、实验小结(包括问题和解决方法、心得体会、意见与建议等)
实验中依然会存在问题,通过实验小组成员的协作努力,才最终完成了语法错误的排除。

相关文档
最新文档