汇编语言天津大学作业答案

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

3、解: LEA SI,N LEA DI,NI ADD DI,I MOV CX, I ADD CX,1 MOVE: CLD LODSB STD STOSB LOOP MOVE 4、解: DATA SEGMENT ARR DW a1, a2, a3, a4, a5, a6, …, a100 SUM DW ? DATA ENDS CODE SEGMENT ASSUME DS: DATA, CS: CODE START: MOV AX, DATA MOV DS, AX LEA BX, ARR MOV CX, 100 MOV AX, 0 AGAIN: ADD AX, [BX] ADD BX, 2 LOOP AGAIN MOV AX, 4C00H INT 21H CODE ENDS END START
i 1 100
6、试编写一个汇编语言程序, 要求对键盘输入的小写字母用大写字母显示出来。
全相同,若相同则显示“MATCH” ,如不同则显示“NO MATCH” ,字符串内容 自定义,要求写出完整的程序。 (12) 答案:1、 LEA DI,DA_BY MOV CX,32 MOV AL, ‘Y’ CLD REP STOSB。
ቤተ መጻሕፍቲ ባይዱ
1、试编制一程序段,用串操作指令实现以 DA_BY 为首址的 20H 个字节单元中 存放相同字符‘Y’ (设 DA_BY 存储区已有 ES 指向) 。 2 、 试 编 制 一 源 程 序 , 统 计 DA1 字 单 元 中 含 0 的 个 数 , 如 统 计 的 个 数 为 奇数,则将进位位置 1,否则进位位清 0。 DATA SEGMENT DA1 DW XXXX DATA ENDS 4、已知在 N 到 N+i 的存储区内有一 ASCII 码字符串(共 i+1 个) ,试编写一 个汇编语言程序,将此字符串传送到 NI 到 NI+i 单元中,并使字符串的顺 序与原顺序相反。 (只写出关键代码段即可) (6) 5、编写程序,求解 sum= 只写关键代码段即可(8) 7、 试编写一程序, 比较两个字符串 STRING1 与 STRING2 所含有的字符是否完 (9) ai =a1+a2+…+a100,要求写出完整程序。
二、 1、
程序题 MOV BL,64H MOV CL,03H XOR AX,AX AGAIN:ADD AL,BL ADC AH,0 DEC CL JNZ AGAIN
问: (1)该程序段完成的功能是: (2)AX=________。 2、 已知数据段中定义 12H,34H,56H,78H MOV CX,0 MOV AX,WORD PTR DAT1 MOV CL,DAT1+3 当程序段执行完后 AX=________,CX=________。 3、 DA1 ┇ MOV CX,WORD PTR DA1 AND CX,0FH MOV AL,DA1+3 SHL AL,CL 上述指令序列执行后,AL=_______,CL=_______。 4、 某 程序 欲 用 单 个字 符 显 示 的 2 号 功能 调 用 去 显示 STRING 中 的字 符串 ‘COMPUTER’ (不显示字符‘$’ ! ).试在空白处填上适当的一条指令。 STRING DB‘COMPUTER’ , ‘$’ MOV BX,0FFSET STRING LOP:MOV DL,[BX] MOV AH,02H INT 21H ____________________ ____________________ JNE LOP DB 83H,72H,61H,94H,5AH DAT1 DB
6、有符号定义语句如下: BUFF DB 1,2,3,’123’ EBUFF DB 0 L EQU EBUFF-BUFF 问 L 的值为多少?为什么? 答案: 1、 IBM PC 系列机的字长为 16 位, 能够访问的最大存储空间 64KB, 而在 IBM PC 内存为 1MB 的情况下,访问这 1MB 的存储空间需要 20 位。为了解决字长为 16 位的机器访问 1MB 的存储空间,将 1MB 空间每 16B 分为一段,共 64K 段,以 16 位段地址:16 位偏移地址的形式组成,物理地址通过如下方式计算: 物理地址 = 段地址×10h + 偏移地址 2、 IBM PC 机的寻址方式有 7 种: 1)立即寻址:MOV AX, 1234H; 2)寄存器寻址:MOV AX, BX; 3)直接寻址:MOV AX, [1234H]; 4)寄存器间接寻址:MOV AX, [BX]; 5)寄存器相对寻址:MOV AX, 20H[BX]; 6)基址变址寻址:MOV AX, [BX][SI]; 7)相对基址变址寻址:MOV AX, 100H[BX][SI]; 3、解: (30022H)= 12H (30024H) = 56H (30021H) = 12CDH (30022H) = 3412H 4、解: (1) MOV AX,1200H 解:(AX)=1200H (2) MOV AX,BX 解:(AX)= 0100H (3) MOV AX,[1200H] 解:物理地址=(DS)×10H+1200H (AX) = 4C2AH
5、解: BEGIN: MOV AH, 01H INT 21H CMP AL,’a’ JB FIN CMP AL,’z’ JA FIN SUB AL, 20H MOV DL, AL MOV AH, 02H INT 21H JMP BEGIN FIN: 6、解: DATA SEGMENT STRING1 DB ‘HERE YOU ARE’ STRING2 DB ‘HERE YOU AER’ YES DB ‘MATCH’, 0DH, 0AH, ’$’ NO DB ‘NO MATCH’, 0DH, 0AH, ‘$’ DATA ENDS CODE SEGEMTN ASSUME CS:CODE, DS: DTAT START: MOV AX, DATA MOV DS, AX BEGIN: LEA AL, STRING1 LEA DL, STRING2 MOX CX, STRING2 – STRING1 REP CMPSB JNE DISPNO MOV AH, 09H LEA DX, YES INT 21H RET
4 、现有( DS )= 2000H , ( BX )= 0100H , ( SI )= 0002H, (20100)= 12H, (20101)=34H, (20102)= 56H, (20103)=78H, (21200)=2AH, (21201)= 4CH, (21202)=B7H, (21203) = 65H,试说明下列各条指令执行完后 AX 的内容。 1) MOV AX,1200H 2) MOV AX,BX 3) MOV AX,[1200H] 4) MOV AX,[BX] 5) MOV AX,1100[BX] 5、完成下列各式补码数的运算,并根据结果设置标志位 SF,CF,ZF,OF,指 出运算结果是否有效 1) 2) 01001001b+10011101b 01000001b-10101011b
5. MOV CX, M MOV SI, 0 NEXT: INC ARRAY[SI] ADD SI, 2 LOOP NEXT 6. MOV DX, A+2 MOV AX, A ADD AX, A ADC DX, A+2 CMP DX, B+2 JL L1 JG L2 CMP AX, B JB L1 L2: MOV AX, 2 JMP EXIT L1: MOV AX, 1 EXIT: HLT 答案: 1、SUB AX, CX SBB DX, BX 解:完成双精度数减法功能,即(DX, AX)-(DX, CX) →(DX, AX) 2、PUSH AX PUSH BX POP AX POP BX 解:将 AX 与 BX 的内容交换 3、假设 DS,ES 初始化到同一数据段
JMP EXIT DISPNO: MOV AH, 09H LEA DX, NO INT 21H EXIT: MOV AX, 4C00H INT 21H CODE ENDS END START 五、 阅读下列各指令序列段,写出它们各完成什么功能 1.SUB AX, CX SBB DX, BX 2.PUSH AX PUSH BX POP AX POP BX 3.假设 DS,ES 初始化到同一数据段 CLD MOV CX, 20 LEA SI, STRING1 LEA DI, STRING2 REP MOVSB 4.CLD MOV CX,COUNT MOV AL, ‘ ‘ ;空格 LEA DI, CHAR_FIELD REP STOSB
CLD MOV CX, 20 LEA SI, STRING1 LEA DI, STRING2 REP MOVSB 解:将 STRING1 中的 20 个字符移到 STRING2 中 4、CLD MOV CX,COUNT MOV AL, ‘ ‘ ;空格 LEA DI, CHAR_FIELD REP STOSB 解: 用空格符 将字符区 CHAR_FIELD 中的字符 全部清除,字符 数存在 COUNT 单元中 5、 MOV CX, M MOV SI, 0 NEXT: INC ARRAY[SI] ADD SI, 2 LOOP NEXT 解:将数组 ARRAY 的 M 个单元分别加 1 6、 MOV DX, A+2 MOV AX, A ADD AX, A ADC DX, A+2 CMP DX, B+2 JL L1 JG L2 CMP AX, B JB L1 L2: MOV AX, 2 JMP EXIT L1: MOV AX, 1
2、CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,DA1 MOV CX,16 XOR BL,BL AGAIN: MOV AL,[SI] HL AL,1 JC NEXT INC BL NEXT:INC SI LOOP AGAIN TEST BL,01H JNE CLC JMP DONE L1: STC DONE: MOV AH,4CH INT 21H CODE ENDS END START L1
答案: 1、AX=012CH,将 AX 内容乘 3 送 BX 中 2、AX=3412H,CX=0078H 3、AL=0A0H,CL=03H 4、INC BX CMP [BX],24H 三、 名词解释 1、 汇编语言 2、 物理地址 3、 SP: 4、 IP: 答案: 1、 汇编语言:用指令的助记符、符号地址、标号等符号书写程序的语言; 2、 物理地址:唯一代表存储空间中每个字节单元的地址; 3、 SP:保存当前栈顶地址的寄存器; 4、 IP:指示下一条要执行指令的地址的寄存器 四、 编程题
汇编语言复习题
一、 简答题 1、存储器地址为什么要分段?物理地址是如何形成的? 2、IBM PC 机的寻址方式(与数据有关的寻址方式)有几种?各举一例说明。 3、80x86 微机的存储器中存放信息如下图所示。试读出 30022H 与 30024H 字节 单元的内容与 30021H 和 30022H 字单元的内容。
(4) MOV AX,[BX] 解:物理地址=(DS)×10H+0100H=20100H (AX)=3412H (5) MOV AX,1100[BX] 解:物理地址=(DS)×10H+0100H+1100H=21200H (AX)=4C2AH 5、 (1)01001001b+10011101b 解: 01001001 + 10011101 ———————— 11100110 (2)01000001b-10101011b 解: 01000001 - 10101011 ———————— => + 01000001 01010101 10010110 果无效 6、有符号定义语句如下: BUFF DB 1,2,3,’123’ EBUFF DB 0 L EQU EBUFF-BUFF 问 L 的值为多少?为什么? BUFF 长度定义为 6 个字节, 2, 3, 解: 根据数据段的定义, 分别存放 1, ‘1’ , ‘2’ , ‘3’ ,而后紧接着为 EBUFF 的地址,故 L 值为 6 由此可得:SF=1 CF=1 ZF=0 OF=1 ———————— 减法计算中,被减数、减数符号相反,结果符号与减数相同,OF=1 计算结 由此可得:SF=1 CF=0 ZF=0 OF = 0 计算结果有效
相关文档
最新文档