将以S1为起始地址的30个字符依次传送到同数据段的以S.ppt_第1页
将以S1为起始地址的30个字符依次传送到同数据段的以S.ppt_第2页
将以S1为起始地址的30个字符依次传送到同数据段的以S.ppt_第3页
将以S1为起始地址的30个字符依次传送到同数据段的以S.ppt_第4页
将以S1为起始地址的30个字符依次传送到同数据段的以S.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

例1、将以S1为起始地址的30个字符依次传送到同数据段的以S2为起始地址的一片字节存储单元里。,方法一、采用寄存器间接寻址方法。,DATA SEGMENT S1 DB ABCDVWX DB YZ0123 S2 DB 30 DUP(?) DATA ENDS,CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA ;数据段寄存器有装填 MOV DS ,AX MOV SI,OFFSET S1 ;S1的位移量SI MOV DI,OFFSET S2 ;S2的位移量DI MOV CX,30 ;循环次数30CX NEXT: MOV AL,SI ;(SI)AL MOV DI,AL ;(AL)DI INC SI ;(SI)+1SI INC DI ;(DI)+1DI LOOP NEXT ;(CX)-1CX,(CX)0转 MOV AH,4CH ;程序结束转DOS INT 21H CODE ENDS END START,方法二、采用变址寻址方式,DATA SEGMENT S1 DB A,B,C,W DB X,Y,Z,0,1,2,3 S2 DB 30 DUP(?) DATA ENDS,CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA ;数据段寄存器有装填 MOV DS,AX MOV SI,0H MOV CX,30 ;循环次数30CX NEXT: MOV AL,S1SI ;(SI+S1)AL MOV S2DI,AL ;(AL)DI+S2 INC SI ;(SI)+1SI LOOP NEXT ;(CX)-1CX,(CX)0转 MOV AH,4CH ;程序结束转DOS INT 21H CODE ENDS END START,方法三、采用基址+变址寻址方式,DATA SEGMENT S1 DW BA,DC,FE,VU DW XW,ZY,10,32 S2 DW 15 DUP(?) DATA ENDS,CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA ;数据段寄存器有装填 MOV DS,AX MOV BX,OFFSET S1 MOV SI,0H MOV CX,15 ;循环次数15CX NEXT: MOV AX,BX+SI ;(BX+SI)AX MOV BX+SI+30,AX ;(AX)BX+SI+30 INC SI ;(SI)+1SI INC SI ;(SI)+1SI LOOP NEXT ;(CX)-1CX,(CX)0转 MOV AH,4CH ;程序结束转DOS INT 21H CODE ENDS END START,例2、从键盘输入20个字符,然后以与键入字符的先后相同的顺序显示出来。,DSEG SEGMENT DATA DB 20 DUP(?) DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG GO:MOV AX,DSEG MOV DS,AX MOV CX,20 MOV SI,OFFSET DATA L01:MOV AH,01H INT 21H MOV SI,AL INC SI LOOP L01 MOV CX,20 MOV SI,OFFSET DATA L02:MOV DL,SI MOV AH,02H INT 21H INC SI LOOP L02 MOV AH,4CH INT 21H CSEG ENDS END GO,例3、从键盘输入50个字符,然后以与键入字符的先后相反的顺序显示出来。,STACK SEGMENT STACK DW 50 DUP(?) TOP LABEL WORD STACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK START:MOV AX,STACK MOV SS,AX MOV SP,OFFSET TOP MOV CX,50 L01: MOV AH,01H INT 21H PUSH AX LOOP L01 MOV DL,0AH MOV AH,02H INT 21H MOV DL,0DH INT 21H MOV CX,50 L02: POP DX MOV AH,02H INT 21H LOOP L02 MOV AH,4CH INT 21H CODE ENDS END START,例4、利用XLAT指令将二进制表示的十六进制数字转换成ASCII码再显示出来。,TABLE SEGMENT TAB-DA DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H DB 41H,42H,43H,44H,45H,46H TAB-HEX DB 0,1,2,3,4,5,6,7,8,9 DB 0AH,0BH,0CH,0DH,0EH,0FH TABLE ENDS COSEG SEGMENT ASSUME CS:COSEG,DS:TABLE START:MOV AX,TABLE MOV DS,AX MOV CX,10H MOV BX,OFFSET TAB-DA MOV SI,OFFSET TAB-HEX NEXT: MOV AL,SI XLAT TAB-DA;换码(BX+(AL)AL MOV DL,AL MOV AH,02H INT 21H MOV DL,00H;空白ASCII码DL MOV AH,02H INT 21H ;显示空白 INC SI LOOP NEXT MOV AH,4CH INT 21H COSEG ENDS END START,例5、试编写程序,要求将数据段中一个未经排序的字数组UNSORTED中找出最大数和最小数存放在 和 单元中,已知该数组有个元素。,DATA SEGMENT UNSORTED DW 50 DUP(?) MAX DW ? MIN DW ? DATA ENDS S SEGMENT STACK DB 100 DUP(0) S ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:S MAIN PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DAT,MOV DS,AX MOV BX,OFFSET UNSORTED MOV CX,50;输入50个数 MOV AX,BX;第一个数AX MOV DX,AX;AXDX ADD BX,2 DEC CX AGAIN: CMP AX,BX JAE A MOV AX,BX A:CMP DX,BX JLE B MOV DX,BX B:ADD BX,2 LOOP AGAIN MOV MAX,AX MOV MIN,DX RET MAIN ENDP CODE ENDS END MAIN,例6、在以为首址的字存贮区中存放看一组带符号数,请将其中的正、负数分别送至和 两存贮区中,试用常操作指令完成。,DATA SEGMENT BLOCK DW 100 DUP(?) PLUS DW 100 DUP(0) MINUS DW 100 DUP(0) DATA ENDS S SEGMENT STACK DW 50 DUP(0) S ENDS CODE SEGMENT ASSUME DS:DATA,SS:S,CS:CODE,ES:DATA MAIN PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA,MOV DS,AX MOV ES,AX LEA SI,BLOCK;输入100个有符号数到BLOCK区中 LEA DI,PLUS LEA BX,MINUS MOV CX,100 AGAIN:LODSW CMP AX,0 JGE A XCHG DI,BX STOSW XCHG BX,DI JMP B A: STOSW B: LOOP AGAIN RET MAIN ENDP CODE ENDS END MAIN,例7、编写一个加密-数字序列的程序,设立,对应的密码表为,键盘输入任一个数(十二制数)要求程序能立即输出与之对应的密码,如键盘输入显示输出。,DATA SEGMENT TABLE DB 9082746315 INPUT DB 80 DB ? DB 80 DUP(?) OUTPUT DB 80 DUP(?) DATA ENDS S SEGMENT STACK DW 50 DUP(0) S ENDS CODE SEGMENT ASSUME DS:DATA,ES:DATA,SS:S,CS:CODE MAIN PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA,MOV DS,AX MOV ES,AX LEA DX,INPUT MOV AH,0AH INT 21H;输入一串数字 MOV SI,OFFSET (INPUT+2) MOV DI,OFFSET OUTPUT MOV BX,OFFSET TABLE AGAIN:LODSB CMP AL,30H JB A CMP AL,39H JA A AND AL,0FH XLAT STOSB JMP AGAIN A: MOV DI,$ LEA DX,OUTPUT MOV AH,09H INT 21H RET MAIN ENDP CODE ENDS END MAIN,例8、编写程序将 中的个字节数据的位置数倒过来( 即第一个字节和它字节内容交换,第二个字节与第一个交换)。,DATA SEGMENT LELEMS DB 100 DUP(?) DATA ENDS S SEGMENT STACK DW 50 DUP(0) S ENDS CODE SEGMENT ASSUME DS:DATA, SS:S,CS:CODE MAIN PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX,LEA BX,LELEMS MOV SI,OFFSET (LELEMS+100-1) MOV CX,100/2 AGAIN:MOV AL,BX XCHG AL,SI MOV BX,AL INC BX DEC SI LOOP AGAIN RET MAIN ENDP CODE ENDS END MAIN,例9、一个数组,其中的数据排列规律的头三项是,从第四项开始各项均为前三项之和,试编一个程序,将项值小于等于以前的各项填入数组中。,DATA SEGMENT DATAX DW 100 DUP(0) DATA ENDS S SEGMENT STACK DW 50 DUP(0) S ENDS CODE SEGMENT ASSUME DS:DATA, SS:S,CS:CODE MAIN PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA,MOV DS,AX MOV BX,OFFSET DATAX MOV WORD PTRBX+4,1 LEA BX,DATAX+6 AGAIN:MOV AX,BX-2 ADD AX,BX-4 ADD AX,BX-6 CMP AX,2000 JA A MOV BX,AX ADD BX,2 JMP AGAIN A: RET MAIN ENDP CODE ENDS END MAIN,例10、试编写一程序求级 12+22+32+的前项和则大于是的项数.,DATA SEGMENT NUM DW ? DATA ENDS S SEGMENT STACK DW 50 DUP(0) S ENDS CODE SEGMENT ASSUME DS:DATA,SS:S,CS:CODE MAIN PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX,MOV AX,12;前N项和 MOV CX,1;N次数 MOV BX,12;第N项 AGAIN:ADD BX,10;求下一项 ADD AX,BX CMP AX,1000 JA A INC CX JMP AGAIN A: MOV NUM,CX;存结果N RET MAIN ENDP CODE ENDS END MAIN,例11、设变量1存放个字节,将位于,位移量处的字节与,位移量处的字节相交换。,DATA SEGMENT S1 DB 10 DUP(?) DATA ENDS S SEGMENT STACK DW 50 DUP(0) S ENDS CODE SEGMENT ASSUME DS:DATA,SS:S,CS:CODE MAIN PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX LEA BX,S1 MOV CX,10/2 AGAIN:MOV AL,BX XCHG AL,BX+1 MOV BX,AL INC BX INC BX LOOP AGAIN RET MAIN ENDP CODE ENDS END MAIN,例12、试编制一个程序把中的1进制数转换为码,并将对应的码依次存放在数组的四个字节中。,DATA SEGMENT MEM DB 4 DUP(?) NUM DW 4728H DATA ENDS S SEGMENT STACK DW 50 DUP(0) S ENDS CODE SEGMENT ASSUME DS:DATA,SS:S,CS:CODE MAIN PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX LEA SI,MEM MOV AX,NUM,MOV BL,AL AND AL,0FH OR AL,30H CMP AL,39H JBE A ADD AL,7 A: MOV SI,AL XCHG AL,BL MOV CL,4 SHR AL,CL AND AL,0FH OR AL,30H CMP AL,3AH JB B ADD AL,7 B: INC SI MOV SI,AL MOV BL,AH AND AH,0FH,OR AH,

温馨提示

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

评论

0/150

提交评论