汇编程序注释版_第1页
汇编程序注释版_第2页
汇编程序注释版_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、1.请任意输入一个字符串,将该串倒序后在屏幕上 显示。DATA SEGMENTBUF DB OFFHDB?DB OFFH DUP (?)ANS DB ODH, OAH, OFDH DUP (?);换行,回车DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART:MOV AX, DATAMOV DS, AX;固定格式LEA DX, BUF;这一步让等一会儿读的字符串的地址存储在DX中MOV AH, OAHINT 21H;dos调用,读字符串LEA SI, BUF2;送字符串首地址到源变址寄存器SIMOV AL, BUF1;送总字符串数到ALXOR AH

2、, AH;AH 清零,相当于 MOV AH, 0ADD SI, AXDEC SI;SI内的内容变为字符串末尾地址LEA DI, ANS 21;送ANS的首地址到U标变址寄存器DIXOR CH, CH;清零MOV CL, BUF1;将字符串个数送至计数寄存器作为循环次数,以备loop使用,AGAIN:MOV AL, SIMOV DI, AL;将源变址寄存器所指内容送至U标寄存器所指位置(第一次就是末尾到开头)DEC SI;SI的地址指向字符串倒数的前一位INC DI;DI指向下一位LOOP AGAIN;循环上述内容,次数为CX内数,即字符串数MOV BYTE PTRDI,$LEA DX, ANS

3、;取 ANS 的 EA 到 DXMOV AH, 09H;调用DOS功能输出ANS内容INT 21HMOV AH, 4CHINT 21H;固定CODE ENDSENDSTART8.现有一组字符串为data, name, time, file, code, path, user, exit, quit, text,请编写程序从键盘输入 4 个字符的字符串,若存在将其修改为disk,并在显示器上显示。DATA SEGMENTBUF DB 05HDB?DB 05H DUP (?)STROUT DB ODH,OAH, data*DB ODH, OAH, name,DB ODH, OAH, time,DB

4、 ODH,OAH,fileDB ODH, OAH, code,DB ODH, OAH, path*DB ODH, OAH, userDB ODH, OAH, exit,DB ODH,OAH, quit,DB ODH, OAH, text, $REPLACE DB disk*DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, ES:DATASTART:MOV AX, DATAMOV DS, AXMOV ES,AX ;源操作数隐含的段寄存器是DS, LI标操作数隐含的段寄存器ESLEA DX, BUF ;取BUF的EA到DX,这样输入的字符存储到DX中MOV

5、 AH, OAHINT 21H ; OAH功能读字符串LEA BX, STROUT2;取预置字符串的首地址到BX(地址都是两个字节,一个字,两个存储单元)LEA SI, BUF2;取输入字符串首地址到源变址寄存器SILEA DI, STROUT 2;取预置字符串首地址到LI的变址寄存器DIMOV CX, 10 ;设置循环次数十次AGAIN:CLD ;置DF零(对应STD), DF为串操作方向标志,为1时,每次字符串操作后 SI,DI递减,反之递增PUSH CX ;CX 进栈MOV CX,4 ;以上是进行字符串操作的准备,进行字符串操作要把字符串长度(4) 输入CX,也要设置SI,DI,DFRE

6、PZ CMPSB ;字节形式比较字符串(SI,DI),REPZ为重复前缀,相同时ZF=1,继 续执行,不同时ZF二0,停止执行POP CX ;CX 出栈JNZ NEXT ;JZ/JYZ功能:ZF二0时(比较结果为不同)跳转至标号处执行;LEA SI, REPLACE ;取替换字符$ (disk)地址(这一步的前提是上一步的JNZ没 有执行,即ZF二1,比较结果为相同)MOV DI,BX ;取此时字符串的首地址地址到DIMOV DX, 4 ;DX二4SUBAGAIN:MOV AL, SIMOV DI, AL;这两步是取disk的首地址移动到此时DI所指的存储器单位(此 时的BX)INC SIINC DI;-位一位替换DEC DXJNZ SUBAGAIN ;DX为零时结束此循环,替换完成JMP EXIT ;准备打印NEXT:LEA SI,BUF2;取输入字符串的第二个字符的地址ADD BX,6 ;加上存储的回车换行和下四个字符占用的地址MOV DI, BX;把第二个字符串的首地址送到LI的变址寄存器DILOOP AGAIN ;再比较,如果还不同就继

温馨提示

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

评论

0/150

提交评论