




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理软件实验报告实验二 分支,循环程序设计一.实验目的: 1.开始独立进行汇编语言程序设计; 2.掌握基本分支,循环程序设计; 3.掌握最简单的 DOS 功能调用.二.实验内容: 1.安排一个数据区,内存有若干个正数,负数和零.每类数的个数都不超过 9. 2.编写一个程序统计数据区中正数,负数和零的个数.3.将统计结果在屏幕上显示.4.统计出正奇数,正偶数,负奇数,负偶数以及零的个数.三主程序流程图四输出结果图1 数据区 图2 输出结果五预习题1.十进制数 0 - 9 所对应的 ASCII 码是什么? 如何将十进制数 0 - 9 在屏幕上显示出来? 答:对应的ascii码为30H至39H,将十进制数加上30H赋给DL,给AH赋01,调用int 21H即可输出2.如何检验一个数为正,为负或为零? 你能举出多少种不同的方法? 答:(1)用CMP指令与0相比,结合符号数比较指令JG等可以判断出正负数。 (2)可通过判断sf的值来判断数值是否是负数。 (3)也可用减法指令来判断六总结与感想这是自己编的第一个汇编程序,虽然很简单,但也犯了不少错误,主要是语法错误如寻址错误,寄存器使用错误等。通过这个程序,我初步掌握了条件结构在汇编语言中的实现以及输出的DOS功能调用。七源代码STACK SEGMENT STACK STACK ;堆栈段 DB 100 DUP(?)STACK ENDSDATA SEGMENTBUFFER DB 0,-1,8,9,-2,0,-5,7,1,0,2,-3;含有三类数据的数据区OUTPUT DB 0AH,0DH,the number of zero:,0AH,0DHNUMZ DB ? ;0的个数 DB 0AH,0DH,the number of positive even number:,0AH,0DHNUMPE DB ? ;正偶数的个数 DB 0AH,0DH,the number of positive odd number:,0AH,0DHNUMPO DB ? ;正奇数的个数 DB 0AH,0DH,the number of negative even number:,0AH,0DHNUMNE DB ? ;负偶数的个数 DB 0AH,0DH,the number of negative odd number:,0AH,0DHNUMNO DB ? ;负奇数的个数 DB $DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: XOR AX,AX ;给数据段基址赋值 MOV AX, DATA MOV DS,AX MOV AL,0 ;正偶数计数 MOV AH,0 ;正奇数计数 MOV BL,0 ;负偶数计数 MOV BH,0 ;负奇数计数 MOV DL,0 ;零计数 MOV CX,12 MOV DI,OFFSET BUFFERLOOP1: MOV DH,DI CMP DH,0 JG POSITIVE ;如果大于零则跳转到POSITIVE JZ ZERO ;等于零 SHR DH,1 JC NEGAODD ;为奇数 INC BL ;负偶数+1 JMP NEXTNEGAODD: INC BH ;负奇数+1 JMP NEXTPOSITIVE:SHR DH,1;除以2 JC POSIODD;进位为1为奇数 INC AL ;正偶数+1 JMP NEXTPOSIODD: INC AH ;正奇数+1 JMP NEXTZERO: INC DL ;零+1 NEXT: INC DI DEC CX JNZ LOOP1 ADD AX,3030H ;转换为ascii码 ADD BX,3030H ADD DL,30H MOV NUMPE,AL ;将计数结果存到内存 MOV NUMPO,AH MOV NUMNE,BL MOV NUMNO,BH MOV NUMZ,DL XOR AX,AX MOV AH,09H MOV DX,OFFSET OUTPUT ;输出结果 INT 21H MOV AX,4C00H INT 21HCODE ENDS END START实验三 代码转换程序设计一.实验目的: 1.掌握几种最基本的代码转换方法; 2.运用子程序进行程序设计.二.实验内容: 1.从键盘上输入若干两位十进制数,寻找其中的最小值,然后在屏幕上显示出来. 2.两个十进制数之间的分隔符,输入结束标志自定,但要在报告中说明. 3.对输入要有检错措施,以防止非法字符输入,并有适当的提示. 4.将整个程序分解为若干模块,分别用子程序实现.在报告中要给出模块层次图.三模块层次图四程序流程图五输出结果六预习题 1.如何将输入的两个字符(0 - 9)变为十进制或二进制数? 答:将输入的ascii码减去30H则能转换为对应的数值 2.如何将选出的最小值(二进制或十进制)变为 ASCII 码再进行显示? 答:将存数的数值除以10或2得到对应的十进制或二进制的每一位数,加上30H得到ascii码。 3.你觉得采用二进制运算还是十进制运算更适合于这个实验? 答:我觉得二进制运算更适合,因为计算机内部使用二进制存储数据,用二进制计算效率更高。七总结与感想本次实验的难度较之前有了提高,接收输入的两位十进制数是一个小难点,通过加减30H转换数值与ascii码,初步掌握了输入输出时代码转换的处理。为之后的实验打下了一个良好的基础。同时也进一步熟练使用debug.exe来调试程序,开始习惯汇编编程的特点八源代码STACK SEGMENT STACK STACK DB 100 DUP(?)STACK ENDSDATA SEGMENT INPUT_REMIND DB 0DH,0AH,please input several double-digit integer;, is separator,;is ending symbol,0DH,0AH DB $ERROR_REMIND DB 0DH,0AH,error input! please input all the numbers again,0DH,0AH DB $MIN_NUMBER DB 0DH,0AH,the minimum number is:,0DH,0AHMIN1 DB ? ;存储十位数的ascii码MIN2 DB ? ;存储个位数的ascii码 DB $INPUT_NUMBER DW ? ;存储输入数的个数INPUT_DATA DB ? ;存储输入的数据DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX XOR AX,AX MOV DX,OFFSET INPUT_REMIND ;输入提醒 MOV AH,09H INT 21H CALL INPUT ;调用输入子程序 CALL FIND_MIN ;找最小值,最小值存入DL CALL OUTPUT ;调用输出子程序 MOV AX,4C00H INT 21H;*输入子程序,规定只能输入两位十进制数,有检错机制*INPUT PROC PUSH AX ;保护数据 PUSH BX PUSH DX PUSH SI MOV BL,10 ;作乘数MOV SI,0 ;计数器,也做变址寄存器访问内存NUM1: MOV AH,01 ;输入十位上的数值 INT 21H CMP AL,9 ;检错JA ERROR_INPUT ;非法输入跳转至 EEROR_INPUTCMP AL,0JB ERROR_INPUT SUB AL,30H ;将ASCII码转换为数值MUL BL ;乘上10的权值MOV INPUT_DATASI,AL;存入内存NUM2: MOV AH,01 ;输入个位上的数值 INT 21H CMP AL,9 ;检错JA ERROR_INPUTCMP AL,0JB ERROR_INPUTSUB AL,30H ;将ASCII码转换为数值ADD INPUT_DATASI,AL;与输入的十位部分相加,形成一个完整的数值INC SI ;计数器加1MOV AH,01 ;输入分隔符或结束符INT 21HCMP AL, ;若是分隔符,则重新跳转至输入十位数JZ NUM1CMP AL,; ;若是结束符,则跳出循环JZ NEXTJMP ERROR_INPUTNEXT: MOV INPUT_NUMBER,SI;存储输入数的个数POP SI ;恢复数据POP DXPOP BXPOP AX RETERROR_INPUT: XOR SI,SI ;计数器清零 MOV DX,OFFSET ERROR_REMIND ;输出错误提醒 MOV AH,09H INT 21H JMP NUM1;重新输入INPUT ENDP;*找最小值子程序*FIND_MIN PROC PUSH BX ;保护数据 PUSH SI PUSH DI MOV SI,0 ;变址 LEA BX,INPUT_DATA ;基地址 MOV DI,INPUT_NUMBER ;提取数据的个数 MOV DL,100 ;用DL 存储最小值,初始化一个大值LOOP1: MOV DH,BX+SI ;逐个对比 CMP DL,DH JB BIGGER ;dl较小,不作处理,与下一个数比较 MOV DL,DH ;dh比dl小,则更新dl中的较小值BIGGER: INC SI ;计数器加1 CMP SI,DI JAE ENDING JMP LOOP1 ;循环ENDING: POP DI ;恢复数据 POP SI POP BX RETFIND_MIN ENDP;*输出子程序,将10进制数转换为ascii码输出*OUTPUT PROC PUSH AX PUSH BX PUSH DX XOR AX,AX ;将ax清零 MOV AL,DL MOV BL,10 DIV BL ;除以10,商为十位上的数,余数为个位上的数 ADD AL,30H ;转换为ascii码 ADD AH,30H MOV MIN1,AL ;存到内存中 MOV MIN2,AH XOR AX,AX MOV DX,OFFSET MIN_NUMBER ;输出到屏幕上 MOV AH,09H INT 21H POP DX POP BX POP AX RETOUTPUT ENDP CODE ENDS END START 实验四 子程序设计一.实验目的: 1.进一步掌握子程序设计方法; 2.进一步掌握基本的 DOS 功能调用.二.实验内容: 1.从键盘上输入某班学生的某科目成绩.输入按学生的学号由小到大的顺序输入. 2.统计检查每个学生的名次. 3.将统计结果在屏幕上显示. 4.为便于观察,输入学生数目不宜太多,以不超过一屏为宜.输出应便于阅读.尽可 能考虑美观. 5.输入要有检错手段.三程序流程图四模块层次图五输出结果(注:,为输入分隔符,;为输入结束符)六预习题 1.如何确定一个学生在这门科目中的名次? 答:直接提取该学生的分数,与其他学生分数相比,比较一轮即可得到名次 2.你觉得输入结束后,采用什么方法进行比较以得到学生的名次最为简单? 答:冒泡排序 3.准备好模块层次图. 答:见上文 4.给出输出显示的形式. 答:见输出结果七总结与感想本次实验的难度较上次实验又提高了,提高了输入模块设计的难度,上次实验要求只能输入两位的十进制数,而本次实验并不限制输入的位数,我采取了移位的思想解决了这个问题,将原有的数乘以10加上新输入的一位数则能得到新的数,直到输入分隔符或结束符。输出时的代码转换同样是移位的思想并结合堆栈的结构特点将先移出的数位压入堆栈,最后将压入的每一位弹出,存入内存,这样输出就能符合阅读习惯。输出一定的格式也是一个小难点,我事先将输出字符串初始化为空格(空格的数量根据自己设计的格式耳钉),再将ascii码往上覆盖,就能实现一定格式的输出。在排序的问题上,考虑到最后的输出是按学号排序,我并没有对分数进行排序,而是直接取每一个学生分数与其他学生分数比较一轮得到名次保存起来。同时,这次实验涉及的数据较多,内存的管理也是一个很容易出错的地方。通过这次实验,进一步提升了自己汇编编程的能力。八源代码STACK SEGMENT STACK STACK DB 100 DUP(0)STACK ENDS DATA SEGMENTINPUT_REMIND DB 0AH,0DH,please input the score of students by the order of student number:,0AH,0DH,$ERROR_REMIND DB 0AH,0DH,illegal input ! please input again,0AH,0DH,$STUDENT_NUMBER DB ? ;输入学生的个数OUTPUT DB 0AH,0DH,0AH,0DH,STUDENT, ,SCORE, ,RANK,0AH,0DH,$STUDENTN DB ;输入字符串部分:学生学号STUDENTS DB ;学生分数STUDENTR DB ;学生名次 DB 0AH,0DH DB $ STUDENT_INFO DB ? ;存储输入的学生分数 ORG 200HRANK DB ? ;存储名次 按学号从小到大排序DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AXXOR AX,AX MOV DX,OFFSET INPUT_REMIND ;输入成绩MOV AH,09HINT 21HCALL INPUT ;调用输入子程序CALL SORT ;调用排序程序MOV DX,OFFSET OUTPUT MOV AH,09HINT 21H CALL OUTPUTT ;调用输出子程序MOV AX,4C00H ;返回dosINT 21H;*输出子程序,按照一定的格式输出学号、分数、名次*OUTPUTT PROC PUSH AX ;保护将用寄存器的原有数据PUSH BXPUSH CXPUSH DXPUSH SIPUSH DIMOV CH,0 ;CH用来计数MOV CL,STUDENT_NUMBER ;提取学生人数LEA SI,STUDENT_INFO ;提取学生学号、分数LEA DI,RANK ;提取学生名次LOOP2: LEA BP,STUDENTN ;提取学生学号的输出存储地址LOOP3: MOV BYTE PTR DS:BP, ;将原本输出字符串区全部初始化为空格INC BPCMP BYTE PTR DS:BP,0AH ;检查是否到输出字符串的结尾JZ NEXT2JMP LOOP3NEXT2: MOV AL,SI+1 ;先取出学生的学号 LEA BP,STUDENTN ;给BP传存储输出学号asccii码的地址 CALL INTOASC ;调用子程序,将学号转换为ascii码 MOV AL,SI ;提取学生的分数 LEA BP,STUDENTS ;给BP传存储输出分数asccii码的地址CALL INTOASC ;调用子程序,将分数转换为ascii码 XOR BX,BXMOV BL,CH MOV AL,RANKBX ;提取学生的名次LEA BP,STUDENTR CALL INTOASC ;将名次转换为ascii码NEXTT: MOV DX,OFFSET STUDENTN ;打印一行学生信息 MOV AH,09HINT 21H INC CH ;计数器加1ADD SI,2 ;si加2,以便读取下一名学生信息 CMP CH,CL ;判断是否把所有学生信息都提取完JB LOOP2 ;没提取完,循环提取POP DI ;恢复数据POP SIPOP DXPOP CXPOP BXPOP AXRETOUTPUTT ENDP ;*代码转换子程序,AL存储要装换的数值参数,BP存储转换后的ascii码输出地址偏移量*INTOASC PROC ;将数值按十进制转换成ascii码,并将其输出到输出字符串区,BP是传入的输出地址参数 PUSH AX ;保护数据PUSH BX MOV BX,0 ;为保护堆栈中原有的数据先压入一个0 PUSH BXTRAFORM:XOR AH,AH MOV BL,10 DIV BL ;除10提取每一位上的数值,余数即为提取的一个数位ADD AH,30H ;将余数转成aschii码压入堆栈XOR BX,BXMOV BL,AHPUSH BXCMP AL,10 ;将除数与10比较如果小于10,则代表每一位都提取完毕,否则继续除10提取JB DEPOSIT1JMP TRAFORMDEPOSIT1:ADD AL,30H MOV DS:BP,ALLOP:POP AX ;将压入堆栈的每一个数位弹出,存入内存区CMP AX,0JZ ENDTT INC BPMOV DS:BP,ALJMP LOPENDTT:POP BX ;恢复数据 POP AX RETINTOASC ENDP ;*输入子程序,有检错机制*INPUT PROC PUSH AX ;保护数据 PUSH BX PUSH CX PUSH DX PUSH SI MOV BL,10 ;BL 作乘数MOV BH,0 ;用以存储学生学号,也作计数器用MOV SI,0 ;变址寄存器XOR DL,DLXOR CL,CLNUM: MOV AH,01 ;输入一位数 INT 21H CMP AL,9 ;检错JA NNUM ;非数字输入跳转至 NNUMCMP AL,0JB NNUM SUB AL,30H ;将ASCII码转换为数值MOV CL,AL ;将输入的值暂存在CLMOV AL,DL ;将DL中原来的数乘以10,相当于十进制数左移一位MUL BL MOV DL,ALADD DL,CL ;将新输入的一位数与已输入的数相加 JMP NUMNNUM: CMP AL, ;若是分隔符,继续JZ INPUTANOTHERCMP AL,; ;若是结束符,则跳到结束部分JZ ENDING1JMP ERROR_INPUTINPUTANOTHER: MOV STUDENT_INFOSI,DL ;将学生分数存入内存 INC SI ;计数器加1INC BHMOV STUDENT_INFOSI,BH ;存储学生学号INC SIXOR DL,DL ;清空DLJMP NUM ENDING1: MOV STUDENT_INFOSI,DL INC SIINC BHMOV STUDENT_INFOSI,BH ;存储学生学号 MOV STUDENT_NUMBER,BH ;存储学生的个数POP SI ;恢复数据POP DXPOP CXPOP BXPOP AX RETERROR_INPUT: XOR SI,SI ;计数器清零XOR BH,BHXOR CL,CL MOV DX,OFFSET ERROR_REMIND MOV AH,09H INT 21HXOR DL,DL JMP NUM ;重新输入INPUT ENDP;*排序子程序,逐个对比,按学号顺序存储名次*SORT PROC MOV DH,0 MOV DL,STUDENT_NUMBER;提取学生人数DEC DL SHL DX,1 ;用以判断一次比较是否结束 MOV SI,0 ;访问数组LEA BX,STUDENT_INFO MOV CX,WORD PTRBX+SI ;CX提取学生信息 高八位是学号 低八位是分数MOV AH,1 ;名次计数XOR DI,DILOOP1: CMP CL,BX+SI ;比较分数 JB SMALLERJMP NEXT1SMALLER:INC AH ;分数较低,名次+1NEXT1:CMP SI,DX ;判断一轮排序是否比较完 JZ END1INC SI ;访问下一个待排序的学生信息 INC SIJMP LOOP1 ;循环END1: MOV RANKDI,AH ;保存名次 CMP CH,STUDENT_NUMBER;判断是否得到所有学生的名次 JZ END2INC DI MOV SI,DISHL SI,1MOV CX,WORD PTR BX+SI ;提取下一位学生XOR SI,SIMOV AH,1 JMP LOOP1END2: RETSORT ENDPCODE ENDS END START实验五 中断程序设计一.实验目的: 1.初步掌握中断程序的设计方法: 2.初步掌握修改 DOS 系统中断,以适应实际使用的方法.二.实验内容: 1.编写一个 32 位二进制数除以 16 位二进制数的除法程序.观察当除数为 0,或 超过相应寄存器范围时,程序执行的结果. 2.修改零号中断服务程序,使它具有以下功能: (1)判断除数是否为 0,当除数为 0 时,显示相应的结果; (2)当除数不为 0 时,采用适当的方法完成商超过 16 位的二进制数的除法运算. 3.注意必须保护原有中断服务程序的入口地址,并在程序完毕前加以恢复. 4.用二进制将结果在屏幕上显示. 5.从键盘输入二进制数.三.程序流程图四.输出结果 (注:;为结束符)图1 正常输出结果图2 异常输出结果五预习题 1.如何保护原有中断向量表中的中断服务程序的入口地址? 答:将入口地址压入堆栈保护 2.如何将你的中断服务程序入口地址置入中断向量表? 答:可通过调用dos功能修改中断向量表六总结与感想 本次实验的主要难点依旧在输入输出模块上,与实验四类似,但这次实验要求的是二进制输入输出,处理思想与处理十进制输出输出相似,都是利用移位和堆栈来处理。因为多处地方用到了堆栈,在调试过程中,多次出现了子程序返回的错误,都是因为没有对堆栈进行正确的保护。通过这些错误,加深了自己对子程序调用返回机制的理解。 同时通过这次实验,我对中断向量表机制有了更进一步的理解,初步掌握了如何自定义中断服务程序。这次实验也是调试时间最长的一次实验,虽然过程很艰辛,但我从中汲取的经验是更加宝贵的。 总而言之,通过软件实验编写这四个小程序,我基本算汇编编程入门了,加深了对理论课上的知识的理解,提高了编程与调试能力,获益匪浅。七.源代码STACK SEGMENT STACK STACK DB 100 DUP(0) STACK ENDSDATA SEGMENT INPUT_ERROR DB 0AH,0DH,illegal input ,please input again,0AH,0DH,$INPUT_DIV1 DB 0AH,0DH,please input the dividend of 32 bits,0AH,0DH,$INPUT_DIV2 DB 0AH,0DH,please input the divisor of 16 bits,0AH,0DH,$ERROR_MESSAGE DB 0AH,0DH,Divide overflow,Divisor equals 0,0AH,0DH,$DIVIDEND DD ? ;存储32位被除数DIVISOR DW ? ;存储16位除数RESULT DB 0AH,0DH,The consult is:,0AH,0DHCONSULT DB 30H DB 31 DUP( ) DB 0AH,0DH,The remainder is:,0AH,0DHREMAINDER DB 30H DB 15 DUP( ) DB $DATA ENDSCODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODESTART: MOV AX,DATA MOV DS,AXXOR AX,AX MOV DX,OFFSET INPUT_DIV1 ;输出被除数输入提示MOV AH,09HINT 21HCALL INPUT1 ;调用输入被除数子程序,接收输入的被除数并存入内存MOV DX,OFFSET INPUT_DIV2 ;输出除数输入提示MOV AH,09HINT 21HCALL INPUT2 ;调用输入除数子程序,接收输入的除数并存入内存STI ;开中断MOV AL,0 ;保存原中断向量MOV AH,35HINT 21H PUSH ESPUSH BXPUSH DS ;写中断向量表,将原ds压入最占保护MOV AX,SEG INTO0 ;将自定义的中断服务程序的入口地址写入中断向量表MOV DS,AXMOV DX,OFFSET INTO0MOV AL,0MOV AH,25HINT 21HPOP DS ;弹出原ds值MOV CX,0 LEA SI,DIVIDEND ;进行除法,若商大于16位则32位商保存在CX:AX 余数在DX 。MOV AX,WORD PTRSIMOV DX,WORD PTRSI+2LEA SI,DIVISORMOV BX,WORD PTRSIDIV BXCMP BX,0 ;如果除数为0直接退出JZ EXITCALL OUTPUT ;调用输出子程序,将二进制结果转换为ascii码并存入内存MOV DX,OFFSET RESULT ;输出二进制结果XOR AX,AXMOV AH,09HINT 21HPOP DX ;恢复中断向量表POP CXPUSH DSMOV DS,CXMOV AL,0MOV AH,25HINT 21HPOP DSEXIT:MOV AX,4C00H ;返回dosINT 21H;*0号中断服务程序处理商超过16位的除法*INTO0 PROC POP CX ;修改返回地址ADD CX,2PUSH CXCMP BX,0 ;检查除数是否为0JNE NEXTLEA DX,ERROR_MESSAGE ;输出除数为0的错误提示XOR AX,AXMOV AH,09HINT 21HJMP FINISHNEXT: PUSH AX ;将被除数的低16位先保存起来 MOV AX,DX ;将高16位挪到低16 XOR DX,DX ;将高16位清零 DIV BX MOV CX,AX ;得到商的高16位 POP AX DIV BX ;此时cx:ax为得到的32为商 dx为余数FINISH: IRETINTO0 ENDP ;*输入被除数子程序(最多32位),将ascii码转换成二进制并存入内存*INPUT1 PROC PUSH AX ;保护子程序内将要使用的寄存器的原来的数据PUSH BXPUSH CXPUSH DXPUSH SIBEGIN: MOV AX,0 ; MOV BX,0FFFFH ;保护堆栈原有数据,0ffffh作隔离用PUSH BXMOV BX,0 ;BX与CX暂时存储被除数,利用移位来实现一位一位的输入MOV CX,0LOOP1:MOV AH,01 INT 21HCMP AL,1 ;检查输入是否错误JA ERROR_INPUTCMP AL,0JB ERROR_INPUT SUB AL,30H ;减30H,转换为数值MOV DX,0 ;用于暂存cf的值 SHL BX,1 ;左移一位 JNC ZFZ1 ;检查进位是1还是0 MOV DX,1 ;进位为1ZFZ1: PUSH DX ;将进位值压入堆栈 CMP CX,0 ;检查高16位是否为零,如果为0则高16位不需要移位,否则需要移位JNZ CXEQZ POP DXADD CX,DXADD BL,ALJMP LOOP1CXEQZ: SHL CX,1 ;将高16位左移一位JC ERROR_INPUT ;如果有进位则代表输入的数位超过16位,输出错误信息并要求重新输入POP DX ;弹出低16位的进位ADD CX,DX ;高16位加低16位的进位ADD BL,AL ;低16位加上输入的值,完成一个bit的输入JMP LOOP1 ;循环输入ENDINPUT: LEA SI,DIVIDEND MOV SI,BX MOV SI+2,CX POP BX POP SI ;恢复数据POP DXPOP CXPOP BXPOP AX RETERROR_INPUT: CMP AL,; ;检查是否输入结束 JZ ENDINPUTLOP3: POP BX ;输入错误,将原来压入堆栈的数据弹出,并要求重新输入 CMP BX,0FFFFH JNZ LOP3 MOV DX,OFFSET INPUT_ERROR MOV AH,09H INT 21H JMP BEGININPUT1 ENDP;*输入除数子程序(最多16位),将ascii码转换为二进制并存入内存*INPUT2 PROC ;算法原理与输入被除数子程序一致 PUSH AX ;保护子程序内将要使用的寄存器的原来的数据PUSH BXPUSH
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 理想班集体课件
- 玛氏安全培训课件
- 猫病输液疗法课件
- 城港市上思县思甜土特产贸易有限公司上思县高岸加油站项目环境影响报告表
- 滴灌工程实施方案(3篇)
- 地铁绿化迁移工程方案(3篇)
- 牵引车司机安全培训课件
- 农业废弃物资源化利用项目技术创新与产业竞争力研究报告
- 牧场饲养部门安全培训课件
- 安全教育培训面试课件
- 教科版四年级上册科学全册教案
- 水稻螟虫绿色防控
- 2024版2025秋新版小学道德与法治三年级上册全册教案教学设计含反思
- 家电合伙合同(标准版)
- 血站服务礼仪培训课件
- 2025年iptv技术考试题库
- 科室医院感染管理制度
- 学科交叉教学中存在的问题及改进措施
- 山东中专学籍管理办法
- 老年营养健康宣教
- 新版苏教版四年级上册科学(全册教案及教学计划及进度表)
评论
0/150
提交评论