.
位判断为负数或0。
方法2:用cmp指令将该数与0相比,判断标志寄存器。SF⊕OF=0,为正数或0。否则为负数。
实验三 代码转换程序设计
一.实验目的
1.掌握几种最基本的代码转换方法。 2.运用子程序进行程序设计。 二.实验内容
1.从键盘上输入若干两位十进制数,寻找其中的最小值,然后在屏幕上显示出来。 2.两个十进制数之间的分隔符,输入结束标志自定,但要在报告中说明。 3.对输入要有检错措施,以防止非法字符输入,并有适当的提示。
4.将整个程序分解为若干模块,分别用子程序实现.在报告中要给出模块层次图。 三.模块层次图及流程图
输入数据 排序,显示 START
存储并显示 检错 十进制转换 排序 显示 Word 资料
Word 资料
.
开始 输入数据 错 检错 对 N 回车 Y B,BX,AL初始化 AL中ASCII码值转换为对BX指向的数小于 此数赋值 与B比较 给B 大于 BX=BX+1 比较结束 N Y 输出最小数 结束 .
四.源代码
DATA SEGMENT A DB 100 DUP (0) B DB 100,0,'$'
STRING DB 0DH,0AH,'ERROR INPUT ',0DH,0AH, '$' STRING1 DB 0DH,0AH,'the min number is ',0DH,0AH, '$' DATA ENDS
STACK SEGMENT STACK
DW 50 DUP(?)
STACK ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK INPUT PROC ;子程序 PUSH AX ;保护寄存器内容 PUSH BX ;保护寄存器内容 PUSH CX ;保护寄存器内容 PUSH DX ;保护寄存器内容
STAR: MOV CX,0 ;开始,表示输入的数是否可以构成两位十进制数
MOV BX,OFFSET A
AGAIN: MOV AH,01H ;输入 INT 21H
Word 资料
.
CMP AL,30H ;比较是否合法 JB SHOW CMP AL,39H JA SHOW
MOV [BX],AL ;存储,判断是否一个字,不是继续输入,否则向下运行 INC BX INC CX AND CX,1
JNZ AGAIN ;CX若为0,输入了两个数,可以构成一个两位十进制数
MOV CX,0 ; 判断下一输入字符 MOV AH,01H ; 输入 INT 21H MOV [BX],AL
INC BX
CMP AL,20H ;判断是否空格:是,继续输入;否,判断是否为回车
JZ AGAIN
CMP AL,0DH ; 判断是否为回车
JNZ SHOW ; 都不是,就输入错误,重新输入 JMP OKEY ; 是回车,就输入结束。否则结束子程序调
Word 资料
相关推荐: