《微机原理与接口技术》复习提纲(5)

2019-08-30 19:43

(提示:回车符CR的ASCII码值为0DH;LF换行的ASCII码是0AH ;0-9的ASCII码值分别为30H-39H。)

正确的源程序应为如下语句: CODE

SEGMENT

ASSUME CS:CODE START: MOV AH,01H INT 21H CMP AL,33H JB START CMP AL,39H JA START SUB AL,30H MOV CL , AL

MOV CH,0 MOV DL,0DH

MOV AH , 02H

INT 21H MOV DL,0AH

INT 21H PUSH CX

AA:

BB: MOV DL,‘*’ MOV AH , 02H INT 21H

LOOP BB

MOV DL,0DH

INT 21H

93\\ 从内存存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。

汇编语言源程序如下:

21

DATA DATA STACK STACK CODE START:

SEGMENT ;定义数据段 BUF DB 23H,16H,08H,20H,64H,8AH,91H,35H,2BH,FFH ;定义数据区 CN EQU $-BUF ENDS

SEGMENT ;定义堆栈段 STA DB 10 DUP(?)

TOP EQU $-STA ENDS

SEGMENT ;定义代码段 ASSUME CS:CODE,DS:DATA,SS:STACK

PUSH DS ;汇编开始

XOR AX,AX ; 这条指令在程序中很常见,一般有两个功能(见备注)

PUSH AX

MOV AX,DATA

MOV DS,AX ;初始化DS MOV BX,OFFSET BUF MOV CX,CN DEC CX MOV AL,[BX] INC BX

LP: CMP AL,[BX] ;两数比较 JBE NEXT NEXT: CODE

备注:

MOV AL,[BX] INC BX DEC CX JNZ LP

MOV AH,4CH INT 21H ENDS

;若(AL)<[BX],转NEXT ;将较小数存入AL中

;返回DOS

1、将AX清零; 2、将CF标志位也清零。

也就是说相当于以下两条指令:

MOV ax,0 CLC可用AND AX,0之类的指令代替,不过XOR AX,AX指令比AND AX,0指令占存储空间要小,执行速度更快,因此更常用。 XOR AX,AX

XOR是异或操作符,它的输出规则为异则输1,否则输0,AX与AX8个位当然都是一样,即全部输出为0,同样也可达到AX清零目的.

不过现在一般书上都是用XOR AX,AX实现清零操作..因为在CPU中位操作指令是要比算术操作指令要快.

22

94、编制程序完成求1+2+3+??+N的累加和,直到累加和刚超过1000为止, 统计被累加

的自然数的个数送CN单元,累加和送SUM单元。

该题的循环次数预先是不确定的,只能按照循环过程中的某个特定条件来决定循环

是否继续执行。可通过测试条件是否成立来实现对循环的控制。 程序设计如下。

DATA SEGMENT SUM DW ? CN DW ? DATA CODE

ENDS SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,0 MOV BX,0 LP:

;初始化DS ;0送AX ;0送BX

INC BX ;BX加1

ADD AX,BX ;求累加和

CMP AX,1000

;比较

;结果≤1000转LP

JBE LP

MOV SUM,AX MOV CN,BX

;送结果

23

MOV AH,4CH INT 21H CODE

ENDS

;汇编结束 ;返回DOS

END START

95、大写字母转换为小写字母

编程要求:

从键盘读入一行长度不超过50个的用字符&结束的字符串。将其中的所有大写字母转换为小写字母,而保持其他字母不变,统计出需转换的字母的个数,并存放在rs单元中。

源程序如下: Data segment

BUF db 50 db ? db 50 dup( ?) rs db ? data ends code segment

assume cs:code,ds:data

start:

mov ax,data mov ds,ax

24

mov dx,offset BUF ;dx 指向字符串首地址 mov ah,0ah ;键盘输入到缓冲区 int 21h

xor dl,dl ;dl清零,计数清零

mov bx,offset BUF+2 ;取键入的第一个字符送bx

lop:

mov al,[bx] cmp al,’&’

jz stp cmp al,'a'

jb next cmp al,'z'

ja next add al,20h

inc dl next: inc bx

jmp lop stp:

mov rs,dl mov ah,4ch

int 21h

code ends

;等于’&’转stp ;小于'A'转next ;大于'Z'转next

; 大写字母的ASCII码加20h,则转换为小写字母 ;dl+1,计数加1

;(bx)+1送(bx) ; 转lop

;dl送rs ;返回DOS 25

end start ;运行结束

26


《微机原理与接口技术》复习提纲(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:网银常见问题汇总

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: