815历年真题程序总结
2007.编写程序,将一个32位数扩大16倍。(DX:AX)
DATA SEGMENT
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV DX,0020H
MOV AX,1010H
MOV CX,4
L1: SHL AX,1
RCL DX,1
LOOP L1
MOV AH,4CH
INT 21H
CODE ENDS
END START
2008.设计程序,统计AX中1的个数。
DATA SEGMENT
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
mov ax,0fh
mov cx,10H
MOV BX,00H
L1: rcr ax,1
adc Bx,00h
LOOP L1
MOV AH,4CH
INT 21H
CODE ENDS
END START
2009.假设内存单元中有三个字节变量啊a、b和c,编写程序,判断它们是否构成一个三角形,若能,CF=1,否则,CF为0。
DATA SEGMENT
a db 03h;定义变量
b db 04h
c db 05h
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
mov al,a;暂存数据
mov bl,b
mov cl,c
mov dl,al;cmp1 c<a+b?
add dl,bl
cmp cl,dl
JNC ENDA ;c>a+b 则无借位
mov dl,Bl;cmp2 a<b+c?
add dl,Cl
cmp Al,Dl
JNC ENDA
mov dl,al;cmp3 b<a+c?
add dl,Cl
cmp Bl,dl
JNC ENDA
mov dl,59h;屏幕输出Y
MOV ah,02h
int 21h
MOV AH,4CH
INT 21H
ENDA:
mov dl,4eh;屏幕输出N
MOV ah,02h
int 21h
MOV AH,4CH
INT 21H
CODE ENDS
END START
2010A.将ELEMS中的100个字节的数据位置颠倒过来(即第一个字节的第100个字节的内容交换,第二个字节和第9个