第一范文网 - 专业文章范例文档资料分享平台

answer4

来源:用户分享 时间:2025/5/31 15:01:40 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

4.19 S_ARRAY是一个5个字符串组成的字符串数组,每个字符串由16个字符组成,S_RULE

是一个5个元素的字数组。编写程序,按照4.18题的规则,用S_RULE数组记录S_ARRAY数组的特征。 答: DATA SEGEMNT S_ARRAY DB 5 DUP(16 DUP(?)) ;运行前置入具体字符 S_RULE DW 5 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX LEA BX, S_RULE MOV CX, 5 INIT: MOV WORD PTR[BX], 0 ;S_RULE置为初始状态 ADD BX, 2 LOOP INIT

LEA SI, STRING ;设置指针 LEA DI, S_RULE

STRING DB 16 DUP(?) ;运行前置入具体字符

RULE DW ? DATA ENDS

CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV RULE, 0 ;RULE置为初始状态

LEA SI, STRING MOV CX, 16

AGAIN: SHL RULE, 1 ;右侧空出一位

MOV AL, [SI] CMP AL, ?0? ;测试是否数字 JB NEXT CMP AL, ?9? JA NEXT OR RULE, 1 ;将RULE对应位置1

NEXT: INC SI LOOP AGAIN EXIT: MOV AX, 4C00H INT 21H CODE ENDS END START

START

4.20 编写程序,从键盘上输入一个无符号字整数,用“四进制”格式输出它的值(也就是,

每2位二进制看作一位四进制数,使用数字0~3)。 答: INCLUDE YLIB.H

DATA SEGEMNT

MESS1 DB 0DH, 0AH, ?Input a number please : $? MESS2 DB 0DH, 0AH, ?The number in quardri_system is: $? DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX LEA DX, MESS1 CALL READDEC ;输入一个无符号整数 MOV BX, AX ;转存到BX LEA DX, MESS2 MOV AH, 9 INT 21H ;输出前导信息 MOV CX, 8 ONE: ROL BX, 1 ROL BX, 1 ;最高2位移到最低位 MOV DL, BL ;转存到DL

MOV

LOOPOUT:

PUSH MOV LOOPIN:

SHL MOV CMP JB CMP JA OR

SKIP: INC LOOP POP ADD LOOP EXIT: MOV INT CODE ENDS END

CX, 5 ;外层循环计数器置初值

CX

CX, 16

;内层循环计数器置初值 ;右侧空出一位 ;测试是否数字

WORD PTR[DI], 1 AL, [SI] AL, ?0? SKIP AL, ?9? SKIP

WORD PTR[DI], 1 SI

LOOPIN CX DI, 2

LOOPOUT AX, 4C00H 21H

;S_RULE数组元素置位

START

4.21编写程序,把一个30个元素的有符号字数组ARRAY按照各元素的正负分别送入数组

P和M,正数和零元素送P数组,负数送M数组。 答: DATA SEGEMNT ARRAY DW 30 DUP(?) ;汇编之前置入数据 P DW 30 DUP(?) M DW 30 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX LEA BX, ARRAY ;ARRAY数组指针 MOV SI, 0 ;P数组指针 MOV DI, 0 ;M数组指针 MOV CX, 30 ONE: MOV AX, [BX] ;从ARRAY数组取出一个数据 AND AX, AL JGE PLUS ;正数、零转PLUS MINUS: MOV M[DI], AX ;负数存入M数组 ADD DI, 2 JMP NEXT PLUS: MOV P[SI], AX ;正数、零存入P数组 ADD SI, 2 NEXT: ADD BX, 2 LOOP ONE

MOV AX, 4C00H

INT 21H CODE ENDS END START

4.22 缓冲区BUFFER中存放有字符串,以0为结束标志。编写程序,把字符串中的大写字

母转换成小写字母。

CODE AND

OR MOV INT LOOP CALL MOV INT ENDS END

DL, 0000 0011B DL, 30H AH, 2 21H ONE CRLF

AX, 4C00H 21H

;保留最低2位

;转换成ASCII代码 ;输出

答: DATA SEGEMNT BUFFER DB ?A String for Test.?, 0 DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX LEA BX, BUFFER ;BUFFER缓冲区指针 ONE: MOV AL, [BX] ;从缓冲区取出一个字符 AND AL, AL JZ QUIT ;为零,处理完成 CMP AL, ?A? JB NEXT CMP AL, ?Z? JA NEXT ADD AL, ?a?-?A? MOV [BX], AL NEXT: INC BX JMP ONE QUIT: MOV AX, 4C00H INT 21H CODE ENDS END START

4.23 编写程序,从键盘上输入无符号字整数X,Y的值,进行X+Y的运算,然后按以下格

式显示运算结果和运算后对应标志位的状态。 SUM=XXXX

ZF=Y,OF=Y,SF=Y,CF=Y

(其中X为十进制数字,Y为0或1) 答: INCLUDE YLIB.H CODE SEGMENT ASSUME CS: CODE MESS1 DB 0DH, 0AH, ?Input a unsigned integer please : $?

MESS2 DB 0DH, 0AH, ?SUM=$? MESS3 DB 0DH, 0AH, ?ZF=? ZF DB ? DB ?, OF=? OF DB ? DB ?, SF=? SF DB ? DB ?, CF=? CF DB ? DB 0DH, 0AH, ?$?

搜索更多关于: answer4 的文档
answer4.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8mcy71jqrp6zh7s4fk4n_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top