(完整word版)汇编经典代码_第1页
(完整word版)汇编经典代码_第2页
免费预览已结束,剩余14页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SHUCHU:MOV AL,30H;CF 为 0 设置结果最高位为0INCDI; 地址加 11.顺序程序设计ASCH码形式各自顺序存放在以DATA1 和 DATA2 为DATASEGMENTDATA1 DB34H,35H,39H,38H,36H, ;被加数DATA2 DB37H,34H,33H,36H,32H, ; 加数DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATASTART: MOV AX,DATA处。将两个多位十进制数相加,要求被加数、加数均以首的五个内存单元中(低位在前) ,结果送回 DATA1MOV DS,AXLEASI,DATA

2、1; 有效地址送 SI, 为调用显示子程序做准备CALLDISPLAY; 调用显示子程序CALLCRLF; 调用回车换行子程序LEASI,DATA2; 有效地址送 SI ,为调用显示子程序做准备,同时为加法运算做准备CALLDISPLAY; 调用显示子程序CALLCRLF; 调用回车换行子程序LEADI,DATA1; 有效抵制送 DI ,为加法运算做准备MOV AX,0MOV BX,0MOV CL,05H; 记录循环次数; 将加数送往 ALADDS: MOV AL,SISUB AL,30HADD AL,BLMOV BL,DISUB BL,30HADD AL,BLADD AL,30HCMP AL

3、,3AHJA; 加上进位; 将被加数送往 BL; 加法运算SUBA; 结果 =10,跳到 SUBASUBA:NSUBAAL,0AHNSUBA:JBSUBMOV BL,01HJMP CONTINUEMOV BL,00H; 减去 10 的值,并置BL 为 1CONTINUE:MOV DI,AL; 置 BL 为 0; 将相加的结果从 AL 送往DI 的地址,即 DATA1 的地址SHUCHU2: MOV AL,31HJMP CONTINUE2;CF 为 1 设置结果最高位为INCSI; 地址加 1LOOPADDS; 循环JCSHUCHUJNCSHUCHU2RETDISPLAY ENDPCODE EN

4、DSEND STARTCONTINUE2:MOV DI,ALLEA SI,DATA1CALL DISPLAY;将 DATA1 的有效地址送往 SI,为调用;调用 DISPLAY 子程序DISPLAY 子程序做准备MOV AX,4C00H; 返回 DOSINT 21HMAINENDPCRLFPROC NEARMOV DL,0DHMOV AH,02HINT 21H; 回车、换行 于功能MOV DL,0AHMOV AH,02HINT 21HRETCRLFENDPDISPLAY PROC NEARMOV BX,0006HDSL:MOV DL,SI+BX-1MOV AH,02INT21HDEC BXJN

5、ZDSL; 显示于功能; 记录循环次数; 将有效地址内的内容送往 DL;2 号功能输出;BX 自动减 12分支程序设计实验接收键盘输入字符,将其中的小写字母转换为大写字母并显示。CODESEGMENTMAINPROC FARASSUME CS:CODESTART:MOV AH,00HINT16HCMP AL,0DHJZOVERCALLJUDGEMOV DL,ALMOV AH,02HINT21HJMPSTARTOVER:MOV AH,4CHINT21HMAINENDPJUDGEPROCNEARCMP AL,aJBSTOPCMP AL,zJASTOPSUBAL,20HSTOP:RETJUDGEEN

6、DPCODEENDSEND START3循环程序设计实验统计一个有10人的班中, 男、 女生的人数各为多少。 将男生人数存入变量MAN、 女生人数存入变量WOMAN中。DATA SEGMENTMANDB0,0WOMANDB0,0STRINGDB iuput people number! (man is 0, woman is 1 ) $SMDBman is :$SWDBwoman is :$DATA ENDSCODEMAINSTART:MOV AX,DATAMOV DS,AXMOV AH,09HMOV DX,OFFSET STRINGINT 21HCALL CRLF MOV CX,10 AA:

