汇编第五章课后题答案

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

1.从屏幕上输入小写字母,转化为大写字母输出

(解法1)

DATA SEGMENT

MESSAGE DB "ENTER A STRING:",0AH,0DH,'$' MAXLENGTH DB 50,?,50 DUP(?) ;每次最多可以输入49个字符DATA ENDS

CODE SEGMENT

ASSUME DS:DATA,CS:CODE

START:

MOV AX,DATA

MOV DS,AX

LEA DX,MESSAGE ;输出ENTER A STRING

MOV AH,09H

INT 21H

LEA DX,MAXLENGTH ;输入字符串

MOV AH,0AH ;键盘输入到缓冲区,DS:DX=缓冲区首址

INT 21H ;(DS:DX)=缓冲区最大字符数,(DS:DX+1)=实际输入的字符数

MOV AH,02H ;输出回车换行

MOV DL,0AH

INT 21H

MOV AH,02H

MOV DL,0DH

INT 21H

MOV CL,MAXLENGTH+1;把字符的实际长度放入寄存器CL

MOV CH,0

MOV BH,02H

LEA SI,MAXLENGTH+2;取字符串的基地址放入SI

XUN:

MOV AL,[SI]

CMP AL,'Z'

JBE S1 ;小于等于'Z'转移

JMP S3

S1:CMP AL,'A'

JAE DA ;大于等于'A'转移

JMP OUTPUT

DA:ADD AL,20H

JMP OUTPUT

S3:CMP AL,'z' ;小于等于小Z转移

JBE S4

S4:CMP AL,'a' ;大于等于小a转移

JAE XIAO

JMP OUTPUT

XIAO:

SUB AL,32

JMP OUTPUT

OUTPUT:

MOV DL,AL

MOV AH,02H ;显示输出

INT 21H

INC SI

LOOP XUN

MOV AH,4CH

INT 21H

CODE ENDS

END START

(解法2)

;将输入的小写字母转化为大写字母输出,输入回车结束CODE SEGMENT

ASSUME CS:CODE

BEGIN:

MOV AH,01H

INT 21H

CMP AL,0DH ;ASCII OF CARRIAGE RETURN

JE EXIT

CMP AL,61H ;ASCII OF 'a'

JB STOP

CMP AL,7AH ;ASCII OF 'z'

JA STOP

SUB AL,20H

STOP:

MOV DL,AL

MOV AH,2

INT 21H

JMP BEGIN

EXIT:

MOV AH,4CH

INT 21H

RET

CODE ENDS

END BEGIN

2.输入一个字符,找出它的前导字符和后续字符,并按顺序显示这三个字符.

(解法1)

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE

START:

PUSH DS

XOR AX,AX

PUSH AX

MOV AH,01H

INT 21H

CMP AL,61H

JB EXIT

CMP AL,7AH

JA EXIT

MOV CL,AL

DEC AL

MOV DL,AL

MOV AH,02H

INT 21H

MOV DL,CL

MOV AH,02H

INT 21H

AND AL,01H

INC CL

MOV DL,CL

MOV AH,02H

INT 21H

EXIT:

MOV AX,4C00H

INT 21H

RET

MAIN ENDP

CODE ENDS

END START

(解法2)

.MODEL SMALL

.STACK 200H

.DATA

imsg db 'Input:$' ;输入提示信息

omsg db 0Dh,0Ah,'Output:$' ;输出提示信息string db 3 dup(0),'$' ;存放三个字符

.CODE

START:

mov ax,@data

mov ds,ax

lea dx,imsg

mov ah,9

int 21h

mov ah,1

int 21h

lea di,string

dec al

mov cx,3

s:

mov [di],al

inc di

inc al

loop s

lea dx,omsg

mov ah,9

int 21h

lea dx,string

mov ah,9

int 21h

MOV AH,07H

INT 21H

MOV AX,4C00H

INT 21H

END START

3.将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL,BL,CL,DL中

.MODEL SMALL,C

.CODE

.STARTUP

MOV AX,3456H

MOV BX,AX

MOV CL,4

相关文档
最新文档