习题解答2

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

MOV BX,AX ;累加结果送BX
LOOP LOP ;CX-1→CX,判断CX≠0,则转
习题3.13
• 下面程序段的功能是把DA1数据区的0-9转换为对应的 ASCⅡ码.
DA1 DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H
ASCI DB 10 DUP(?)
CUNT = ASCI-DA1
LEA SI,DA1 ;送数组百度文库A1的首地址偏移量到SI
LEA DI, ASCI ;送数组ASCI的首地址偏移量到DI MOV CX, CUNT;送数组DA1的长度
LOP1: MOV AL,[SI] ;取数
ADD AL,30H;或者OR AL,30H;加30H变成ASCⅡ码
第3章 汇编语言程序设计习题 解答
请打开书P188
习题3.8
• 画出下列语句的数据在存储器中的存储情况:
• ARRAYB DB 63,63H,’ABCD’,3 DUP(?),2 DUP(1,3)
• ARRAYW DW 1234H,5,’AB’,’CD’,?,2 DUP(1,3)
34H
3FH
12H
63H
CODE SEGMENT ASSUME CS:CODE,DS:DATA
BEGIN: MOV AX,DATA MOV DS,AX LEA BX, SQRTAB MOV AL,DAT CMP AL,0 JGE PLUS NEG AL
PLUS: XLAT MOV SQR, AL MOV AH, 4CH INT 21H
CODE ENDS END BEGIN
习题4.17
• 设在数据段中有X,Y两个变量(字节单元),试编写程序段计算 (只写有关功能的指令).
X
当X≥0时
• Y= │X│ 当X <0时
X DB ?
• XX
DB ?
• YY
DB ?
•…

MOV
AL, XX

MOV AH, 0

MOV
BL, 1
• LOP1: AND
AL, AL

JZ
DONE

SHL
AL, 1
• • • NEXT: • • DONE: •
JNC OR SHL JMP MOV YY, HLT
NEXT AH, BL BL, 1 LOP1 AH

MOV
DS, DATA
• • • • LOP1: • • • • • • CODE •
MOV SI, OFFSET CHAR
MOV CX, 26
MOV AL, 41H
MOV [SI], AL
INC
SI
INC
AL
LOOP LOP1
MOV AH, 4CH
INT
21H
ENDS
END START
习题3.17
习题3.16
• 试编写一程序段,在CHAR为首的26个单 元中依次存放字母‘A’- ‘Z’.
• DATA SEGMENT
• CHAR DB 26 DUP(?)
• DATA ENDS
• CODE SEGMENT

ASSUME CS: CODE, DS: DATA,
• START: MOV
AX, DATA
DATA ENDS … LEA SI,A LEA DI,B MOV CX,10
LOP: LODSB XCHG AL,[DI] XCHG SI,DI DEC DI STOSB XCHG SI,DI INC DI LOOP LOP
习题3.15
• 编写一程序段,将AL中的第7和第0位,第6和第1位,第5 和第2位,第4和第3位互换.
05H
00H
41H
42H
42H
41H
43H
44H
44H
43H XX
XX
XX
XX
01H
XX
00H
01H
03H 00H
03H
01H
01H
00H
03H
03H
00H
习题3.9
• 程序中数据定义如下: DATA1 DW ? DATA2 DB 32 DUP(?) DATA3 DD ? DLENGTH EQU $-DATA1
MOV [DI],AL ;转换后存入数组ASCI
INC SI
;源数据地址加1
INC DI
;目的数据地址加1
LOOP LOP1 ;CX-1→CX,判断CX≠0,则转
习题3.14
• 设A,B是长度为10的字节数组,用串操作指令编写程 序实现AB两数组内容的相互交换.试完善程序.
DATA SEGMENT A BD 1,2,3,4,5,6,7,8,9,0AH ORG 0010H B DB 0AH,9,8,7,6,5,4,3,2,1
XOR BX ,BX ;BX清零
MOV CX,10 ; 传送数据长度
LOP:MOV AH,01H;中断INT 21H的01H号调用
INT 21H ;中断调用P184,输入的在AL中
MOV AH,BH ;将BH的内容传AH
ADD AL,BL ;BL与AL的值相加,结果在AL中
AAA
;非压缩BCD码加法调整
解答:
(1)DA1 DB 20H DUP(2,3,10 DUP(4),7)
(2)DA2 DW ‘TS’, ‘DU’,‘NE’,’ST’,
(3) COUNT EQU $- DA1
习题3.12
• 下面程序段是实现从键盘输入十个一位10进制数后 累加,最后累加和以非压缩BCD码形式存放在AH (高位)和AL (低位)中。试把程序段中所空缺 的指令填上。
• 此时DLENGTH的值是多少? 解答: DLENGTH=2(字)+32+4(双字)=38
习题3.10
• 程序中数据定义如下:
ARRAY DB ‘ABCDEF’ RESULT DB ? TABLE DW 20 DUP(?) • 则执行指令 MOV AX,TYPE RESULT后,AX=1 MOV BX, TYPE TABLE后,BX= 2 MOV CX, LENGTH TABLE后,CX=20 MOV DX, LENGTH ARRAY后,DX=1 MOV SI ,SIZE TABLE后,SI=2×20=40 MOV DI ,SIZE ARRAY后,DI=1
习题3.11
• 试按下列要求在数据段中依次书写各数据定义语句:
(1)以DA1为首字节的连续存储单元中存放20H个重 复的数据序列:2,3,10个4,一个7。
(2)DA2为字符串变量,用字变量(DW)设置一字 符串;‘STUDENTS’(按次顺序存放在各单元中)。
(3)用等值语句给符号COUNT赋值以DA1为首地址 的数据区共占有的字节数,此等值语句必须放在最 后一语句。
相关文档
最新文档