7、MOV AH,01HINT21HCMP AL,30H JNZADDWINCMANBB: LOOP AAJMP DISPLYADDW: INC WOMANJMP BBDISPLY: CALL CRLFMOV AH,09H MOVDX,OFFSET SMINT 21HMOV AH,02H;将 STRING 的内容输出; 男女生总人数; 从键盘输入, 0 为男, 1 为女; 与 0 比较; 不为 0, 女生人数加 1; 否则男生人数加 1; 打印; 字符串输出; 男生人数统计结果输出SEGMENTPROC FARASSUME CS:CODE,DS:DATACALL CRLF; 调用回车换行子程序MO

8、V DL,MAN ADDDL,30H CALL JUDGECALL CRLF MOVAH,09H MOVDX,OFFSET SW INT21H MOV AH,02HMOV DL,WOMAN ADDDL,30H CALL JUDGEMOV AH,4CH INT 21HMAIN ENDP; 字符串输出; 女生人数统计结果输出; 返回 DOSJUDGE PROC NEAR; 判断结果是否为 39HCMP DL,3AHJZSHICC:INT21HRETSHI:MOV DL,31HINT21HMOV DL,30HJMP CCJUDGE ENDPCRLF PROC NEARMOV AH,02HMOV DL

9、,0DHINT21HMOV DL,0AHINT21HRETCRLF ENDPCODE ENDSEND START; 回车换行子程序 ; 回车; 换行4子程序设计实验1 键盘输入字符,依次显示在行的最左端(即每接受一个字符,显示在屏幕上并回车换行。)2 对频繁使用的回车换行编写为子程序,在主程序中调用完成分行显示。CODESEGMENTMAINPROC FARASSUME CS:CODESTART: MOV CX,10; 设置循环次数NEXT:MOV AH,01H; 从键盘输入一个字符INT 21HCALL CRLF; 调用回车换行子程序XCHG AX,BX;AX 为本次输入的值,BX 为之前的

10、结果END START5码制转换程序实验将 ASCn码数据转换成二进制数据。要求从键盘上输入十进制整数(假定范围 二进制格式存储。PLEASE INPUT A NUMBER(032767):$ THE ASCII IS:$CMP AL,39HLOOPNEXTMOV AH,4CHINT21HENDPPROCNEARMOV AH,02HMOV DL,0DHINT21HMOV DL,0AHINT21HRETENDPENDSMAINCRLFCRLFCODE; 返回 DOS; 回车换行子程序; 回车; 换行DATASEGMENT032767),然后转换成STRING1 DBSTRING2DBDATACO

11、DEMAINSTART:INPUT:STRING3 DBTHE BINARY IS:$ENDSSEGMENTASSUME CS:CODE,DS:DATAPROC FARMOV AX,DATAMOV DS,AXMOV DX,OFFSET STRING1MOV AH,09HINT 21HCALL CRLFMOV AH,01HINT 21H; 输入数据CMP AL,0DHJZNEXTSUBJLAL,30HINPUTXCHG AX,BXMOV DX,10DMUL DXMUL 故准备XCHG AX,BX;AX 为本次输入的值,BX 为之前的结果JG INPUTCBW;AX 为输入值, BX 保存结果,两

12、个对调为 ; 将上一次结果乘 10ADD BX,AXJMP INPUTNEXT: CALL CRLFMOV CL,4DMOV CH,4DMOV DX,OFFSET STRING2MOV AH,09HINT 21HCALL CRLFLOOP0: ROL BX,CL; 循环左移,将最高为存到MOV AL,BLAND AL,0FH;ADD AL,30HCMP AL,3AHJL OUTPUTADD AL,07HOUTPUT:MOV AH,02HMOV DL,ALINT 21HDEC CHJNZ LOOP0CALL CRLFMOV DX,OFFSET STRING3MOV AH,09HINT 21HCA

13、LL CRLFMOV CH,16DMOV CL,1DLOOP1: ROL BX,CLMOV AL,BLAND AL,01HADD AL,30HMOV AH,02HMOV DL,ALINT 21HDEC CHJNZ LOOP1MOV AH,4CHINT 21HMAIN ENDPOUTS PROC NEAR; 字符串输出子程序MOV AH,09HINT 21HRETOUTS ENDPBL 的低四位cRLFPROc NEAR; 回车换行子程序MOV AH,02H; 回车INT 21HMOV DL,0AH; 换行INT 21HRETcRLFENDPcODEENDsENDsTART6两个数相乘的实验实现

14、十进制数的乘法,被乘数和乘数均以ASCn码形式放在内存中,乘积在屏幕上显示出来。DATAsEGMENTMBcsDW0Mcs DW 0REsULTDW 0sTRING1 DBTHE BEIcHENGsHU Is:$sTRING2 DBTHE cHENGsHU Is:$sTRING3 DBTHE REsULT Is:$sTRINGDBTHE AscII Is:$DATAENDscODEMAINsEGMENTPROc FARAssUME cs:cODE,Ds:DATAsTART:MOV AX,DATAMOV Ds,AXMOV DX,OFFsET sTRING1cALL OUTscALL INPUT;

15、 输入被乘数MOV DX,OFFsET sTRINGcALL OUTscALL cRLFcALL AscII; 被乘数转化为 AscII 码输出cALL cRLFMOV MBCS,BX;被乘数保存到 MBCSMOV DX,OFFsET sTRING2CALLOUTSCALL INPUT; 输入乘数MOV DX,OFFSET STRINGCALLOUTSCALLCRLFCALL ASCII; 乘数转化为 ASCII 码输出CALLCRLFMOV MCS,BX;乘数保存到 MCS 中MOV DX,OFFSET STRING3CALL OUTSCALLCRLFMOV AX,MBCSMUL BXMOV

16、 RESULT,AXMOV BX,DXCALLASCIIMOV BX,RESULTCALLASCII;被乘数;乘数与被乘数相乘,结果咼位DX 低位 AX;将 AX 中的内容保存到 RESUL 冲;将高位 DX 的值送给 BX 输出;将低位 AX 的值送给 BX 输出MOV AH,4CHINT 21HMAIN ENDPINPUTPROC NEARCALLCRLFMOV BX,0AA:MOV AH,01HINT 21HCMP AL,0DHJZSTOPSUBAL,30HJLAACMP AL,39HJGAACBWXCHG AX,BXMOV DX,10DMUL DXXCHG AX,BXADD BX,AX

17、JMPAASTOP:CALLCRLFRETINPUTENDP; 输入十进制数,将其转化为 ASCII 码存到 BX 中;AX 为输入值,BX 保存结果,两个对调为MUL 故准备; 将上一次结果乘 10;AX 为本次输入的值,BX 为之前的结果ASCII PROC NEARMOV CL,4DMOV CH,4DCC:ROL BX,CL;循环左移,将最高为存到BL 的低四位MOV AL,BLAND AL,0FH;ADD AL,30HCMP AL,3AHJLBBADD AL,07HBB: MOV AH,02H MOV DL,AL INT 21H DEC CH JNZ CC RETASCII ENDPO

18、UTS PROC NEAR MOV AH,09H INT 21H RETOUTS ENDPCRLF PROC NEARMOV AH,02HMOV DL,0DHINT21HMOV DL,0AHINT21HRETCRLF ENDPCODE ENDSEND START7从键盘输入数据并显示的程序编写程序将键盘接收到的四位十六进制数据转换为等值的二进制数,再显示在终端上。DATA SEGMENTSTRING1 DB Please enter a four-digit hexadecimal number:$DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATAMAINPRO

19、C FARSTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET STRING1MOV AH,09HINT 21HCALL CRLFMOV CL,4DINPUT:MOV AH,01HINT21HCMP AL,0JBINPUT; 回车换行子程序; 回车; 换行CMP AL,9JA ZIMUSUB AL,30HJMP NEXT ZIMU:CMP AL,AJBINPUTCMP AL,ZJAINPUTSUB AL,37HNEXT: CBWXCHG AX,BXMOV DX,16DMUL DXXCHG AX,BXADD BX,AXLOOP INPUTCALL CRLFMOV CL,1DMOV CH,16DTO: ROL BX,1MOV DL,BLAND DL,01HADD DL,30HMOV AH,02HINT 21H DEC CHJNZ TOMOV AH,4CHINT 21H MAINENDPCRLF PROC NEARMOV AH,02HMOV DL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论