汇编上机(实验二)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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:

相关文档
最新文档