汇编上机实验

  • 格式:doc
  • 大小:49.00 KB
  • 文档页数:11

下载文档原格式

  / 39
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

从键盘接收两个不大于5 的十进制数字,并以十进制数据形式显示其和。

编程提示:

该程序中要求的均为一位数据的输入输出,暂时不考虑多位数据,请输入0~5 之间的数据,显示的结果为0~9。请不要输入两个5,以免出现不能直接输出的情况。

data segment

data ends

code segment

assume cs:code,ds:data

start:mov ax,data

mov ds,ax

mov ah,01h

int 21h

mov bl,al

sub bl,30h ;将输入的数字变成16进制数后放在bl中

;为了实现bl与cl的16进制数相加

mov dl,10 ;换行(10表示换行)

mov ah,02h

int 21h

;mov dl,13 ;回车(13表示回车,为的是让换行之后光标移到行首)

;mov ah,02h

;int 21h

mov ah,01h

int 21h

mov cl,al

sub cl,30h;将输入的数字变成16进制数后放在cl中

mov dl,10

mov ah,02h

int 21h

;mov dl,13

;mov ah,02h

;int 21h

add cl,bl

add cl,30h

mov dl,cl

mov ah,02h

int 21h

mov ax,4c00h

int 21h

code ends

end start

1、试编写程序,完成下面公式的计算。

A ←(X-Y+24)/ Z的商,

B ←(X-Y+24)/ Z的余数

其中,变量X和Y是32位有符号数,变量A、B、Z是16位有符号数。

DATA SEGMENT

X DD 12345H

ORG 10H

Y DD 12345H

ORG 20H

Z DW 12H

ORG 30H

A DW ?

B DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV AX,WORD PTR X ;将X低四位放入AX中

MOV DX,WORD PTR X+2 ;将X高四位放入DX中

SUB AX,WORD PTR Y ;X和Y的低四位相减(不考虑借位)

SBB DX,WORD PTR Y+2 ;X和Y的高四位相减(考虑借位)

ADD AX,24

ADC DX,0 ;只是将进位加入到DX中

IDIV Z

MOV A,AX ;存放商到A

MOV B,DX ;存放余数到B

MOV AX,4C00H

INT 21H

CODE ENDS

END START

2 、试将字节数据B1 拆分成两个半字节数据,分别存放于其后两个单元X 和Y 中。

编程提示:

数据段定义应包含B1、X、Y 三个变量,其中B1 变量自定义具体的数值,X、Y 变量的数值由程序赋值,分别是B1 的高低半个字节。该程序中需要使用逻辑操作完成半字节数据的拆分。

DATA SEGMENT

B1 DB 12H

X DB ?

Y DB ?

DATA ENDS

CODE SEGMENT

ASSUME DS:DATA,CS:CODE

START:

MOV AX,DATA

MOV DS,AX

MOV AL,B1

MOV CL,4

SHR AL,CL

MOV X,AL

MOV AL,B1

AND AL,0FH

MOV Y,AL

MOV AX,4C00H

INT 21H

CODE ENDS

END START

1、试编写程序,完成以下功能。

(1)程序执行时,显示提示信息“Please input a string(length<9):”,由用户输入一个长度小于9的字符串;

(2)然后显示提示信息“Please input the index of the char to display:”,请用户指定该串中的某个字符的位置号;

(3)程序将用户指定位置的字符显示出来。

例如:用户输入一个字符串“ABCDEFG”,然后指定的位置号为2,则屏幕显示字符“C”。注意:这里的位置号从0开始。

注意:以上功能的实现不要求程序做控制判断,在字符串输入时,由人为控制字符串长度小于9;在指定位置号时,由人为控制输入的位置号是合法的。

2、试使用分支结构和循环结构程序完善上面的程序功能。

(1)对用户输入的字符串进行长度检查,若长度大于9,则要求用户重新输入;

(2)用户在指定位置号时,进行判断,若输入非法(位置号大于实际字符串长度),则提示用户重新输入;

(3)统计用户输入的字符串中特定字符的数目并显示。可先指定特定字符进行统计,然后再由用户指定字符进行统计。

DATA SEGMENT

INMESS DB "Please input a string(length<9):$"

TIPSMESS DB "Please input the index of the char to display:$"

STR1 DB 20,?,20 DUP('$')

X DB ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

START:MOV AX,DATA

MOV DS,AX

L1: LEA DX,INMESS

MOV AH,09H

INT 21H;提示输入字符串

LEA DX,STR1

MOV AH,0AH

INT 21H ;输入字符串