程序

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

1、f(X)= 5X3 + 4X2 - 3X + 2 ,要求编制程序计算自变量X=5时函数f(X)的值。

DATA SEGMENT

X DW 5

RESULT DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DA TA

MOV DS,AX ;装填数据段

MOV AX,5

MUL X ;5*X

ADD AX,4 ;5*X+4

MUL X ;(5*X+4)X

SUB AX,3 ;(5*X+4)X-3

MUL X ;((5*X+4)X-3)X

ADD AX,2 ;((5*X+4)X-3)X+2

MOV RESULT,AX ;保存运算结果

MOV AH,4CH

INT 21H ;返回DOS

CODE ENDS

END START

2、比较两个无符号数的大小。

DATA SEGMENT

A D

B 20H

B DB 92H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DA TA

MOV DS,AX

MOV AL,A ;取数送AL

CMP B,AL ;比较二数

JA BGA ;若B> A转BGA

MOV DL,‘A’

MOV BL,‘B’;准备显示A> B

JMP DISP

BGA:MOV DL,‘B’

MOV BL,‘A’;准备显示B> A

DISP:MOV AH,2

INT 21H

MOV DL,‘>’

INT 21H

MOV DL,BL

INT 21H ;显示比较结果

MOV AH,4CH

INT 21H ;返回DOS

CODE ENDS

END START

3、某应用程序主菜单有8个可选项,其入口地址分别记为R0、R1 …R7。要求编制程序根据变量N的值转向相应的处理程序(N为入口编号)。

DATA SEGMENT

BASE DW R0,R1,R2,R3

DW R4,R5,R6,R7

N DB 5

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DA TA

MOV DS,AX

MOV AL,N ;入口编号N送AL

ADD AL,AL ;2×N →AL

MOV AH,0

MOV BX,OFFSET BASE ;跳转表首地址送BX

ADD BX,AX ;得到Rn的存放地址

MOV AX,[BX] ;入口地址送AX

JMP AX ;跳转到相应的处理程序

R0:┇;R0的处理程序

JMP OK

R1:┇;R1的处理程序

JMP OK

R7:┇;R7的处理程序

OK:MOV AH,4CH

INT 21H ;返回DOS操作系统

CODE ENDS

END START

4、从BUF单元开始存有20个8位带符号数,要求统计其中的负数个数放在NEGA字节单元,并显示在CRT上(设负数个数在0~9之间)。

DATA SEGMENT

BUF DB 2,-1,56,-38,4,┅

COUNT EQU 20

NEGA DB ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DA TA

MOV DS,AX

MOV SI,OFFSET BUF ;置数据指针SI

MOV DL,0 ;计数器清零

MOV CX,COUNT ;置循环次数

LP:MOV AL,[SI] ;取数送AL

AND AL,AL ;置标志位

JNS NEXT ;为正,转NEXT

INC DL ;为负,计数器加1

NEXT:INC SI ;修改指针

LOOP LP ;未完,继续

MOV NEGA,DL ;存结果

OR DL,30H ;转换成ASCII码

MOV AH,2

INT 21H ;显示这组数中负数的个数

MOV AH,4CH

INT 21H ;返回DOS

CODE ENDS

END START

5、已知在内存中从STR单元开始放有一串字符,以‘$’作为结束标志,长度不超过100字节,要求统计该字符串的长度,并存于LEN单元。

DATA SEGMENT

STR DB ‘ABCDJKLLHH┅$’

LEN DB 0

DATA ENDS

STACK SEGMENT PARA STACK ‘STACK’

STT DB 100 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

START:MOV AX,DA TA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

MOV SP,SIZE STT

LEA DI,STR ;字符串首址送DI

MOV AL,‘$’;结束标志送AL

LP:CMP AL,[DI] ;将串中字符与结束标志比较

JZ STOP ;是‘$’字符,转STOP

INC LEN ;不是‘$’字符,串长计数器加1

INC DI ;修改地址指针

JMP LP ;继续循环

STOP:MOV AH,4CH

INT 21H ;返回DOS

CODE ENDS

END START

相关文档
最新文档