xx dw ?
inerr db 0ah,0dh,input error! try again,0ah,0dh,'$'
DATAS ENDS
STACKS SEGMENT
db 200 dup(0);此处输入堆栈段代码 STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS START:
MOV AX,DATAS MOV DS,AX
next: mov dx,offser input;此处输入代码据段代码 mov ah,9 int 21h mov ah,1 int 21h cmp al,'0' jb err cmp al,'9' ja err add al,0fh mov x,al xor ebx,ebx mov bl,al
mov ax,tab[ebx*2] mov xx,ax exit: MOV AH,4CH INT 21H jmp enxt
CODES ENDS END START
4、设TAB字节存储区中存放着0—9的平方值,试编写一程序实现以下功能:从键盘上输入一个数X(0<=X<=9),试利用平方表计算它的平方值并将结果在显示器上显示出来。其显示结果格式为: 2*2=4 5*5=25
A ILEGAL DIGIT! 9*9=81
按回车键结束。
29
【预习要求】
1、仔细阅读课本及相应教材。
2、参照程序框图编制源程序,准备好多组运算数据,以供校验。
【实验步骤】
1、确定算法,画出程序流程图。 2、利用文本编辑程序,建立源文件。
3、利用汇编程序MASM对源程序汇编,形成目标文件 4、利用LINK对目标文件进行链接,形成可执行文件。
5、运行可执行文件,如果有错误,利用DEBUG软件进行调试 【思考题】
1.试分析下列程序段。 ADD AX,BX JNO L1 JNC L2
SUB AX,BX JNC L3 JNO L4
JMP SHORT L5
如果AX和BX的内容给出如下:
AX BX (1)14C6 80DC (2)B568 54B7 (3)42C8 608D (4)D023 9FD0 (5)9FD0 D023
问该程序分别在上面5种情况下执行后,程序转向哪里?请直接标注在题后。
2.执行完程序后,回答指定的问题。 MOV AX,0 MOV BX,2 MOV CX,50 LP: ADD AX,BX ADD BX,2 LOOP LP
问: (1) 该程序的功能是:
(2) 程序执行完成后,(AX)=( )。
【实验报告要求】
1、记录实验步骤和出现的现象,按照要求写出显示结果,源程序加上注释。 2、比较实验记录和理论分析的结果是否相同,如果不同找出差别并分析原因。 3、写实验报告,画出算法流程图,运行可执行文件并写出运行结果。
30
4、回答思考题问题,总结本次实验体会。
实验六 分支程序设计2(2学时)
【实验目的】
1、熟练掌握逻辑运算和转移