汇编上机(实验二)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
昆明理工大学信息工程与自动化学院学生实验报告
(2013 —2014 学年第一学期)
一、实验目的:
1、熟悉并且掌握汇编语言的基本指令;
2、熟练地掌握循环与分支程序的设计过程;
3、掌握带符号数的比较转移指令:JL、JLE、JG、JGE;
4、伪指令EQU 及操作符'$'的使用。
5、熟悉并且掌握BIOS 和DOS中断的调用方法。
二、实验要求:
A、设计要求
1、编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z 字符,均显示“c”;若是回车字符,则结束程序,若为其它字符则不显示,继续等待新的字符输入。
2、提示编程:①回车字符的ASCII码为0DH
②显示字符用INT 21H的2号调用
B、设计要求
已知DATA单元开始存放三个带符号数
1、判断三个数是否同号,若同时为正,显示“+”,若同时为负,则显示“—”,否则显不“*”。
2、显示三个数中的最小值。
;A题:
;判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符,则结束程序,若为其它字符则不显示,继续等待新的字符输入。
data segment
DB 0
data ends
code segment
assume cs:code,ds:data
main proc far
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
next:
mov ah,07
int 21h
cmp al,0dh
jE end_d
cmp al,'0'
JGE DY0 ;>=0
JMP NEXT ;<'0'...30H
DY0:
CMP AL,'9'
JLE IS_09
CMP AL, 'A'
JGE DY_A ;DAYU A JMP NEXT ;<'A'...41H
DY_A:
CMP AL,'Z'
JLE IS_AZ
CMP AL,'a'
JGE DY_xA ;DAYU xA
JMP NEXT ;<'a'...61H
DY_xA:
CMP AL,'z'
JLE IS_AZ
JMP NEXT
;......................
IS_AZ:
MOV AH,02
MOV DL,'c'
INT 21H
JMP NEXT
IS_09:
MOV AH,2
MOV DL,AL
INT 21H
JMP NEXT
end_d:
ret
main endp
code ends
end main
;=============================================================
;B题:
data_C segment
DATA DB -1 , 4, 9 ;该处3数值可任意设定
A1 DB 0
A2 DB 0
A3 DB 0
DISP_MESS DB 0DH,0AH,'MIN IS : ' D1 DB 0
D2 DB 0, 'H$'
data_C ends
code segment
assume cs:code,ds:data_C
main proc far
push ds
sub ax,ax
push ax
mov ax,data_C
mov ds,ax
MOV BX, OFFSET DATA
MOV AL,[BX]
INC BX
MOV AH,[BX]
CMP AL,AH
JL ALAL1 ;AL XCHG AH,AL ALAL1: INC BX MOV DL,[BX] CMP AL ,DL JL ALAL XCHG AL,DL ALAL: CMP AH,DL JL AL_SMALL XCHG AH,DL AL_SMALL: MOV A1,DL MOV A2,AH MOV A3, AL XOR DL,AL ;最大和最小数异或 AND DL,80H NOT DL TEST DL,80H ;高位为1 表示一正一负,否则为全负或全正JE YZYF AND AL,80H NOT AL TEST AL,80H ;高位为1 表示全负 JE QF MOV AH,02 MOV DL,'+' INT 21H JMP DISP_SMALL QF: MOV AH,02 MOV DL,'-' INT 21H JMP DISP_SMALL YZYF: MOV AH,02 MOV DL,'*' INT 21H DISP_SMALL: ;显示最小值 MOV AL,A3 MOV AH,AL AND AX,0F00FH MOV CL,4 SHR AH,CL CMP AH,0AH JGE IS_AZ ADD AH,30H MOV D1,AH JMP NN_1 IS_AZ: