INT 21H MOV DL,0AH MOV AH,2 INT 21H JMP NEXT EXIT: RET
MAIN ENDP PROGNAM ENDS END START
4、 编写程序,把从键盘读入的一个大写字母转换成相应的小写字母,并输出。(注:对应大小写
字母之间的ASCII码值相差20H)
PROGNAM SEGMENT MAIN PROC FAR
ASSUME CS:PROGNAM START:
PUSH DS SUB AX,AX PUSH AX
NEXT:
MOV AH,1 INT 21H
CMP AL,'A' JB EXIT CMP AL,'Z' JA EXIT
ADD AL ,20H MOV DL,AL MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H JMP NEXT EXIT: RET
MAIN ENDP PROGNAM ENDS END START
5、 已知数组X包含有8个无符号整数,编写对其中的每个奇数计算1+2+…+N,并把它们顺序
存入内存字单元SUM开始的存储区中,要求1+2+…+N用子程序实现。不考虑溢出。
DATA SEGMENT
X DW 2,3,4,5,6,7,8,9
SUM DW 8 DUP (?) DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA MAIN: MOV AX,DATA MOV DS,AX LEA BX,X LEA DI,SUM MOV CX,8 NEXT: MOV DX,[BX] MOV AX,DX SHR AX,1 JNC N1 CALL SUB1 MOV [DI],AX ADD DI,2 N1: ADD BX,2 LOOP NEXT MOV AH,4CH INT 21H
SUB1 PROC NEAR PUSH CX XOR AX,AX MOV CX,DX AGAIN: ADD AX,CX LOOP AGAIN POP CX RET
SUB1 ENDP CODE ENDS END MAIN
6、 已知数组X包含有8个无符号整数,编写对其中的每个偶数计算1+2+…+N,并把它们顺序
存入内存字单元SUM开始的存储区中,要求1+2+…+N用子程序实现。不考虑溢出。
DATA SEGMENT
X DW 2,3,4,5,6,7,8,9 SUM DW 8 DUP(?) DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA MAIN:
MOV AX,DATA MOV DS,AX LEA BX,X LEA DI,SUM MOV CX,8 NEXT: MOV DX,[BX] MOV AX,DX SHR AX,1 JC N1
CALL SUB1 MOV [DI],AX ADD DI,2 N1: ADD BX,2 LOOP NEXT MOV AH,4CH INT 21H
SUB1 PROC NEAR PUSH CX XOR AX,AX MOV CX,DX AGAIN: ADD AX,CX LOOP AGAIN POP CX RET
SUB1 ENDP CODE ENDS END MAIN
注:编者水平有限,不能保证所有答案都正确,如发现错误之处,请指出。卷上部分答案来源于互联网,不代表标准答案,此卷仅供参考。最后两个编程题中有一道考试必考!我只能帮你们到这里了!呵呵
汇编语言习题
1、BIOS和DOS提供的中断例程,都用寄存器()来传递内部子程序的编号
A、ax B、al C、ah D、cx
2、执行以下指令序列后,sp的值是多少?
mov sp,3210h
push ax
A、320eh B、3212h C、3211h D、320fh
3、执行指令
cmp ax,bx;(ax)=A,(bx)=B
比较两个无符号数A、B,当A>B时转移的测试条件是
A、SF=0 B、CF=0且ZF=0 C、OF=0 D、ZF=0
4、jnz指令的测试条件是
A、zf=1 B、zf=0 C、相等 D、不相等
5、下列程序段可以等效为一下哪条指令?
again: mov al,[si]
mov es:[di],al
inc si
inc di
loop again
A、rep movsb B、rep movsw C、rep movss D、rep movsd
6、(ax)=10,执行一下指令后,下列标志位正确的是
add ax,0f510h
相关推荐: