07-082汇编语言程序设计实验指导书(5)

2019-05-17 18:25

《汇编语言程序设计》上机实验指导书

INC CL JMP AGAIN DONE: LEA SI,STRN MOV CH,0 MOV BL,0 CLD CYCLE: LODSB

CMP AL,61H JB NEXT CMP AL,7AH JA NEXT INC BL NEXT: LOOP CYCLE MOV AL,BL MOV AH,0 MOV CL,10

DIV CL XCHG AH,AL MOV DL,AH OR DL,30H PUSH AX MOV AH,2 INT 21H POP AX MOV DL,AL OR DL,30H MOV AH,2 INT 21H MOV AH,4CH INT 21H CODE ENDS

END START (2)删除字符串中重复字符的源程序清单:

;十位数在AL中,个位数在AH中 ;以下显示两位十进制数 - 21 -

《汇编语言程序设计》上机实验指导书

;DELD.ASM

DATA SEGMENT

STRN DB 80 DUP(?) LEN DB ? DATA ENDS CODE SEGMENT

ASSUME CS: CODE,DS: DATA,ES: DATA START: MOV AX, DATA MOV MOV LEA MOV AGAIN: MOV INT CMP JZ MOV INC INC JMP DONE: MOV MOV LEA REPEAT:

PUSH PUSH CMP JZ MOV CMP JE COMP: INC CMP

DS,AX ES,AX SI,STRN CL,0 AH,1 21H AL,0DH DONE [SI],AL SI CL AGAIN CH,0 LEN,CL SI,STRN SI CX CX,1

GOON AL,[SI] AL,0 NEXT1 SI AL,[SI]

最后一个字符,不找重复字符- 22 -

; 《汇编语言程序设计》上机实验指导书

JNE GOON ;为非重复字符

MOV BYTE PTR[SI],0 ;查出与该字符重复的所有字符,并用0替换 GOON: LOOP COMP NEXT1: POP CX POP SI INC SI

LOOP REPEAT ;对所有重复字符都进行查找 LEA SI,STRN ;删除重复字符 MOV MOV MOV CYCLE: MOV CMP JZ MOV INC NEXT: INC LOOP MOV MOV SUB CYCLE1: MOV INC LOOP MOV MOV INT MOV MOV INT LEA CYCLE2: MOV INC

DI,SI CL,LEN CH,0 AL,[SI]

AL,0 ;是重复字符吗? NEXT ;不是,查找下一个字符 [DI],AL DI SI CYCLE CL,LEN CH,0 CX,DI

BYTE PTR[DI],0 ;剩余字符前移,原字符位置清0 DI CYCLE1 DL,0DH AH,2 21H DL,0AH AH,2 21H SI ,STRN DL,[SI] SI

- 23 -

《汇编语言程序设计》上机实验指导书

CMP DL,0 JZ DONE1 MOV AH,2 INT 21H JMP CYCLE2 DONE1: MOV AH,4CH INT 21H CODE ENDS

END START

实验六BIOS和DOS中断调用应用程序设计

1. 实验目的

(1)了解 DOS、BIOS调用的基本功能、调用参数、返回参数。以及数据定义 掌握中断通信程序的设计方法。

(2)掌握如何利用扫描码进行功能控制。 2. 试验内容

编写一个可以进行光标左右移动和插入字符的简单字处理程序 3.试验准备 (1) 复习相关内容

(2)了解键盘的扫描码、ASCII码及其显示字符(如果存在可显示字符形式)之间的对应关系。 4.试验步骤

(1) 建立源文件,汇编、连接产生可执行文件。

(2) 运行程序,使得可以输入字符和光标左右移动及字符的插入。 5. 试验报告要求

(1) 由参考程序,画出简单字处理程序框图。 (2) 讨论如何实现光标的上下移动和字符的删除。 6. 参考程序清单

;字处理演示参考程序 ,插入、左右移动

DSEG SEGMENT

KBD_BUF DB 96 DUP(' ') ;input buffer CNTL DB 16 DUP(0) ;char number of row BUFPT DW 0 ;buffer head point BUFTL DW 0 ;buffer tail point

- 24 -

《汇编语言程序设计》上机实验指导书

COLPT DB 0 ROWPT DB 0

ROWMX DW 0 ;maxum row number DSEG ENDS

CURS MACRO ROW,COL MOV DH,ROW MOV DL,COL MOV BH,0 MOV AH,2 INT 10H ENDM CSEG SEGMENT MAIN PROC FAR

ASSUME CS:CSEG,DS:DSEG,ES:DSEG START:

MOV AX,DSEG MOV DS,AX MOV ES,AX MOV BUFTL,0 MOV COLPT,0 MOV ROWPT,0 MOV BUFPT,0 MOV ROWMX,0 MOV CX,LENGTH CNTL XOR AL,AL LEA DI,CNTL CLD

REP STOSB

MOV AH,6 ;clear screen MOV AL,0 MOV CX,0

MOV DH,24 ;在文本方式下,每个屏幕是由25行,80列组成,屏幕左上角是其初始位置0,0

- 25 -


07-082汇编语言程序设计实验指导书(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:正宁四中6月份电动自行车消防安全综合治理工作小结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: