我是这学期开始学程序,感觉我们汇编老师的教学方法很好。
自己编了好几个小汇编程序,熟悉了很多基本指令、锻炼了思维...,总之感觉自己得到了一定的锻炼。
以下是我们老师出布置给我们做过的一些程序题,很有价值,望新手自己独立思考,老手不要随便公布答案。
题目(1)
DATAS SEGMENT
STR DB"please input a string:$"
BUF DB 20
DB ?
DB 20 DUP (?)
CRLF DB 0AH,0DH,"$";此处输入数据段代码
DATAS ENDS
STACKS SEGMENT STACK
DB 200 DUP(?) ;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START: MOV AX,DATAS
MOV DS,AX
LEA DX,STR
MOV AH,9
INT 21H
MOV AH,10
LEA DX,BUF
INT 21H
LEA DX,CRLF
MOV AH,9
INT 21H
MOV CL,BUF+1
LEA SI,BUF+2
NEXT: MOV DL,[SI]
MOV AH,2
INT 21H
INC SI
DEC CL
JNZ NEXT;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START
以上是从键盘输入字符串并输出该字符串的简单汇编程序,要求将程序中的2号调用改成9号调用使该程序同样能实现输入任意字符串换行输出同样的字符串。
题目(2)
DATAS SEGMENT
TABLE DB 0,1,4,9,16,25,36,49,64,81
NUMB DB 6
RESULT DB ?
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
LEA DI,TABLE
LEA BX,NUMB
MOV AX,0
MOV AL,[BX]
ADD DI,AX;
MOV AL,[DI]
LEA BX,RESULT
MOV [BX],AL
HLT
MOV AH,4CH
INT 21H
CODES ENDS
END START
判断程序功能(在DEBUG里查看)
判断出该程序功能后,改写,输入0~9的数字输出其平方。
......等待更新→......等待更新→......等待更新→......等待更新→......等待更新→......等待更新→
......等待更新→......等待更新→......等待更新→......等待更新→......等待更新→......等待更新→
[此贴子已经被作者于2007-5-14 23:08:08编辑过]