




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
加减法参考程序DATASEGMENT PARA PUBLIC DATADATAENDSSTACKSEGMENT PARA STACK STACKDB512 DUP (?)STACK ENDSCODESEGMENT PARA PUBLIC CODEASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTARTPROC FARPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOV DS,AXMOV ES,AX MOV AX,0000MOV DX,0000MOV SI,2050HMOV DI,2150HMOV BP,2250HMOV WORD PTRSI,0205HMOV WORD PTRDI,0408HMOV WORD PTRBP,0109HMOV AL, ;送被加数低8位 AL=;低8位相加 AL= ,AH= ,CF=;加法ASCII调整 AL= ,AH= ,CF=MOV DL,AL ; DL=MOV AL,SI+1 ;AL= ;带进位加 ;AL= ,CF=;加法ASCII调整 AL= ,AH= ,CF=;AL与DL交换 AL= ,DL=;和的低8位减减数的低8位 AL=;减法ASCII调整 AL= ,AH= ,CF=;AL与DL交换,存低8位结果AL= ,DL=;高8位带进位减 AL=;减法ASCII调整AL= ,AH= ,CF=MOV DH,AL ;DH=RETSTARTENDPCODEENDSENDSTART乘法参考程序DATASEGMENT PARA PUBLIC DATADATAENDSSTACKSEGMENT PARA STACK STACKDB512 DUP (?)STACK ENDSCODESEGMENT PARA PUBLIC CODEASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTARTPROC FARPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOV DS,AXMOV ES,AX MOV AX,0MOV BX,0MOV DI,223AHMOV SI,2230HMOV AL,04HMOV BL,06H;相乘,AL=,CF=;调整,AH=,AL=MOV WORD PTR DI,AXMOV AL,03H;被乘数高8位乘以乘数低8位;调整;部分积相加;调整MOV WORD PTR DI+1,AXMOV AL,04HMOV BL,05H;相乘;调整MOV WORD PTRSI,AXMOV AL, 03HMUL BL;调整;部分积相加;调整MOV WORD PTR SI+1,AXMOV AL,DI;MOV BP,2240HMOV BP,AL MOV AL,DI+1;部分积相加;调整MOV BP+1,ALMOV AL,DI+2 ;部分积相加;调整MOV BP+2,ALMOV AL,0;部分积相加;调整MOV BP+3,ALRETSTARTENDPCODEENDSENDSTART16进制到ACII码参考程序nameHEXASCdata segment para public datahex dw 0A5E9hasc db 20 dup(0)data endsstack segment para stack stackdb 512 dup (?)stack endscode segment para public codeassume cs:code,ds:data, es:data,ss:stackstart proc far push ds mov ax,0 push ax mov ax,data mov ds,ax mov es,ax mov cx,0004h mov ax, ; AX= ,取十六进制数0ebf9h lea bx,asc aa: push cx ;给循环计数器赋转换代码长度 ;AX= ,十六进制数循环左移 push ax and ax,000fh ;AX= ;AX= AX= ;AX= cmp al, ;判别是否为“09” ascii;是“09”转ascii add al,07h ascii:add al,30h ;al = ;al = al= ;al = loop aa retstart endp code ends end startACII码到BCD码参考程序NAME ASCBCDDATA SEGMENT PARA PUBLICDATAORG 0150HDATA1 DW 3538H,4237H,3946H,3639H,3642HORG 0160HDB 10DUP(?)DATA ENDSSTACK SEGMENT PARA STACKSTACKDB 512 DUP(?)STACK ENDSCODE SEGMENT PARA PUBLICCODEASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART PROC FARPUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AX MOV CX,05H; DI= ,DI= ASCII首址送DI; SI= , BCD首址送SIBB: MOV BL,0FFHMOV AL,DI;AL= ;检查是否为大于9的ASCII码;是转DONE;AL= ,DI=不是,取ASCII码低4位; 小于0的十进制数,转DONEMOV BL,ALDONE:MOV AL,BL ; AL= ,DI=MOV SI,AL;SI=;指针加1;指针加1;(CX)不为0,转BBRET 160H=START ENDPCODE ENDSEND STARTBCD码二进制参考程序NAME BCD2DATA SEGMENTORG 0180HDAT1 DW 0802H,0103H,0009H,0706H,0407HORG 0190HDAT2 DB 10 DUP(?)DATA ENDSSTACK SEGMENT PARA STACKSTACKDB 512 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,DATAMOV DS,AX MOV ES,AX ;循环计数器赋转换代码长度;BCD码首址送DI ;二进制首址送SIXL:;BCD码十位数值赋AL MOV BL,0AH MUL BL;乘10 INC DI MOV AH,00H ;BCD码十位和个位相加,转换结束 ;转换结果存二进制起始地址 INC DI INC DI INC SI;(CX)不为0转AA LOOP XL RETSTART ENDPCODE ENDS END START查表处理参考程序DATASEGMENTLIST DW 12,11H,22H,33H,44H,55H,66H,77H,88H,99H,111H,222H,333H DATAENDSCODESEGMENTDEL_ULPROC FARASSUME CS:CODE,DS:DATA,ES:DATAMAIN:PUSH DSSUB AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV AX, ;AX=CLDLEA DI, ; DI= ,DI= 取得数据区首地址PUSH DIMOV CX,ES:DIADD DI,2 SCASW; AX= ,DI= ,DI= 字符串比较 DELETE;字符相同转移JMP SHORT EXITDELETE: DEC_CNT;CX寄存器内容为0则到数据区尾转结束NEXT_EL: MOV BX,ES:DI ;BX= , DI-2MOV ES:DI-2,BX ; (DI-2)= , (DI)=ADD DI,2LOOP NEXT_EL DEC_CNT: POP DIDEC WORD PTR ES:DI ; (0H)= . EXIT:RETDEL_UL ENDPCODEENDSENDMAIN分支与循环参考程序DATA SEGMENTORG 200HARRAY DW 56H,12H,-6790H,0,78H,0H,-1H,0H,3000H,90HDATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART:PUSH DS MOVAX,0PUSH AXMOV AX,DATA MOV DS,AX MOV CX, ;循环计数器赋转换代码长度 MOV BX,0 MOV DI,BX MOV SI,BX ;BX= 字数组首址送BXAGAIN:MOV AX,BX ;与0比较 LEQ;小于或等于0转 INC DI;AX= ,DI= JMP SHORT NEXTLEQ: NEXT;小于0转 INC SI;AX= ,SI=NEXT:ADD BX,2 LOOP AGAIN MOV AX,10 ;字数组长度减负数 ; AX= 字数组长度减负数再减零 RETMAIN ENDPCODE ENDS END START排序参考程序DATA SEGMENTDAT DW 10,1234H,2345H,3456H,9999HDW 8700H,7000H,0,6500H,5111H,4FBDHDATA ENDSCODE SEGMENTMAIN PROC FAR ASSUME CS:CODE,DS:DATA,ES:DATASTART: PUSH DS;初始化SUB AX,AX PUSH AX MOV AX,DATAMOV DS,AXMOV ES,AX;字数组首地址送DI;循环长度送CX;循环长度减1(10个数据,循环9次)LOOP1:MOV SI,CX INC DIINC DILOOP2:;取DAT(I)个数据 ;与DAT(I1)个数据比较 ;如果DAT(I1)大于或等于DAT(I)转移 ; AX= ,(DI)= 否则交换 ;(DI)=存较小的数 CON: ADD DI,2 LOOP LOOP2;(DI)=. 取循环长度,准备下次比较;字数组首地址送DILOOP LOOP1 ;(DI)=.RET MAIN ENDP CODE ENDSEND START6264参考程序.486DATA SEGMENT AT 0 USE16 ORG 4000HDATA1 DB 6 DUP(?)DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATA,ES:DATAORG 2000HBEG: JMP STARTSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,0MOV SS,AXMOV SP,1000HMOV AX, ;6264段地址MOV DS,AXXOR AX,AXMOV BX, ;偏移地址MOV CX, ;数据长度M1:MOV BYTE PTRBX,AL; (BX)= , (BX)= , (BX)=送数据INC ALINC BXLOOP M1HART ENDPCODE ENDSEND BEG8255参考程序.486DATA SEGMENT AT 0 USE16PORTA EQU ;A口PORTB EQU ;B口PORTC EQU ;C口CONTROL EQU 20FH;控制口PORT1EQU 340H;七段码段地址PORT2EQU 360H;七段码位地址ORG HDATA1 DB 6 DUP (?);输入数据区ORGH DATA2 DB 6 DUP (?);显示缓冲区DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATA,ES:DATAORG 2000HBEG: JMP STARTTABDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FHDB 67H,77H,7CH,39H,5EH,79H,71H ;段码表STlART:MOV AX,DATA;初始化MOV DS,AXMOV ES,AXMOV AX,0MOV SS,AXMOV SP,1000H ;8255初始化;清显示 LP:;读数据 ;存数据 CALL CZ;调用拆字子程序 CALL DISP;调用显示子程序 JMP ;循环取数显示CZ PROC PUSH CX LEA SI,DATA1;拆字,取数 LEA DI,DATA2;显示缓冲区首址CZ0: MOV BL,SI AND BL,0F0H ;BL= MOV CL,4 ROL BL,CL MOV DI,BL ;(DI)= INC DI MOV BL,SI AND BL,0FH ;BL= MOV DI,BL INC SIINC DICMP SI, H JBE CZ0 POP CX RETCZENDPDISP PROC;显示子程序 PUSH CX PUSH DX LEA BX,TAB LEA SI,DATA2 MOV AH,0C1HDISP1: MOV DX,PORT2 MOV AL,AH OUT DX,AL; AL= , AL= 位输出 MOV DX,PORT1 MOV AL,SI XLAT OUT DX,AL;AL= ,AL= 段输出 MOV CX,0200H LOOP $ INC SI SAL AH,1 OR AH,0C0H CMP AH,0C0H JNZ DISP1 POP DX POP CX RETDISPENDPCODE ENDSEND BEG8253参考程序 .486DATA SEGMENT AT 0 USE16ZDXL EQU 20H;中断向量(20H)OPORT EQU 3A0H;8259偶地址JPORT EQU 3A8H;8259奇地址PORT1 EQU 340H;段地址PORT2 EQU 360H;位地址DS0 EQU 300H;8253通道0DSC EQU 30CH ;8253控制口COUNT EQU 50ORG 4000HDATA1 DB 6 DUP(?) ORG 4040HDATA2 DB 3 DUP(?) DATA ENDSCODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA,ES:DATA ORG 2000HBEG: CLI JMP START TAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,DB 7FH,67H,77H,7CH,39H,5EH,79H,71H ;段码表TIMER DB 0;延时、计数初值START: ;初始化INIT8253: MOV DX,DSC MOV AL, ;方式3,方波发生器 OUT DX,AL MOV DX,DS0 MOV AL,0BH OUT DX,AL MOV AL,0E9H OUT DX,ALSETVECT: MOV DI,0 MOV DX,OFFSET SERVER;中断服务子程序偏移地址;送中断向量低位 MOV ZDXLDI,DX MOV DX,CS;中断服务子程序段地址;送中断向量高位 MOV ZDXLDI+2,DX ,(00:20H)INIT8259: MOV AL,00010011B ;ICW1 MOV DX,OPORT OUT DX,AL MOV AL,00001000B ;ICW2 MOV DX,JPORT OUT DX,AL MOV AL,00001101B ;ICW4 MOV DX,JPORT OUT DX,AL MOV AL,11111110B ;OCW1 MOV DX,JPORT OUT DX,AL MOV AL,20H;EOI(20H) MOV DX,OPORT OUT DX,ALAGAIN: STI;开中断 CALL CZ;调拆字 CALL DISP;调显示 JMP AGAINCZ PROC RETCZ ENDPDISP PROC RETDISP ENDP;-SERVER PROC ;8253中断入口 CLI PUSH AX PUSH CX PUSH DX PUSH SI PUSH DI LEA SI,TIMER MOV AL,SI INC AL CMP AL, ;与延时、计数值终值比较 WORK;大于、等于(到1秒)转移 MOV SI,AL;SI= , SI= ,SI= JMP EXITWORK: MOV AL,0 MOV SI,AL LEA SI,DATA2+2 MOV AL,SI INC AL ;十进制调整 CMP AL, ;与60秒比较 MINUTE;大于、等于(60秒)转移 MOV SI,AL JMP EXITMINUTE: MOV AL,0 MOV SI,AL LEA SI,DATA2+1 MOV AL,SI INC AL ;十进制调整 CMP AL, ;与60分比较 HOURE;大于、等于(60分)转移 MOV SI,AL JMP EXITHOURE: MOV AL,0 MOV SI,AL LEA SI,DATA2 MOV AL,SI INC AL ;十进制调整 CMP AL, ;与24小时比较 NEXT;大于、等于(24小时)转移 MOV SI,AL JMP EXITNEXT: MOV AL,0 MOV SI,ALEXIT: MOV AL,20H MOV DX,OPORT OUT DX,AL POP DI POP SI POP DX POP CX POP AX IRETSERVER ENDPCODE ENDS END BEGA/D、D/A参考程序.486DATASEGMENT AT 0 USE16 ORG4000HDATA1 DB 6 DUP(?) ;转换数据暂存区 ORG 4010HDATA2 DB 3 DUP(?) ;显示缓冲区DATAENDSCODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA,ES:DATA ORG2000HBEG:JMPSTARTTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FHDB 67H,77H,7CH,39H,5EH,79H,71H ;段码表ADPORTEQU3C0HADPORT7EQU3DCHDAPORTEQU3E0HZDXL EQU 20H ;中断向量(20H)OPORT EQU 3A0H ;8259偶地址JPORT EQU 3A8H ;8259奇地址PORT1 EQU 340HPORT2 EQU 360H START: ;初始化SETVECT: ;中断初始化LAST:MOV DX,ADPORT;启动ADC OUT DX,AL;- AGAIN: STI CAL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职业技能提升课程创新创业项目商业计划书
- 农药流通创新创业项目商业计划书
- 2023年幼儿园办园规范管理章程
- 高校财务预算管理流程与案例分析
- 呼吸系统常见疾病诊疗路径标准
- 小学数学常见错题解析技巧
- 浙江省2024年中考数学真题详解
- 中考数学基础知识综合训练题
- 区域销售工作总结(15篇)
- 企业绩效管理优化三大策略
- 土地管理培训课件
- 2025年山西中考历史试卷真题解读及答案讲解课件
- 2025至2030中国科技成果转换行业发展趋势分析与未来投资战略咨询研究报告
- 除颤仪使用讲课件
- 中国PCBA行业发展前景及发展策略与投资风险研究报告2025-2028版
- 教育科技公司团队管理制度
- 特殊人群服务管理制度
- 2025-2030中国磁悬浮离心鼓风机行业市场发展趋势与前景展望战略研究报告
- 高等教育自学考试《00018计算机应用基础》模拟试卷一
- 2025年公共卫生检验士考试试题及答案
- 危化品泄漏的应急处置流程
评论
0/150
提交评论