1、DATA START: MOV AX, DATA MOV DS, AX MOV DX, OFFSET MES MOV AH, 09H INT 21H MOV DI, OFFSET SD MOV AL, DS:DI AND AL, 0F0H SHR AL,4 CMP AL, 0AH JB C2 ADD AL, 07H C2: ADD AL, 30H MOV DL, AL MOV AH, 02H AND AL, 0FH JB C3 C3: MOV AX, 4C00H CODE ENDS END START实验二 数据传送实验三、实验内容将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符
2、串到屏幕上1. 试验程序 MSR DB HELLO,WORLD!$ LEN EQU $- MSR DDATA ENDS EXDA SEGMENT MSD DB LEN DUP(?) EXDA ENDS MYSTACK SEGMENT STACK DW 20 DUP(? MYSTACK ENDSDDATA, ES:EXDA MOV AX, DDATA MOV AX, EXDA MOV ES,AX MOV SI, OFFSET MSR MOV DI, OFFSET MSD MOV CX, LEN NEXT: MOV AL, SI MOV ES:DI, AL INC SI INC DI DEC CX
3、 JNZ NEXT PUSH ES POP DS MOV DX, OFFSET MSD MOV AH, 9 MOV BX, 0 MOV AL, MSRBXMSDBX, AL INC BX LOOP NEXT2.实验结果实验三 数码转换程序实验1 将ASCII码表示的十进制数转换为二进制数1. 流程图 DATAS SEGMENT NUMBER DB 00012 DATAS ENDSCODE,DS:DATAS MOV AX,DATAS MOV DS,AX MOV CX,4 MOV SI,OFFSET NUMBER MOV AL,SI SUB AL,30H MOV AH,00H MOV BL,10
4、L1: MUL BL ADD AL,SI+1 JNZ L1 MOV CX,8 MOV BL,AL SHL BL,1 JC ONE MOV DL,30H JMP EXIT ONE: MOV DL,31H EXIT: MOV AH,02H MOV AH,4CH3.实验结果2 将十进制数的ASCII码转换为BCD码本实验要求将键盘输入的一个五位十进制数54321的ASCII码存放入数据区中,转换为 BCD 码后,并将转换结果按位分别显示于屏幕上。若输入的不是十进制数的ASCII码,则输出“FF”。提示:一字节ASCII码取其低四位即变为BCD码1. 实验流程图2.实验程序DATAS SEGMENT
5、BUF DB 6 DB ? DB 6 DUP(? BUFE DB FF$ ASSUME DS:DATAS,CS:CODE MOV DX,OFFSET BUF MOV AH,10 MOV CH,5 MOV SI,DX L2: MOV BL,SI+2 CMP BL,39H JA L1 SUB BL,30H AND BL,0FH MOV DH,4 MOV CL,4 ;SHL AL,CL ROL BL,CL MOV AH,2 DEC DH DEC CH JNZ L2 JMP L3 MOV DX,OFFSET BUFE MOV AH,9 L3:3将十六进制数的ASCII码转换为十进制数 十六位二进制数的
6、值域为0-65535,最大可转换为五位十进制数。五位十进制数可表示为:ND=D4104+D3103+D2102+D110+D0 因此,将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D1-D4,并将它们转化为ASCII码。本实验要求将缓冲区中存放的000CH的ASCII码转换成十进制数,并将转结果显示在屏幕2. 实验程序 BUF DB 5 DB 5 DUP(? HEX DB 4 DUP(? DECI DB 5 DUP(0), S1 DB 16JINZHI : $ S2 DB 0AH,0DH,10JINZHI : MOV AX,DATA LEA DX,S1 LEA DX,BUF MO
7、V SI,2 MOV DI,0 CHECK: MOV AL,SIBUF CMP AL,40H JS NUM CMP AL,47H JS CAPITAL SUB AL,57H JMP STORE NUM: CAPITAL: SUB AL,37H STORE: MOV HEXDI,AL CMP DI,4 JNZ CHECK LEA DX,S2 MOV AX,WORD PTR HEX SHL AL,4 ADD AH,AL MOV CH,AH MOV AX,WORD PTR 2HEX ADD AL,AH MOV AH,CH MOV SI,5 MOV BX,10 MOV DX,0 CMP AX,0 JN
8、S CONV NEG AX PUSH AX PUSH DX MOV DL,2DH POP DX POP AX CONV: DEC SI DIV BX ADD DX,30H MOV DECISI,DL XOR DX,DX JNZ CONV LEA DX,DECI4BCD码转换为二进制码 本实验要求将四个二位十进制数的BCD码存放在某一内存单元中,转换出的二进制数码存入其后的内存单元中,转换结束,送屏幕显示。 1.实验流程图 DASC DB 3 DB 3 DUP(? S1 DB 0AH,0AH,0DH,10 JINZHI MA : BCD MA: S3 DB 0AH,0DH, 2 JINZHI MA : STO DB 8 DUP(? MOV SI,4 LOOPER: CALL WHOLE JNZ LOOPER WHOLE: LEA DX,DASC MOV AX,WORD PTR 2DASC SUB AX,3030H MOV DISTO,AL MOV CH,2 PRE1: MOV DX,30H ROL AL,1 JNC DISP1 ADD DX,01H DISP1: MOV AH,02 DEC CL JNZ PRE1 MOV DL,20H LEA DX,S3 MOV AL,DISTO MOV CL,10 MUL CL ADD AL,BL MO
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1