需补空程序精讲

上传人:人*** 文档编号:498754213 上传时间:2023-10-24 格式:DOC 页数:21 大小:331.50KB
返回 下载 相关 举报
需补空程序精讲_第1页
第1页 / 共21页
需补空程序精讲_第2页
第2页 / 共21页
需补空程序精讲_第3页
第3页 / 共21页
需补空程序精讲_第4页
第4页 / 共21页
需补空程序精讲_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《需补空程序精讲》由会员分享,可在线阅读,更多相关《需补空程序精讲(21页珍藏版)》请在金锄头文库上搜索。

1、加减法参考 程序DATADATASEGMENTENDSPARAPUBLICDATASTACKSEGMENTPARASTACKSTACKDB512 DUP (?)STACKENDSCODESEGMENTPARAPUBLICCODEASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART PROC FARPUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,0000MOV DX,0000MOV SI,2050HMOV DI,2150HMOV BP,2250HMOV WORD PTRSI,0205HMOV

2、WORD PTRDI,0408HMOV WORD PTRBP,0109HMOVAL, ;送被加数低 8 位;低 8 位相加;加法 ASCII 调整AL=AL=AL=,AH=,AH=,CF=,CF=MOVDL,AL; DL=MOVAL,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=MOVDH,AL;DH=R

3、ETSTART ENDP CODE ENDSEND START乘法参考 程序DATASEGMENT PARAPUBLICDATADATAENDSSTACKSEGMENT PARASTACKSTACKDB512 DUP (?)STACKENDSCODESEGMENT PARAPUBLICCODEASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTARTPROC FARPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXMOVES,AXMOVAX,0MOVBX,0MOVDI,223AHMOVSI,2230HMOVAL,04HMOVBL,06H;相

4、乘, 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,DIMOV BP,2240HMOV BP,ALMOV AL,DI+1;部分积相加;调整MOV BP+1,ALMOV AL,DI+2;部分积相加;调整MOV BP+2,ALMOV AL,0;部分积相加

5、;调整MOV BP+3,ALRET START ENDP CODE ENDS END START16 进制到 ACII 码参考程序name HEXASC data segment para public data hexdw 0A5E9hasc db 20 dup(0) data ends stack segment para stack stack db 512 dup (?) stack ends code segment para public code assume cs:code,ds:data, es:data,ss:stack start proc far push ds mov

6、 ax,0 push ax mov ax,data mov ds,ax mov es,axmov cx,0004hmov ax,lea bx,asc; AX=, 取十六进制数 0ebf9haa:push cx;给循环计数器赋转换代码长度;AX=, 十六进制数循环左移push axand ax,000fh;AX=;AX= AX=;AX=cmp al, ;判别是否为 “ 09” ascii;是 “ 09转” asciiadd al,07hascii: add al,30h;al = ;al = al= ;al =pop axpop cxloop aaretstart endpcode endsen

7、d startACII 码到 BCD 码参考程序NAME ASCBCDDATA SEGMENT PARA PUBLICDATAORG 0150HDATA1 DW 3538H,4237H,3946H,3639H,3642HORG 0160HDB 10 DUP(?)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 A

8、X,DATAMOV DS,AXMOV ES,AXMOV 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,BLMOV SI,AL; AL=;SI=,DI=;指针加 1;指针加 1RET;(CX) 不为 0,转 BB160H=START ENDPCODE ENDSEND STARTBCD码二进制参考程序NAME BCD2D

9、ATA 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 FARPUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AX;循环计数器赋转换代码长度XL:;BCD 码首址送 DI ;二进制首址送 SI

10、;BCD 码十位数值赋 ALMOV MUL INCMOVBL,0AHBLDIAH,00H;乘 10;BCD 码十位和个位相加,转换结束;转换结果存二进制起始地址INC DIINC DIINC SILOOP XLRETSTART ENDPCODE ENDSEND START查表处理参考程序;(CX)不为0转AADATA SEGMENTLIST DW 12,11H,22H,33H,44H,55H,66H,77H,88H,99H,111H,222H,333H DATA ENDSCODE SEGMENTPROC FARCS:CODE,DS:DATA,ES:DATADEL_UL ASSUME MAIN:

11、 PUSH DSSUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX, .CLD LEA DI, PUSH DI MOV CX,ES:DIADD DI,2 SCASW DELETE JMP SHORT EXIT DELETE: DEC_CNT NEXT_EL:MOV BX,ES:DIMOV ES:DI-2,BX ADD DI,2 LOOP NEXT_EL DEC_CNT: POP DI DEC WORD PTR ES: EXIT: RET DEL_UL ENDP CODE ENDS END MAIN;AX=; DI= ,DI=;CX=

12、; AX= ,DI=; 字符相同转移;CX 寄存器内容为 ;BX= , ; (DI-2)=取得数据区首地址,DI-2= 字符串比较0 则到数据区尾转结束DI-2, (DI )=DI ;(0H)=分支与循环 参考程序DATA SEGMENTORG 200HARRAY DW 56H,12H,-6790H,0,78H,0H,-1H,0H,3000H,90HDATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART:PUSH DSMOVAX,0PUSH AXMOV AX,DATA MOV DS,AXMOV CX,MOV BX,0MOV DI,BXMOV SI,BXAGAIN:MOV AX,BX LEQINC DIJMP SHORT NEXTLEQ: NEXTINC SINEXT:ADD BX,2 LOOP AGAIN MOV AX,10;CX= 循环计数器赋转换代码长度;BX= 字数组首址送 BX;与 0 比较;小于或等于 0 转 ;AX=,DI=;小于 0 转;AX= ,SI=;字数组长度减负数; AX= 字数组长度减负数再减零RETMAIN ENDPCODE ENDSEND START 排序参考程序DATA SEGMENTDW 10,1234H,2345H,3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号