目录
1.0 顺序结构
题目描述
编写S=85H×37H-26H的程序,式中的3个数均为无符号数。
题目代码
data segment
x db 85H
y db 37H
z db 26h
sum dw 0
data ends
stack segment para stack 'stack'
dw 100 dup(?)
stack ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov al,y
mul x
sub ax,word ptr z
mov sum,ax
mov ah,4ch
int 21h
code ends
end start
2.0 分支结构
题目描述
在当前数据段中DATA1开始的顺序30个单元中,存放着30位同学某门功课的考试
成绩(0~100)。编写程序统计≥90分、80~89分、70~79分、60~69分以及<60分的人数,并将结果放到同一数据段的DATA2开始的5个单元中。
题目代码
DATA SEGMENT
DATAI DB 80 DUP(?) ;假定学生成绩已放入这80个单元中
DATA2 DB 5 DUP(0) ;统计结果:≥90、80-89、70~79、60-69、<60
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START: MOV AX, DATA
MOV DS, AX
MOV CX, 80 ;统计人数送CX
LEA SI, DATAI ;SI指向学生成绩
LEA DI, DATA2 ;DI指向统计结果
AGAIN: MOV AL, [SI] ;取一个学生的成绩
CMP AL, 90 ;大于90分吗?
JC NEXT1 ;若不大于,继续判断
INC BYTE PTR[DI] ;否则90分以上的人数加1
JMP STO ;转循环控制处理
NEXT1: CMP AL, 80 ;大于80分吗?
JC NEXT2 ;若不大于,继续判断
INC BYTE PTR[DI+1] ;否则80分以上的人数加1
JMP STO ;转循环控制处理
NEXT2: CMP AL, 70 ;大于70分吗
JC NEXT3 ;若不大于,继续判断
INC BYTE PTR[DI+2] ;否则70分以上的人数加1
JMP STO ;循环控制处理
NEXT3: CMP AL, 60 ;大于60分吗?
JC NEXT4 ;若不大于,继续判断
INC BYTE PTR[DI+3] ;否则60分以上的人数加1
JMP STO ;转循环控制处理
NEXT4: INC BYTE PTR[DI+4] ; 60分以下的人数加1
STO: INC SI ;指向下一个学生成绩
LOOP AGAIN ;循环,直到所有成绩都统计完
MOV AH, 4CH
INT 21H ;返回DOS
CODE ENDS
END START
3.0 循环结构
题目描述
从DATA1单元开始的20个连续单元中存放有20个无符号数,从中找出最大者送入MAX单元中。
题目代码
DATA SEGMENT
DATA1 DB 20 DUP(?)
CON EQU $-DATA1
MAX DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
LEA SI, DATA1
MOV CX, CON-1
MOV AL, [SI]
LOP: INC SI
CMP AL,[SI]
JAE NEXT
MOV AL,[SI]
NEXT: LOOP LOP
MOV MAX, AL
MOV AH, 4CH
INT 21H
CODE ENDS
END START
4.0 寻址方式题目练习
指出下列指令正误,对错误指令,说明错误原因。
(1) MOV DS, 1050H ( F )
段寄存器不能直接赋值
(2) MOV WORD PTR[BX],3500H ( T )
(3) MOV [1000H], [2200H] ( F )
内存之间不能相互传值
(4) INC [BX] ( T )
(5) MOV AX , [BX+BP+0100H] ( F )
BX和BP不能同时使用
(6) MOV CS , AX ( F )
CS只能使用push和pop
(7) PUSH AL ( F )
Push只能是字操作类型
(8) PUSH WORD PTR[SI] ( T)
(9) OUT CX , AL ( F )
操作数数据类型不匹配,只能是DX
(10) IN AL , [60H] ( F )
源操作数应为立即寻址
(11) MOV CL , 2300H ( F )
操作数数据类型不匹配
(12) MOV AX , 2100H[BP] ( T )
(13) MOV DS , ES ( F )
段寄存器之间不能相互赋值
(14) MOV IP , 2000H ( F )
IP不能直接赋值
(15) PUSH CS ( T )
(16) IDIV AX, BL ( F )AX为隐含操作数
结语
“遇事不决可问春风,春风不语即随本心”的意思是:对一件事犹豫不决,就问春风该如何做,春风给不出答案,就凭自己本心做出决断。“遇事不决可问春风,春风不语即随本心”一句出自网络作家“烽火戏诸侯”的《剑来》,其原文是:“遇事不决,可问春风。春风不语,遵循己心”。
|