汇编语言补充作业和答案分析解析
《微机系统与接口技术》汇编补充作业 1. 寻址方式小结。请根据已填的格式,完成下面表中的空白部分: 寻址方式 操作数物理地址(PA) 指令格式举例 立即寻址 操作数由指令给出 MOV DX, 100H; (DX)←100 寄存器寻址 操作数在寄存器中 MOV AX, BX; (AX)←(BX) 直接寻址 操作数的有效地址由指令直接给出 MOV AX, [1234H]
寄存器间接寻址 (BX) PA=(DS)×16+(SI) (DI) 或=(SS)×16+(BP) MOV AX, [BX] MOV AX, [SI] MOV AX, [DI] MOV AX, [BP] 基址寻址 PA=(DS) ×16+(BX)+位移量 PA=(SS) ×16+(BP)+位移量 MOV AX, BUFF[BX] MOV AX, BUFF[BP] 变址寻址 PA=(DS) ×16+(SI)+ 位移量 PA=(DS) ×16+(DI)+ 位移量 MOV AX, BUFF[SI] MOV AX, BUFF[DI] 基址变址寻址 PA=(DS) ×16+(BX)+(SI) PA=(DS) ×16+(BX)+(DI) PA=(SS) ×16+(BP)+(SI) PA=(SS) ×16+(BP)+(DI) MOV AX, [BX][SI] MOV AX, [BX+DI] MOV AX, [BP][SI] MOV AX, [BP+DI] 基址变址相对寻址 PA=(DS)×16+(BX)+(SI) +位移量 PA=(DS)×16+(BX)+(DI)+位移量 PA=(SS)×16+(BP)+(SI) +位移量 PA=(SS)×16+(BP)+(DI)+位移量 MOV AX, BUFF[BX][SI] MOV AX, BUFF[BX+DI] MOV AX, BUFF[BP][SI] MOV AX, BUFF[BP+DI]
2.指出下列8088指令的错误: (1) MOV AH, BX (2) MOV [BX], [SI] (3) MOV AX, [SI][DI] (4) MOV MYDAT[BX][SI], ES:AX (5) MOV BL, 1000 (6) MOV CS, AX (7) MOV DS, BP (8) XLAT BX (9) IN AX, 0382H (10) OUT AX, 20H 答:(1 )两个操作数长度不一致 (2 )两个操作数不能都是存储器操作数 (3 )变址寻址方式不能使用两个变址寄存器 (4 )寄存器寻址没有段超越用法 (5 )两个操作数长度不一致(或 1000 超出字节数据范围) (6 )CS不能做目的寄存器 (7)段寄存器只能由通用寄存器对其操作,BP不能对通用寄存器进行操作 (8 )XLAT 中BX是隐含操作数 (9 )IN指令中16 位端口地址要用 DX作为操作数 (10)OUT指令两个操作数反了
3. 按要求编写下面的程序段 1) 利用移位指令计算DX=3×AX+7×BX,假设为无符号数运算,无进位。 2) 用逻辑运算指令实现数字0~9的ASCII码与非压缩BCD码的互相转换 3) 把DX.AX中的双字右移4位 4) 假设从4A00H:0000开始的4个字节中存放了4个非压缩的BCD码,现在按照低地址对低位,高地址对高位的原则,将他们合并到DX中。 答:1)MOV CX, AX SHL AX, 1 ; AX*2 ADD AX, CX ; AX*3 MOV DX, BX MOV CL, 3 SHL DX, CL ; BX*8 SUB DX, BX ; BX*7 ADD DX, AX
2)MOV AL, ’0’ LOP: AND AL, 0FH INC AL CMP AL, ‘:’ JNE LOP MOV AL, 0 LOP1: OR AL, 30H INC AL CMP AL, 0AH JNE LOP1 3) MOV CL, 4 SHR AX,CL MOV BL, DL SHR DX, CL SHL BL, CL OR AH, BL
4)MOV AX, 4A00H MOV DS, AX MOV CL, 4 MOV SI, 0 MOV AL, [SI] AND AL, 0FH MOV DL, AL INC SI MOV AL, [SI] SHL AL, CL OR DL, AL INC SI MOV AL, [SI] AND AL, 0FH MOV DH, AL INC SI MOV AL, [SI] SHL AL, CL OR DH, AL
4. 请说明下面两段程序的功能 1) mov si, 600h mov di, 601h mov ax, ds mov es, ax mov cx, 256 std rep movsb
2) cld mov ax, 0fefh mov cx, 5 mov bx, 3000h mov es, bx mov di, 2000h rep stosw 答:1 )从DS:600H 开始将向低地址方向的256 字节向高地址移动一个字节位置。 2 )从3000:2000h 开始连续存放 5 个0fefh
5. 假设DS=2000H. BX=1256H, SI=528FH, 位移量TABLE=20A1H,[232F7H]=3280H, [264E5H]=2450H, 试问执行下列段内间接寻址的转移指令后,转移到有效地址是什么? i. JMP BX ii. JMP TABLE[BX] iii. JMP [BX][SI] 答: (1)1256H (2)3280H (3)2450H
6. 判断下列程序段跳转到条件 (1) XOR AX, 1E1EH JE EQUAL (2) TEST AL, 10000001B JNZ THERE (3) CMP CX, 64H JB THERE 答:(1) (AX)=1E1EH (2) (AL) 的最高位和/ 或最低位为1 (3) (CX)<64H
7. 如果条件跳转指令的跳转目标范围超出-128~127的范围,该如何处理?举例说明。 答:可以把跳转条件做一些调整,利用无条件跳转的跳转范围大,来达到目的,如: CMP AX, 33 JE LONG …… ; 大于 127 字节 LONG: 改为: CMP AX, 33 JNE SHOETER JMP LONG SHORTER:……; 大于127 字节 …… LONG:
8. 按要求编写下面的程序段 1) 当DX高4位全为0时,使AX=0,否则AX=-1。 2) 已知字符串string包含有256BYTE的内容,将其中所有的‘$’符号替换成空格(‘ ’)。 3) 所谓回文字符串是指一个字符串正读和倒读都是一样的,例如字符串‘ABCDEFFEDCBA’就是一个回文字符串,而字符串‘ABCFDDCAB’就不是回文字符串。现在有一个字符串string,包含有16个字节的内容,请编写程序段,判断该字符串是否为回文字符串。 4) 统计以‘$’字符结束的字符串string的字符个数。 答: 1 ) TEST DX, 0F0H JZ OK1 XOR AX, AX JMP OK2 OK1:MOV AX, -1 Ok2: …
2 ) MOV CX, 256 MOV AL, ‘$’ MOV AH, ‘ ’ LEA BX, string LP: CMP [BX], AL JNZ NEXT MOV [BX], AH NEXT:INC BX DEC CX JNZ LP 3) LEA SI,string MOV DI, 15 ADD DI, SI LP: MOV AL, [SI] CMP AL, [DI] JNZ NO ; 不是回文 INC SI DEC DI CMP SI, DI JB LP …… ; 是回文 NO:…… ; 不是回文
4) MOV CX,0 ;放字符个数 LEA SI, string LP: MOV AL, [SI] CMP AL, ’$’ JE EXIT INC SI INC CX JMP LP EXIT:
9. 设置CX=0,则LOOP指令将执行多少次?例如: mov cx, 0 delay: loop delay 答:将执行65536 次
10. 在下面程序段的括号中如果分别放上下面的指令 (1) LOOP L20 (2) LOOPNE L20 (3) LOOPE L20 试说明,当程序执行完时 AX, BX, CX, DX四个寄存器的内容分别是什么? MOV AX, 01
汇编语言程序设计(第四版)【课后答案】
汇编语言程序设计第四版【课后习题答案】第1章汇编语言基础知识〔习题1.1〕简述计算机系统的硬件组成及各部分作用。
〔解答〕CPU:包括运算器、控制器和寄存器组。
运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为处理单元提供所需要的数据。
存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。
外部设备:实现人机交换和机间的通信。
〔习题1.2〕明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB。
〔解答〕主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。
辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速度慢。
RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电后能保存信息。
存储器由大量存储单元组成。
为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常称做I/O端口。
KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。
〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序?〔解答〕用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编译通过的程序就是目标程序。
〔习题1.4〕汇编语言与高级语言相比有什么优缺点?〔解答〕汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。
汇编语言程序设计题目以及答案
汇编语言程序设计题目以及答案[P1] 汇编语言程序设计题目以及答案汇编语言是一种底层计算机语言,它直接使用机器指令来编写程序。
本文将介绍一些汇编语言程序设计的题目,并提供相应的答案。
通过这些题目和答案的学习,读者可以更好地理解和掌握汇编语言程序设计的基本概念和技巧。
[题目一] 计算两个数的和要求:编写汇编程序,计算两个给定的整数的和,并将结果存储在指定的内存位置中。
答案:```assemblysection .datanum1 dd 10 ; 第一个整数num2 dd 20 ; 第二个整数result dd 0 ; 结果section .textglobal _start_start:mov eax, [num1] ; 将num1值存入寄存器eaxadd eax, [num2] ; 将num2值与eax寄存器中的值相加mov [result], eax ; 将结果存储到result变量mov eax, 1 ; 准备执行系统调用mov ebx, 1 ; 文件描述符:标准输出mov ecx, result ; 输出的数据mov edx, 4 ; 数据长度int 0x80 ; 执行系统调用mov eax, 1 ; 准备执行系统调用xor ebx, ebx ; 正常退出int 0x80 ; 执行系统调用```[题目二] 字符串反转要求:编写汇编程序,将一个给定的字符串反转,并将结果存储在指定的内存位置中。
答案:```assemblysection .datastr db 'Hello', 0 ; 待反转的字符串section .bssreverse resb 6 ; 存储反转后的字符串section .textglobal _start_start:mov esi, str ; esi指向待反转的字符串mov edi, reverse ; edi指向存储反转结果的位置 mov ecx, 5 ; 字符串长度为5mov ebx, 1 ; ebx用于计数reverse_loop:mov al, [esi+ebx]mov [edi-ebx+5], alinc ebxloop reverse_loopmov byte [edi+5], 0 ; 在末尾添加字符串结束符 mov eax, 4 ; 准备执行系统调用mov ebx, 1 ; 文件描述符:标准输出mov ecx, reverse ; 输出的数据mov edx, 6 ; 数据长度int 0x80 ; 执行系统调用mov eax, 1 ; 准备执行系统调用xor ebx, ebx ; 正常退出int 0x80 ; 执行系统调用```[题目三] 求平均数要求:编写汇编程序,计算给定的一组整数的平均数,并将结果存储在指定的内存位置中。
汇编语言程序设计 习题与答案.ppt
❖第一章 基础知识 ❖第二章 80x86计算机组织 ❖第三章 指令系统和寻址方式 ❖第四章 汇编语言程序格式 ❖第五章 循环与分支程序设计 ❖第六章 子程序设计 ❖第七章 高级汇编语言技术 ❖第八章 输入输出程序设计
2020-6-17
谢谢阅读
1
第一章 基础知识 1. P14,1、2、6、7题。
系统程序。 13. 连接程序I:把若干模块连接成可执行文件的系统程序 14. 指令O:告诉CPU要执行的操作,在程序运行时执行 15. 伪指令N:由汇编程序在汇编过程中执行的指令。
谢谢阅读
2020-6-17
13
第三章 指令系统和寻址方式
• P107,1、2、3、4、5、8、13、14、15、17、 18、19、23、25、27、29、30、32、33、35、 37、38、49、51题。
– 逻辑地址:3010:007A
• 3010H * 16D + 7AH = 30100H + 7AH = 3017AH
– 总结:
• 同一物理地址,可用不同逻辑地址表示。
谢谢阅读
2020-6-17
11
第二章 80x86计算机组织 — 2.9
2.9:CPU、存储器、堆栈、IP、SP、状态标志 1. CPUM:分析、控制、执行指令的部件, 由ALU与寄存器等组成。 2. 存储器C:存储程序、数据等信息的记忆装 置,微机有RAM与ROM两种。 3. 堆栈D:以后进先出方式工作的存储空间。 4. IPB:指示下一条指令的地址。 5. SPA:保存当前栈顶地址的寄存器。 6. 状态标志L:记录指令操作结果的标志。 7. 控制标志K:控制操作的标志,如DF位。 8. 段寄存器J:保存各段起始地址的寄存器。
数学系汇编语言大补试卷B及答案
数学系汇编语言大补试卷(B)2006 年~2007 年学年度第二学期(说明:答案必须写在答题纸上,否则不给分)一,单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分)1.指令JMP FAR PTR DONE属于()A.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址2.下列叙述正确的是()A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL指令D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是()A.12CSBH B.12B6BH C.12C59H D.12BFEH4.在下列指令的表示中,不正确的是()A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC CS D.MUL CL 5.在进行二重循环程序设计时,下列描述正确的是()A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内B.外循环初值应置外循环之内;内循环初值应置内循环之内C.内、外循环初值都应置外循环之外D.内、外循环初值都应置内循环之外,外循环之内6.条件转移指令JNE的测试条件为()A.ZF=0 B.CF=0 C.ZF=1 D.CF=17.8086CPU在基址加变址的寻址方式中,变址寄存器可以为()A.BX或CX B.CX或SI C.DX或SI D.SI或DI8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在()中。
A.数据段中偏移量为3236H的字节B.附加段中偏移量为3234H的字节C.数据段中偏移量为3234H的字节D.附加段中偏移量为3236H的字节9.执行如下程序:MOV AX,0MOV BX,1MOV CX,100A:ADD AX,BXINC BXLOOP AHLT执行后(BX)=()A.99 B.100 C.101 D.10210.上题的程序执行后(AX)=()A.5000 B.5050 C.5100 D.515011.对于下列程序段:AGAIN:MOV AL,[SI]MOV ES:[DI],ALINC SIINC DILOOP AGAIN 也可用______指令完成同样的功能。
汇编语言课后习题答案
2.1已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12 34 56 78H,[21200H]~[21203H]依次存放2A 4C B7 65H,说明下列每条指令执行完后AX寄存器的内容。
(1)mov ax,1200h(2)mov ax,bx(3)mov ax,[1200h](4)mov ax,[bx](5)mov ax,[bx+1100h](6)mov ax,[bx+si](7)mov ax,[bx][si+1100h]〔解答〕(1)AX=1200H(2)AX=0100H(3)AX=4C2AH ;偏移地址=bx=0100h(4)AX=3412H ;偏移地址=bx=0100h(5)AX=4C2AH ;偏移地址=bx+1100h=1200h(6)AX=7856H ;偏移地址=bx+si=0100h+0002h=0102h(7)AX=65B7H ;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h〔习题2.2〕指出下列指令的错误(1)mov cx,dl(2)mov ip,ax(3)mov es,1234h(4)mov es,ds(5)mov al,300(6)mov [sp],ax(7)mov ax,bx+di(8)mov 20h,ah〔解答〕(1)两操作数类型不匹配(2)IP指令指针禁止用户访问(3)立即数不允许传给段寄存器(4)段寄存器之间不允许传送(5)两操作数类型不匹配(6)目的操作数应为[ SI ](7)源操作数应为[BX+DI](8)立即数不能作目的操作数〔习题2.5〕已知SS = 2200H、SP = 00B0H,画图说明执行下面指令序列时,堆栈区和SP的内容如何变化?mov ax,8057hpush axmov ax,0f79hpush axpop bxpop [bx]〔解答〕mov ax,8057hpush axmov ax,0f79hpush axpop bx ;bx=0f79hpop [bx] ;DS:[0f79h]=8057h〔习题2.6〕给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:mov al,89hadd al,aladd al,9dhcmp al,0bchsub al,aldec alinc al〔解答〕mov al,89h ; AL=89h CF ZF SF OF PFadd al,al ; AL=12h 1 0 0 1 1; 1000 1001+1000 100110001 0010add al,9dh ; AL=0afh 0 0 1 0 1; 0001 0010+ 1001 11011010 1111cmp al,0bch ; AL=0afh 1 0 1 0 1; 1010 1111-1011 1100* 0100 0011sub al,al ; AL=00h 0 1 0 0 1dec al ; AL=0ffh 0 0 1 0 1 ; 0000 0000- 0000 0001*1111 1111inc al ; AL=00h 0 1 0 0 1 ;1111 1111+0000 0001*1111 1111必考:〔习题2.10〕指出下列指令的错误:(1)xchg [si],30h (2)pop cs(3)sub [si],[di](4)push ah(5)adc ax,ds(6)add [si],80h(7)in al,3fch(8)out dx,ah〔解答〕(1)xchg的操作数不能是立即数(2)不应对CS直接赋值(3)两个操作数不能都是存储单元(4)堆栈的操作数不能是字节量(5)adc的操作数不能是段寄存器(6)没有确定是字节还是字操作(7)in不支持超过FFH的直接寻址(8)out只能以AL/AX为源操作数〔习题2.11〕给出下列各条指令执行后的结果,以及状态标志CF、OF、SF、ZF、PF的状态。
《汇编语言程序设计》必考试题及答案
汇编语言程序设计试题及答案一.名词解释(本大题共5小题,每小题3分,共15分)试解释下列名词的含义。
1.寄存器:计算机系统内,位于CPU内部的存储单元,CPU访问此类存储单元不需要使用总线。
2.物理地址:CPU通过地址总线向外发送的20位地址,在访问内存单元前,CPU必须先将CPU内部的逻辑地址转换为物理地址。
3.段基值:逻辑地址的一个组成部分,用于指示一个段在内存中的起始地址。
4.寻址方式:指令获取操作数的方式。
5.补码:计算机系统内部用于表示带符号数的一种编码,正整数的补码为其真值本身,负整数的补码为其真值变反加1的结果。
二.计算题(本大题共5小题,每小题4分,共20分)试按照各小题的要求给出计算结果。
1.将十进制数100分别转换为二进制、十六进制数,它们的表示形式分别为多少?答案:二进制为 01100100B,十六进制为64H2.假设(DS)=0C00H,(BX)=0210H,对于指令MOV DS:100H[BX],AL,其目的操作数的物理地址为多少?答案:EA = (BX)+0100H = 0310H,物理地址 = (DS)*16 + EA = 0C000H + 0310H = 0C310H3.假设(BX)=0100H,(SI)=0020H,对于指令ADD DL,[BX][SI],其源操作数的偏移量为多少?答案:EA = (BX)+(SI)+ 0 = 0120H4.假设当前(SP)=0060H,连续执行5条PUSH指令后,(SP)=?答案:每执行一条PUSH指令,(SP)被减2,因此执行5条PUSH指令后,(SP)=0060H – 5*2 =0060H -000AH = 0056H5.对于一个十进制数– 80,其二进制补码表示形式为多少?答案:首先求得二进制真值为– 01010000B,负数补码为变反加1的结果,即 10110000B三.排错题(本大题共4小题,每小题5分,共20分)每小题列出了一条指令,判断该指令有无语法错误,如果存在语法错误,请指出具体的错误原因,判断正确给2分,分析正确给3分,判断错误不给分。
汇编语言参考答案.pdf
汇编参考答案注:题目旁的数字为课本页码1.处理器的性能指标。
1处理器的性能用字长、时钟频率、集成度等基本的技术参数来衡量。
字长:表明处理器每个时间单位可以处理的二进制数据位数,如一次运算、传输的位数。
时钟频率表明处理器的处理速度,反映了处理器的基本时间单位。
集成度表明处理器的生产工艺水平,通常用芯片上集成的晶体管数量来表达。
2.冯诺依曼的基本思想。
10(1)采用二进制形式表示数据和指令,指令有操作码和地址码组成(2)将程序和数据存放在存储器中,计算机在工作时从存储器取出指令加以执行,自动完成计算任务。
(3)指令的执行时顺序的,即一般按照指令在存储器中的存放的顺序执行,程序分支由转移指令实现。
(4)计算机有存储器运算器,控制器。
输入设备和输出设备五大基本部件组成,并规定了5部分的基本功能。
3.有三种系统总线是哪些13或154地址总线、数据总线、控制总线4.计算机系统的层次结构17184(1)第0层数字电路层(2)第1层控制层(3)第2层机器语言层(4)第3层操作系统层(5)第4层汇编语言层(6)第5层高级语言层(7)第6层用户层5.软件与硬件的等价性原理19软件与硬件的等价性原理是指软硬件在逻辑功能上的等价,并不意味着性能和成本的等价。
6.区别如下概念:助记符,汇编语言,汇编语言程序和汇编程序助记符:帮助记忆指令的符号,反应指令的功能。
处理器指令助记符可以是任何一条处理器指令,表示一种处理器操作。
44汇编语言:为了便于理解与记忆,将机器指令用助记符代替形成的一种语言18汇编语言程序:用汇编语言书写的程序就是汇编语言程序,或称汇编语言源程序。
汇编程序:汇编语言程序翻译成机器语言的过程称为汇编,完成汇编工作的程序就是汇编程序(Assembler)。
187.移位指令SHL SAL SHR SAR ROL ROR RCR93SHL(Shift Left):逻辑左移SHR(Shift Right):逻辑右移SAL(Shift Arithmetic Left):算术左移SAR:算术右移ROL(Rotate Left):循环左移ROR(Rotate Right):循环右移RCR(Rotate through Carry Right):带进位循环右移8.什么是存储器芯片的全译码和部分译码?各有什么特点194全译码:使用全部系统地址总线进行译码。
汇编语言实验答案 (王爽)
汇编语言答案检测点1.1(第8页)(1)13(2)1024,0,1023(3)8192,1024(4)2^30,2^20,2^10(5)64,1,16,4(6)1,1,2,2,4(7)512,256(8)二进制注意:1.第4题中的符号'^'指求幂运算(如:2^30指2的30次方)检测点2.1(第18页)----------------------(1)写出每条汇编指令执行后相关寄存器中的值。
第一空:F4A3H第二空:31A3H第三空:3123H第四空:6246H第五空:826CH第六空:6246H第七空:826CH第八空:04D8H第九空:0482H第十空:6C82H第十一空:D882H第十二空:D888H第十三空:D810H第十四空:6246H(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
解答如下:mov ax,2add ax,axadd ax,axadd ax,ax检测点2.2(第23页)----------------------(1)00010H,1000FH(2)1001H,2000H第2题说明:因为段的起始地址要为16的倍数。
所以当段地址小于1001H或大于2000H时CPU都无法寻到。
检测点2.3(第33页)答:CPU修改了4次IP的值。
第1次:执行完mov ax,bx后第2次:执行完sub ax,ax后第3次:读入jmp ax后第4次:执行完jmp ax后最后IP的值为0实验1查看CPU和内存,用机器指令和汇编指令编程(第33页)-----------------------------------------------------1.预备知识:Debug的使用<此部分略>2.实验任务(第43页)(1)<此部分略>(2)<此部分略>(3)通过DEBUG中的D命令查看到主板的生产日期[以月、日、年,分隔符为'/'的格式]存储在内存ffff:0005~ffff:000C(共8个字节单元中)处。
汇编语言课后习题答案 郑晓薇
习题一1 分别将下列二进制数作为无符号数和带符号数转换为十进制和十六进制数,01110111,,00101111 ,查看正确答案无符号数: =211=D3H,01110111=119=77H,=131=83H,00101111=47=2FH,=170=AAH带符号数:= -45=D3H,01110111=+119=77H,= -125=83H,00101111=+47=2FH,= -86=AAH2 十六进制运算1A52H+4438H ,3967H-2D81H,37H×12H ,1250H×4H查看正确答案5E8AH,0BE6H,3DEH,4940H3 将十进制数变为8位补码,做运算(结果用二进制、十六进制、十进制表示)29+53,73-24,-66+82 ,-102-15查看正确答案00011101+00110101=01010010=52H=8201001001+=00110001=31H=49+01010010=00010000=10H=16+==8BH= -117》4 用压缩BCD码计算(结果用二进制、BCD码、十进制表示)29+53,73-24,66+18 ,132+75查看正确答案00101001+01010011=01111100+00000110==82H=8201110011-00100100=01001111-00000110=01001001=49H=4901100110+00011000=01111110+00000110==84H=8400000000+01110101=00000001+00000110=00000011=0207H=2075 符号位扩展(字节扩展为字,字扩展为双字)20A3H,94H ,3456H ,7FH ,EC00H查看正确答案000020A3H,FF94H,00003456H,007FH,FFFFEC00H6 若机器字长为16位,其无符号数表示范围是多少带符号数表示范围是多少分别用十进制和十六进制表示。
张雪兰等著汇编语言程序设计第、章习题答案(精品)
第三章习题答案2.分别指出下列指令中源操作数和目的操作数的寻址方式。
⑴MOV BX,12 ⑵MOV AL,128 ⑶MOV [BX],DX⑷MOV DS,AX ⑸MOV V AR,8 ⑹MOV [1000H],DX⑺MOV 6[BX],CX ⑻MOV AX,[BX][SI] ⑼MOV TAB[BP][DI],AL 答案:3.在8086=0200H,(BP)=0100H,V AR的偏移量为0060H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,请计算它们的物理地址是多少?⑴MOV BX,12 ⑵MOV AL,128 ⑶MOV [BX],DX⑷MOV ES:[SI],AX ⑸MOV V AR,8 ⑹MOV [1000H],DX⑺MOV 6[BX],CX ⑻MOV [BX][SI],AX ⑼MOV 6[BP][SI],AL答案:4.设(DS)LAB 的偏移量为0060H,(20300H)=50H,(20301H)=01H,(20306H)=0BH,(20306H)=05H,试确定以下JMP指令转向的物理地址是多少?⑴JMP BX ⑵JMP 6[BX]答案:⑴∵ (IP)=(BX)=0300H∴转向的物理地址为12300H⑵∵ (IP)=(DS:[BX+6])=(20306H)=050BH∴转向的物理地址为1250BH5.设(CS)=2000H,CS:0100H单元有一条JMP SHORT LAB指令,若其中的位移量为:⑴60H ⑵80H ⑶0E0H试写出转向目标的物理地址是多少?答案:因为CS:0100H处存放两字节指令,所以当执行该指令时(IP)=0102H⑴转向的物理地址为:(CS)*10H+(IP)+0060H=20162H⑵转向的物理地址为:(CS)*10H+(IP)+0FF80H=20082H⑶转向的物理地址为:(CS)*10H+(IP)+0FFE0H=200E2H6.试述以下指令的区别:⑴MOV AX,3000H 与MOV AX,[3000H]⑵MOV AX,MEM 与MOV AX,OFFSET MEM⑶MOV AX,MEM 与LEA AX,MEM答案:⑴ MOV AX,3000H指令源操作数的寻址方式为立即寻址方式,指令执行结果为:(AX)=3000H。
