1、 MOV CL,04H SHR DX,CL POP CX LOOP BBB MOV CX,0004H MOV SI, OFFSET BUF3 MOV DX,SI ADD SI,03HCCC: JB DDDDDD: MOV SI,AL DEC SI PUSH CX LOOP CCC MOV DX,OFFSET BUF2 MOV AH,09H INT 21H MOV DX,OFFSET BUF3 MOV AH,4CHCODE ENDSEND BEGIN运行结果:2)有两个两字节无符号数分别放在存储单元A、B起始的缓冲器中,求其和,结果放在A起始的缓冲区并在屏幕上显示。相加若有进位不存入存储单元。A
2、 DB 34H,18H,2 DUP(0),B DB 56H,83H DATA ENDS CODE SEGMENT START: MOV AL,A MOV BL,B ADD AL,BL MOV AH,A+1 MOV BH,B+1 ADC AH,BH MOV A,AL MOV A+1, AH MOV CX, 0004H MOV DI,OFFSET A MOV DX, DI QQQ: MOV CL,04 LOOP NEXTMOV DX,OFFSET AMOV AH,09HINT 21HMOV AH,4CH CODE ENDSEND START3) 在BUF和BUF+1、BUF+2单元分别放有一个无符
3、号字节型数,编程序将其中最大数存入MAX单元,并在屏幕上显示。STACK SEGMENT STACK DB 1024 DUP(0)STACK ENDSBUF DB 70H,35H,1FHMAX DB 2 DUP(?),DATA,SS:STACK MOV AL,BUF CMP AL,BUF+1 JNB LP1 MOV AL,BUF+1 LP1:CMP AL,BUF+2 JAE LP2 MOV AL,BUF+2 LP2:MOV CX,02H MOV DI,OFFSET MAX MOV DL,AL INC DI LP3:AND AL,0FH JB LP4 LP4: SHR DL,CL MOV AL,
4、DL LOOP LP3 MOV DX,OFFSET MAX END BEGIN4) 要求同上,只是比较的数为有符号数。BUF DB 98H,75H,32H JG LP1 XCHG AL,BUF+1LP1: CMP AL,BUF+2 JG LP2XCHG AL,BUF+2LP2: MOV MAX,ALMOV DI,OFFSET MAXMOV DL,DIINC DILP3:CMP AL,0AHJB LP4ADD AL,07HLP4: ADD AL,30HMOV DI,ALDEC DIMOV CL,04SHR DX,CLPOP CXLOOP LP3MOV DX,OFFSET MAX6) 从键盘上接收
5、一位十进制数X,计算Y值,并以十六进制形式显示出来,Y按下列公式计算。X DB ?Y DB ?DW 20H DUP(?)ASSUME CS:START:MOV DS,AXl0:MOV DL,0AHMOV AH,2MOV DL,0DHMOV AH,1SUB AL,30HMOV X,ALCMP X,3JZ l1CMP X,4JZ l2CMP X,5JZ l3CMP X,6JZ l4CMP X,0JZ l6JMP l0l1:MOV AL,XMUL XADD AL,XMOV Y,ALJMP l5l2:SUB AL,Xl3:l4:MOV BL,2DIV BLl5:MOV DL,YMOV CL,4SHR
6、DL,CLCMP DL,9JLE l7ADD DL,7l7:ADD DL,30HAND DL,0FHJLE l8l8:l6:7) 从键盘上接收两个一位十六进制数X和Y,然后再输入一个A-D之间的一个字符,按下列要求计算。DATAS SEGMENT x db ? y db ? z db ? s db ?DATAS ENDSCODES SEGMENTCODES,DS:DATASstart:mov ax,datas mov ds,ax l0:mov ah,1 int 21h sub al,30h mov x,al mov dl,0ah mov ah,2 mov dl,0dh mov ah,1 mov
7、 y,al mov z,al cmp z,a jz l1b jz l2c jz l3d jz l4q jz l7 l1:mov al,x add al,y mov s,al jmp l6 l2: sub al,y cmp s,0 js l5 jns l6 l3: mul y l4: mov bl,y mov ah,0 div bl l5:neg s l6:mov dl,0ah mov ah,2 int 21h mov dl,0dh mov dl,s l9:add dl,30h jmp l0 l7:mov ah,4ch CODES ENDSEND start实验二 循环与子程序程序设计 一、实验
8、目的 1) 加深对循环结构的理解。2)掌握循环程序的设计方法。3)学习子程序的定义和调用方法。4)掌握子程序、子程序的嵌套、递归子程序的结构。5) 掌握子程序设计、编制及调试。 6) 熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。 1) 编制程序计算S=1+23+34+45+N(N+1)+直到N(N+1)大于200为止,并将结果由屏幕上显示出来。BUF DBS=1+2*3+3*4+4*5+N(N+1)+=,RES DW 4 DUP(0), MOV AX,DATA MOV DS, AX MOV DX, OFFSET BUF MOV AH, 09H MOV DX, 1 MOV BL, 2
9、NEXT: MOV AL, BL INC BL MUL BL ADD DX, AX CMP AX, 200 JNA NEXT MOV DI, OFFSET RES ADD DI, 03HNEXT1:MOV AX, DX AND AX, 000FH CMP AL, 0AH JB NEXT2 ADD AL, 07NEXT2:ADD AL, 30H LOOP NEXT1 MOV DX, OFFSET RES MOV AH, 4CH2)将从3000H内存单元开始的100个字节存储单元全部清0。ORG 3000HX DB 100 DUP(?DB 10 DUP(?LEA SI,XMOV CX,100LP:
10、AND BYTE PTRSI,00HINC SILOOP LP3)编制在屏幕上显示九九乘法表的程序。 X DB 1 Y DB 1 Z DB 1 S DB ? YS DB ? TEN DB 10 MOV DS,AX ;装入段寄存器 L1: MUL Y MOV Z,AL CALL SC INC Y MOV BL,X CMP Y,BL JA L2 JMP L1 ;内循环 L2:INC X CMP X,9H JA L3 MOV Y,1 MOV DL,0AH MOV AH,02H INT 21H MOV DL,0DH INT 21H ;输出回车换行外循环 L3: SC PROC ;输出子程序 ADD Y
11、,30H MOV DL,Y输出Y MOV DL,X输出X ADD X,30H MOV DL,X=输出= MOV AX,0 MOV AL,Z DIV TEN MOV S,AL MOV YS,AH cmp s,1 jb l10 ADD S,30H MOV DL,S MOV AH,2 INT 21H;输出高位结果 ADD YS,30H MOV DL,YS 输出低位结果 ;输出Z 输出一个空格 jmp l11 l10:ADD YS,30H MOV DL,YS MOV AH,2 输出低位结果输出一个空格 l11:MOV AX,0 MOV AL,X-30H SUB X,30H SUB Y,30H RET
12、SC ENDP END START 4)编制在屏幕上显示用*组成的三角形的程序 N DB ? NN DB ? I DB 1STACK SEGMENT DW 20 DUP(?STACK ENDS MOV AH,1输入一个数存入AL MOV N,AL ;输入的数存入N SUB N,30H L10: MOV AL,N SUB AL,I MOV NN,AL CMP NN,1 JB L1 DEC NN JMP L2 ;循环输出N-I个空 格 MOV BL,I SHL BL,1 SUB BL,1 ;(IX2)-1 L14:* DEC BL CMP BL,1 JB L3 JMP L14 L4: JB L5
13、JMP L4 ;循环输出N-I个空格 L5: INC I CMP BL,N JA L6 MOV BL,0 JMP L10 L6: END START5)设有五个字数据存放在以BUF为首地址的内存单元中,要求采用调用多个字数据相加的子程序方法编程,和的低位字放在RESULT单元,和的高位字放在RESULT+2单元,并将结果显示在屏幕上。BUF DW 0F101H,110DH,52H,100H,456HCOUNT =($-BUF)/2RESULT DW 4 DUP(?WDADD PROC PUSH DI MOV AX, 0 MOV DX, 0 MOV DI, OFFSET BUF ADD AX,
14、DI JNC NEXT1 INC DX ADD DI, 2 LOOP NEXT2 POP DI WDADD ENDP SHOW PROC MOV CX, 04H MOV DI, OFFSET RESULT MOV BX, AX ADD DI, 07H MOV AX, BX ADD AL, 07H ADD AL, 30H MOV DI, AL MOV CL, 04 SHR BX, CL MOV AX, DX MOV CL, 04H SHR DX, CL POP DI SHOW ENDP MOV AX, DATA MOV CX, COUNT CALL WDADD CALL SHOW MOV DX,
15、 OFFSET RESULT实验三 算术运算与代码转换程序设计1)掌握算术运算程序的设计方法。2)掌握代码转换程序的设计方法。3)进一步掌握各种程序结构。4)熟练掌握和使用用DEBUG调试程序。二、实验内容1)编制两个多字节整数加法和减法程序,并将结果按十六进制形式显示在屏幕上。DATA SEGMENT TABLE DW L1,L2,L3,L4,L5 BUF DB 32H,20H,12H NUM DB 04H DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS CODE SEGMENT STACK1 MOV AX,DATA MOV DS,AX MOV BL,BUF MOV BH,BUF+1 MOV CL,BUF+2 CMP BL,BH JA L1 CMP BH,CL JA L2 JMP L3 CMP BL,CL JA L4 MOV DL,BUF+1 AND DL,0F0H SAR DL,1 ADD DL,30H MOV AH,02H MOV
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1