云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > answer4

answer4

  • 62 次阅读
  • 3 次下载
  • 2025/5/30 7:33:34

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 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

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 WO

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com