汇编语言课后习题答案---郑晓薇(整理后的)

合集下载

汇编语言习题答案

汇编语言习题答案

汇编语⾔习题答案第⼀章.习题1.1⽤降幂法和除法将下列⼗进制数转换为⼆进制数和⼗六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2将下列⼆进制数转换为⼗六进制数和⼗进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3将下列⼗六进制数转换为⼆进制数和⼗进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4完成下列⼗六进制数的运算,并转换为⼗进制数进⾏校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.5下列各数均为⼗进制数,请⽤8位⼆进制补码计算下列各题,并⽤⼗六进制数表⽰其运算结果。

(1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6)-85-(-76)答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0(3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0(4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H;CF=0;OF=1(5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1(6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H;CF=0;OF=01.6下列各数为⼗六进制表⽰的8位⼆进制数,请说明当它们分别被看作是⽤补码表⽰的带符号数或⽆符号数时,它们所表⽰的⼗进制数是什么?(1) D8 (2) FF答:(1) D8H表⽰的带符号数为-40,D8H表⽰的⽆符号数为216;(2) FFH表⽰的带符号数为-1,FFH表⽰的⽆符号数为255。

计算机组成原理与汇编语言课后习题及作业答案

计算机组成原理与汇编语言课后习题及作业答案

《计算机组成原理与汇编语言》课后习题及作业答案王建东2006年9月第一章习题参考答案1、什么是存储程序工作方式?(P.2.)答:(1) 事先编制程序(2) 实现存储程序(3) 自动、连续地执行程序2、采用数字化方法表示信息有哪些优点?(P.5.)答:(1) 抗干扰能力强,可靠性高(2) 在表示数值时,可以获得很宽的表示范围以及很高的精度。

(3) 数字化的信息可以存储,信息传送也比较容易实现。

(4) 可表示的信息类型与范围及其广泛,几乎没有限制。

(5) 能用逻辑代数等数字逻辑技术进行信息处理,着就形成了计算机硬件设计的基础。

3、如果有7X9点阵显示出字符A的图像,请用9个七位二进制代码表示A的点阵信息。

0000000000100000101000100010011111001000100100010010001000000004、数字计算机的主要特点是什么?(P.16.)答:(1) 能在程序控制下自动连续地工作(2) 运算速度快(3) 运算精度高(4) 具有很强的信息存储能力(5) 通用性强,应用领域极其广泛5、衡量计算机的基本指标有哪些?(P.17.)答:(1)基本字长(2)数据通路宽度(3)运算速度(4) 主存储器容量(5) 外存容量(6) 配置的外围设备及其性能(7) 系统软件配置6、举出一种实际计算机,列举出各部件、设备的技术性能及常配置的软件?略7、软件系统一般包含哪些部分?列举你熟悉的三种系统软件。

(P.9.)答:系统软件是一组使计算机良好运行而编制的基础软件。

它包括:(1)操作系统如:Windows 2000,Linux,Unix(2)编译程序、解释程序如:C++编译程序,Peal解释程序(3)各种软件平台如:数据库管理系统8、对源程序的处理有哪两种基本方式?(P.11.)答:对源程序的处理有解释和编译两种类型。

解释方式是边解释边执行。

如:BASIC 它的优点是支持人机对话方式的程序设计,可以边执行边修改;所需要的主存空间较小。

新版汇编语言程序设计1-5章【课后答案】

新版汇编语言程序设计1-5章【课后答案】

新版汇编语言程序设计【课后习题答案】第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〕汇编语言与高级语言相比有什么优缺点?〔解答〕汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。

汇编语言课后答案第6章

汇编语言课后答案第6章

第6章习题6.1 主程序与子程序之间进行参数传递有哪几种方法?简单说明并比较。

6.2 编写一个子程序,把16位二进制数转换为5位十进制数ASCII码。

6.3 编写一个把16位二进制数转换为4位十六进制数ASCII码的子程序6.4 编写一个计算字符串长度的子程序,字符串以0为结尾标志。

入口参数:字符串的首地址指针为DS:SI;出口参数:在AX中返回字符串的长度。

6.5 编写程序,将字符串STING1的内容复制到字符串STRING2中。

要求由子程序来实现字符串的复制,并采用寄存器来传递参数。

6.6 用通过存储单元传递参数的方法完成上题。

6.7 用通过堆栈传递参数的方法完成上题。

6.8 设计程序,从键盘接收一个字符串,显示字符串的长度,要求计算长度的工作由子程序来实现。

6.9 编程计算三个变量的绝对值之和,求绝对值采用子程序结构以简化程序。

6.10 编写程序完成运算X=A*B+C(设各数及结果都不超过65536),A、B、C为从键盘输入的十进制数,要求从键盘接收十进制数并转换为二进制的工作由子程序来完成。

6.11 编写程序,将内存缓冲区BUFFER1中的10个压缩型BCD码数转换成非压缩的BCD码,保存到缓冲区BUFFER2中。

要求转换工作由子程序来完成。

6.12 从键盘输入一组字符,直到按ESC键为止,存储在内存缓冲区BUFFER中。

要求用子程序来实现当输入字符为a~z时,则修改为A~Z。

6.13 阅读下面子程序,说明它完成的功能是什么?子程序的入口参数和出口参数各是什么?SUM16 PROC NEARMOV AX,0MOV DX,0LOP:ADD AX,[BX]ADC DX,0ADD BX,2LOOP LOPRETSUM16 ENDP完成N个数(字)的累加。

入口参数:CX=N,BX=N个数的首地址。

出口参数:累加和,DX:AX。

6.14 编写子程序,把用ASCII码表示的两位十进制数转换为对应的二进制数。

汇编语言课后题答案

汇编语言课后题答案

汇编语⾔课后题答案检测点(1)1个CPU的寻址能⼒为8KB,那么它的地址总线的宽度为13位。

(2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。

(3)1KB的存储器可以存储8192(2^13)个bit,1024个Byte。

(4)1GB是24 (2^30)个Byte、1MB是1048576(2^20)个Byte、1KB是1024(2^10)个Byte。

(5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能⼒分别为:64(KB)、1(MB)、16(MB)、4(GB)。

(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。

则它们⼀次可以传送的数据为:1(B)、1(B)、2(B)、2(B)、4(B)。

(7)从内存中读取1024字节的数据,8086⾄少要读512次,80386⾄少要读256次。

(8)在存储器中,数据和程序以⼆进制形式存放。

检测点(1) 写出每条汇编指令执⾏后相关寄存器中的值。

mov ax,62627 AX=F4A3Hmov ah,31H AX=31A3Hmov al,23H AX=3123Hadd ax,ax AX=6246Hmov bx,826CH BX=826CHmov cx,ax CX=6246Hmov ax,bx AX=826CHadd ax,bx AX=04D8Hmov al,bh AX=0482Hmov ah,bl AX=6C82Hadd ah,ah AX=D882Hadd al,6 AX=D888Hadd al,al AX=D810Hmov ax,cx AX=6246H检测点(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为0010H到1000FH。

(2)有⼀数据存放在内存20000H单元中,现给定段地址为SA,若想⽤偏移地址寻到此单元。

汇编语言参考答案.pdf

汇编语言参考答案.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全译码:使用全部系统地址总线进行译码。

16。32位微机原理、汇编语言及接口技术(第二版)第三章课后习题答案。

16。32位微机原理、汇编语言及接口技术(第二版)第三章课后习题答案。

>第3章3.1:汇编语言有什么特点解:汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数,可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序3.2编写汇编语言源程序时,一般的组成原则是什么?解:(1)完整的汇编语言源程序由段组成(2)一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列(3)需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点(4)所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内(5)通常,程序还需要一个堆栈段3.3 MODEL伪指令是简化段定义源程序格式中必不可少的语句,它设计了哪7种存储模式?各用于创建什么性质的程序?解:3.4如何规定一个程序执行的开始位置,主程序执行结束应该如何返回DOS,源程序在何处停止汇编过程?解:开始位置:用标号指明返回DOS:利用DOS功能调用的4CH子功能来实现汇编停止:执行到一条END伪指令时,停止汇编3.5逻辑段具有哪些属性?解:段定位、段组合和段类型。

3.6给出采用一个源程序格式书写的例题3.1源程序例题3.1:创建一个在屏幕上显示一段信息的程序……解:stack segment stackdb 1024(0)stack endsdata segmentstring db 'Hello,Assembly!',0dH,0aH,‘$’data endscode segment 'code'assume cs:code,ds:data,ss:stackstart: mov dx,offset stringmov ah,9int 21hcode endsend start3.7DOS支持哪两种可执行程序结构,编写这两种程序时需要注意什么?解:(1). EXE程序程序可以有多个代码段和多个数据段,程序长度可以超过64KB通常生成EXE结构的可执行程序(2). COM程序只有一个逻辑段,程序长度不超过64KB需要满足一定条件才能生成COM结构的可执行程序(MASM 6.x需要采用TINY模式)3.8举例说明等价“EUQ”伪指令和等号“=”伪指令的用途解:符号定义伪指令有“等价EQU”和“等号=”:符号名 EQU 数值表达式符号名 EQU <字符串>符号名=数值表达式EQU用于数值等价时不能重复定义符号名,但“=”允许有重复赋值。

汇编语言课后答案

汇编语言课后答案

1-1(1)传统计算机:①控制器;②运算器;③存储器;④输入设备;⑤输出设备。

现代计算机:①处理器;②存储系统;③输入输出系统。

(2) 直接控制硬件,易产生运行速度快,目标代码小的程序。

(3) 处理器中数量多,使用频率改,多种用途的一组寄存器。

(4) 后进先出。

(5) 6个状态标志:CF、AF、ZF、SF、PF、OF;3个控制标志位:DF、IF、TF。

(6) 左边最高位。

(7) 无。

(8) 字母大小写不同,但是表示同一个符号。

(9) 不被汇编。

(10) 源程序和目标代码,各种标识符的说明。

1-2(1) √(2) ×,属于专用寄存器(3) ×,8个16位通用寄存器(4) √(5) ×,不一样,原因见P25(6) √(7) ×,4部分需要分隔符区别(8) √(9) ×,程序终止代表程序执行结束,不意味汇编结束。

汇编是将源程序翻译成目标模块代码的过程,源程序的最后必须有一条END伪指令表明汇编结束,END指令之后的任何内容不被汇编程序处理。

(10) √1-3(1) 1M=220BYTE(2) 8(3) BX,CX,SI,DI,BP,SP(4) 16,DL,DH(5) 4,16(6) 低4位地址全为0,64KB(7) 段地址,偏移地址,IP(8) 目录(9) 操作码,地址码/操作数(10) .ASM,目标模块,.EXE1-4见P21-5见P101-6(1) 0FFF0H(2) 417H(3) 24500H(4) 0BC777H1-7代码段:主要存放程序中的指令代码。

数据段:主要存放当前运行程序所用的数据。

堆栈段:指明当前运行程序所使用的堆栈区域。

1-8见P4-P51-9见课件1-10见P25-P271-11见P16或者课件1-12见P17或者课件1-13FFH,Again,next,h_asscii1-14见P27或者课件2-1(1) 没有,因为8位字节表示的范围:0~255(2) 没有,都是46H(3) 因为(34+67H)*3是常数(4) 以避免与不能以数字开头的标识符混淆(5) 不能,因为8位字节表示的范围:0~255(6) 防止发生非法操作(7) 寻找操作数存储的地址(8) 有效地址直接包含在指令中(9) DS(10) 不正确,因为类型不匹配2-2(1) √(2) ×,小写字母排在大写字母之后(3) √(4) ×,不一样多(5) √(6) √(7) ×,没有对齐,因为0403H是奇数地址,不是偶数地址(8) √(9) √(10) √2-3(1) 97,61,a(2) 0DH,0AH(3) DB,OFFSET(4) 8843H(5) DWORD,4,WORD PTR(6) 3(7) 立即数寻址,寄存器寻址,存储器寻址(8) 寄存器寻址,立即数(9) 4028H(10) DS,SS2-4(1) 255(2) 0(3) 94(4) 2392-5(1) 00010010B(2) 00100100B(3) 01101000B(4) 10011001B2-6(1) 91(2) 89(3) 36(4) 902-7(1) 0B(2) 01111111B (3) 10000001B (4) 11000111B2-8(1) 8A36H ,CF=0 (2) 4AE4H ,CF=1 (3) 0AE10H ,CF=0 (4) 0ECA9H ,CF=12-9数码0~9:30H ~39H大写字母A ~Z :41H ~5AH 小写字母 a ~z :61H ~7AH0DH :回车符CR ,0AH :换行符LF2-10Data segmentmy1b DB ‘Personal Computer ’ my2b DB 20 my3b DB 14hmy4b DB 00010100B my5w DW 20 DUP(?) my6c EQU 100my7c EQU < Personal Computer > Data ends2-11Data segment NUM=5DATALIST DW -10, 2, 5, 4, ? Data ends2-13mov ax, offset mess;AX=114Hmov ax, type buff+type mess+type vard;AX=1+1+4=6mov ax, sizeof varw+sizeof buff+sizeof mess;AX=2*2+10*1+5*1=19mov ax, lengthof varw+ lengthof vard;AX=2+1=3118 H117 H116 H115 H mess 114 H113 H112 H111 H110 H10F H10E H10D H10C H10B Hbuff 10A H109 H108 H107 Hvard 106 H105Hvarb 104H103H102H101Hvarw 100H2-14略2-15var DD 12345678Hmov bx, word ptr var ;BX=5678Hmov cx, word ptr var+2 ;CX=1234Hmov dl, byte ptr var ;DL=78Hmov dh, byte ptr var+3 ;DH=12H var2-16P56 图2-10和图2-112-17(1) 立即数寻址(2) 直接寻址(3) 寄存器寻址(4) 寄存器间接寻址(5) 寄存器相对(6) 寄存器相对寻址(7) 基址变址寻址(8) 相对基址变址寻址3-1(1) MOV SI, BYTE PTR 250 或者MOV AL, BYTE PTR 250(2) DX与CL类型不匹配(3) 堆栈的操作“后进先出”(4) MOV BX, OFFSET[SI]汇编时并不知道指令在执行时SI等于什么,所以是错误的(5) 结果是0(6) 目的操作数(7) 大写=小写AND DFH ;D5位清0小写=大写OR 20H ;D5位置1大/小写=小/大写XOR 20H ;D5位求反(8) 利用CF和OF结果判断(9) DX.AX(10) 逻辑与运算规则类似于二进制的乘法。

《汇编语言》作业答案

《汇编语言》作业答案

3545233.doc 制作:江家宝《IBM—PC汇编语言程序设计》课后作业参考答案目录第一章:基础知识 ........................................................................................ 2第二章:80×86计算机组织......................................................................... 2第三章:80×86的指令系统和寻址方式..................................................... 3第四章:汇编语言程序格式........................................................................ 7第五章:循环与分支程序设计.................................................................... 9第六章:子程序结构 ................................................................................ 12第七章:高级汇编语言技术.................................................................... 20第八章:输入输出程序设计.................................................................... 22第九章:BIOS和DOS中断 (23)3545233.doc 制作:江家宝第一章:基础知识1.1、用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(3) 4095 答:(3) 4095 =1111 1111 1111B=FFFH1.2、将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 答:(1) 10 1101B=2DH=451.3、将下列十六进制数转换为二进制数和十进制数:(4) 1234 答:(4) 1234H=1 0010 0011 0100B=46601.4、完成下列十六进制数的运算,并转换为十进制数进行校核:(3) ABCD-FE 答:(3) ABCD-FEH=AACFH=437271.5、下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。

汇编语言习题解答(1)

汇编语言习题解答(1)

汇编语⾔习题解答(1)习题⼀1.1 简述微型计算机的发展层次。

1.2 简述汇编语⾔源程序、汇编程序和⽬标程序的关系。

1.3 写出下列各数的原码、反码和补码。

(1) 0.0000 (2) 0.1001 (3) -10011.4 已知[N]反=1.0101,求[N]原,[N]补和N。

1.5 ⽤原码、反码、补码完成下列运算。

(1) 01010011-00110011 (2) 0.100100-0.1100101.6 转换下列各数为8421BCD码。

(1)(11011011)2 (2)(456)10 (3)(174)8 (4)(2DA)161.7 数值9876H分别看成有符号数和⽆符号数,转换为相应的⼗进制数。

1.8 写出⼗进制数98的压缩BCD码和⾮压缩BCD码。

1.9 根据下列8位⼆进制数,计算[S1+S2]补和[S1-S2]补,并判断是否溢出。

(1)S1=+22,S2=+33 (2)S1=+22,S2=-33(3)S1=+100,S2=+30 (4)S1=-100,S2=-30习题⼀解答:1.1略1.2略1.3(1)[0.0000]原=0.0000 [0.0000]反=0.0000 [0.0000]补=0.0000(2)[0.1001]原=0.1001 [0.1001]反=0.1001 [0.1001]补=0.1001(3)[-1001]原=11001 [-1001]反=10110 [-1001]补=101111.4[N]反=1.0101 [N]原=1.1010 [N]补=1.0110 N=-0.10101.5(1)原码运算:⽐较可知,正数较⼤,⽤正数减负数,结果为正反码运算:01010011-00110011=[01010011]反+[-00110011]反=001010011 +[100110011]反=001010011+111001100=000100000 补码运算:01010011-00110011=[01010011]补+[-00110011]补=001010011 + [100110011]补=001010011+111001101=000100000(2)原码运算:⽐较可知,负数较⼤,⽤负数减正数,结果为负反码运算:0.100100-0.110010=0.100100+[1.110010]反=0.100100+1.001101=1.110001补码运算:0.100100-0.110010=0.100100+[1.110010]补=0.100100+1.001110=1.1100101.6(1) (11011011)2=(219)10=(001000011001)BCD(4) (2DA)16=(730)10=(011100110000)BCD1.7(1)9876H看成有符号数时,默认为负数的补码,转换为⼗进制数是:-26506(2)9876H看成⽆符号数时,转换为⼗进制数是:390301.8(1)98的压缩BCD码为:10011000B(2)98的⾮压缩BCD码为:0000100100001000B1.9(1)[S1+S2]补=[S1]补+[S2]补=00010110+00100001=00110111,⽆溢出[S1-S2]补=[S1]补+[-S2]补=00010110+11011111=11110101,⽆溢出(2)[S1+S2]补=[S1]补+[S2]补=00010110+11011111=11110101,⽆溢出[S1-S2]补=[S1]补+[-S2]补=00010110+00100001=00110111,⽆溢出(3)[S1+S2]补=[S1]补+[S2]补=01100100+00011110=10000010,有溢出[S1-S2]补=[S1]补+[-S2]补=01100100+11100010=01000110,⽆溢出(4)[S1+S2]补=[S1]补+[S2]补=10011100+11100010=01111110,有溢出[S1-S2]补=[S1]补+[-S2]补=10011100+00011110=10111010,⽆溢出习题⼆2.1 8086有哪些寄存器组?各有什么⽤途?2.2 8086流⽔线技术是怎样通过总线接⼝部件和执⾏部件来进⾏的?2.3 何谓最⼩⼯作模式?最⼤⼯作模式?2.4 什么是逻辑地址?8086系统中的物理地址是怎样形成的?假如CS=4000H,IP=2200H,其物理地址是多少?2.5 阐述8086系统中存储器的结构特点。

汇编语言程序设计课后习题答案习题2详解

汇编语言程序设计课后习题答案习题2详解

习题2写出从汇编语言源程序的建立到产生可执行文件的步骤和上机操作命令。

步骤:1.编辑形成文件(MY为文件名)2.汇编形成文件3.连接形成MYEXE文件上机操作:1.进入dos命令行方式2.在汇编语言的系统工作文件目录下,键入:Edit 按回车键编辑3.MASM MY 按回车键汇编4.LINK MY按回车键连接5.MY 按回车键运行6.DEBUG 按回车键进行调试。

列表文件.LST实在什么阶段产生的列表文件有哪些内容列表文件是在汇编的时候产生的执行 MASM 程序名程序名程序名按回车键就会在汇编的同时产生列表文件。

列表文件里有源程序和机器语言清单,指令和变量的偏移地址等等。

写出定义一个代码段的语句,段名为MYPRG。

MYPRG SEGMENTASSUME CS:MYPRGStart:Code endsEnd start源程序中用什么语句来结束程序的执行用什么语句来表示程序的结束和指出程序执行的起点。

MOV ah,4chINT 21h 结束程序的执行并返回到操作系统。

Code ends 程序结束End start 指出程序执行的起点汇编语言源程序的文件扩展名是什么把他改为.exe扩展名以后,可以认为是可执行程序么答:源文件的扩展名为.ASM。

改为.exe后不可能是可执行程序,源文件只有经历汇编行成机器指令,然后连接才能形成可执行程序列出子目录C:\YOUPRG下的扩张名为.ASM的所有文件,在D盘根目录下建立一个子目录,并进子目录MYPRG,再把C:YOUPRG下的文件YOU .ASM复制到D :\MYPRG下。

写出完成以上要求的DOS 命令。

答:C:\YOUPRG>DIY *.ASMC:\YOUPRG>D:D:\MD MYPRGD:\CD MYPRGD:\MYPRG>COPY C:\YOUPRG> D:\MYPRG2.7下图为DEBUG调入的可执行程序,回答以下问题:(1)程序的起始物理地址是多少结束地址是多少(2)CS寄存器的值是什么(3)程序的功能是什么(4)写出查看DS:0处内容的DEBUG命令。

汇编语言程序设计(第二版)课后题答案

汇编语言程序设计(第二版)课后题答案

4.1、判断下列标识符的合法性。

1)、code 合法2)、Data 合法3)、ABCDH 合法4)、1abcH 不5)、eax 不6)、01 合法7)、A?@ 合法8)、www@zsu 合法9)、***********.cn不10)、AX$DX 合法11)、_BX 合法12)、CX 不4.2、按下面要求写出相应的数据定义语句(未指定变量名的,可任意指定或省缺)。

1)、定义一个字节区域,第一个字节的值为20,其后跟20个初值为0的连续字节;DB 20,20 DUP(0)2)、定义一个以0为结束符的字符串,其初值为:The course is easy;DB “The course is easy”,03)、定义一个以'$'为结束符的字符串,该串中含有换行符和回车符;DB 0D,0A,”$”4)、定义100个字,其初值为0;DW 100 DUP(0)5)、从一个偶地址开始定义一个字变量word;EVENWORD DW ?6)、先定义一个字符串String,其偏移量指定为10,其初值为"ABCDEF",然后再定义3个字类型的数组Data,要求String和Data的偏移量相同;ORG 10STRING DB "ABCDEF"ORG 10DATA DW 3 DUP(?)7)、定义一个字符串String,其初值为"12345678",再定义4个字类型的数组Data,要求String和Data共享同一片内存单元;STRING DB "12345678"ORG $-8DATA DW 4 DUP (?)4.3、把下列C语言的变量定义语句改写成与之等价的汇编语言语句。

1)、char ch1, ch2[3], ch3[]="Are you ready?", ch4='Q';CH1 DB ?CH2 DB 3 DUP (?)CH3 DB "Are you ready?",0CH4 DB “Q”2)、int w1, w2[5], w3=0x1234, w4[]={90, 89, 432, 344};W1 DW ?W2 DW 5 DUP (?)W3 DW 1234HW4 DW 90,89,432,3443)、long int d1=1234, d2, d3[10], d4[]={1, 2, 3, 4, 5, 6};D1 DD 1234D2 DD ?D3 DD 10 DUP(?)D3 DD 1,2,3,4,5,64.4、假设4.3题中三组变量在内存中是连续存放的,且变量ch1的偏移量是20H,试求出其它每个变量的偏移量。

汇编语言程序设计教程(第二版)习题参考答案

汇编语言程序设计教程(第二版)习题参考答案

汇编语言程序设计教程(第二版)习题参考答案第1章计算机基础知识1.计算机的应用分哪几个方面,请举例说明书中未提到的领域的计算机应用。

科学计算、数据处理、计算机控制、计算机辅助设计、人工智能、企业管理、家用电器、网络应用。

书中未提及的如:远程教育、住宅小区控制、飞行系统控制与管理等。

2.简述计算机的发展过程,请查阅相关资料,列出微机的发展过程。

电子管、晶体管、集成电路、大规模集成电路以IBM为例,微机的发展:4004、8008、8080、8086/8088、80286、80386、80486、Pentium 系列3.计算机的字长是怎么定义的,试举例说明。

计算机能同时处理二进制信息的位宽定义为计算机的字长。

如8086能同时进行16位二进制数据的运算、存储和传输等操作,该机器的字长为16位。

4.汇编语言中的基本数据类型有哪些?数值型数据和非数值型数据。

非数值数据如字符、字符串、逻辑值等。

(1)7BCH=011110111100B=1980D(2)562Q=101110010B=370D(3)90D=01011010B=5AH(4)1110100.111B=164.7Q=74.EH30H~39H 41H~5AH 61H~7AH9.在汇编语言中,如何表示二进制、八进制、十进制和十六进制的数值?用相应进制的数值加上进制标记即可。

二进制用B,如10101010B八进制用Q,如437Q。

十进制用D或不用,如54D,或54。

十六进制用H,如27A8H10.完成下列二进制数的加减运算。

(1)10101010 + 11110000 (2)11001100 + 01010100=110011010 =100100000(3)11011010 - 01010010 (4)11101110 - 01001101=10001000 =1010000111.完成下列十六进制数的加减运算。

(1)0FEA9 - 8888=7621H (2)0FFFF - 1234=EDCBH(3)0EAC0 + 0028=EAE8H (4)3ABC + 1678=5134H12.完成下列BCD码的运算。

汇编语言课后答案第3章

汇编语言课后答案第3章

汇编语言课后答案第3章第3章习题3.1 填空题(1)汇编语言指令由两部分组成:___操作码__________表示指令的操作内容,_____操作数________表示指令在执行过程中所用到的数据信息。

(2)在16位CPU的寄存器间接寻址方式中,若用__SI_____、__DI______、__BX______作为间接寻址的寄存器,则操作数在____DS___段中;若用___BP____作为间接寻址的寄存器,则操作数在___SS_____段中。

(3)在16位CPU的基址变址寻址方式中,基址寄存器可以为__BX_____或__BP______,变址寄存器可以为___SI____或___DI_____,若用__BX_____作为基址寄存器,则操作数在____数据段___段中;若用___BP____作为基址寄存器,则操作数在__堆栈______段中。

(4)设AX=2000H,BX=2300H,则在执行了指令CMP AX,BX后,标志CF=__1_______、ZF=____0____。

(5)当执行指令DIV BL后,被除数在_AX_______中,所得商在_______AL__中,余数在_____AH___中。

3.2 选择题1.若栈顶的物理地址为12000H,当执行完指令PUSH BX后,栈顶的物理地址为(D)A. 12001HB. 12002HC. 11FFFHD. 11FFEH2.在程序运行过程中,确定下一条指令的物理地址的计算表达式是(B)A. DS×16+SIB. CS×16+IPC. SS×16+SPD. ES×16+DI3.下面指令执行后,将改变寄存器AX内容的指令是(B)A. OR AX,AXB. AND AX,BXC. TEST AX,01HD.CMP AX,14.设AH=79H,当执行指令ADD AH,98H后,标志位CF和0F 的值分别为(D )A. 0,0B. 0,1C. 1,0D. 1,15.设AL=0A0H,要使结果AL=50H,应执行的指令是( D)A. AND AL,0F0HB. NOT ALC. OR AL,0F0HD. XOR AL,0F0H6.设AH=68H,当执行指令SUB AH,72H后,标志位CF和SF 的值分别为(D )A. 0,0B. 0,1C. 1,0D. 1,17.要使寄存器AL的最低位置1,应使用下面的指令( C )A. AND AL,01HB. XOR AL,01HC. OR AL,01HD. NOT AL8.要使BL寄存器的最高位清0,应使用下面的指令(D)A. AND BL,80HB. OR AL,7FHC. OR BL,80HD. AND BL,7FH9. 将寄存器AX的内容乘以2的正确指令序列是( A )A. SHL AX,1B. SHR AX,1C. ROL AX,1D. RCR AX,110.下列指令执行后,寄存器AL中的内容为(C)MOV AL,90HADD AL,ALADC AL,ALA. 20HB. 240HC. 41HD. 241H3.3 说明下列指令中源操作数的寻址方式。

汇编语言课后习题答案

汇编语言课后习题答案

汇编语⾔课后习题答案2.1已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12345678H,[21200H]~[21203H]依次存放2A4C B765H,说明下列每条指令执⾏完后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)mov20h,ah〔解答〕(1)两操作数类型不匹配(2)IP指令指针禁⽌⽤户访问(3)⽴即数不允许传给段寄存器(4)段寄存器之间不允许传送(5)两操作数类型不匹配(6)⽬的操作数应为[SI](7)源操作数应为[BX+DI](8)⽴即数不能作⽬的操作数〔习题2.5〕已知SS=2200H、SP=00B0H,画图说明执⾏下⾯指令序列时,堆栈区和SP的内容如何变化?mov ax,8057h push 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=12h10011;10001001+10001001100010010add al,9dh;AL=0afh00101;00010010+1001110110101111cmp al,0bch;AL=0afh10101;10101111-10111100*01000011sub al,al;AL=00h01001dec al;AL=0ffh00101 ;00000000-00000001*11111111inc al;AL=00h01001 ;11111111+00000001*11111111必考:〔习题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的状态。

汇编语言习题答案(2)

汇编语言习题答案(2)

汇编语言习题答案(2)第1章自测练习一、选择题(四选一)1.某个加法运算结果使标志ZF=1,则标志SF为A。

A 0B 1C 不改变原来的状态D 不确定2.可以为存储器操作数提供偏移地址的寄存器组是B。

A AX、BX、CX、DXB BX、BP、SI、DIC SP、IP、BP、DXD CS、DS、ES、SS3.8086/8088确定下一条执行指令物理地址的计算表达式为D。

A DS× 16+EAB ES× 16+EAC SS×l6+SPD CS×l6+IP4.某系列微机对存储器分段,如果每个段最多的字存储单元(16位二进制)是32K,那么表示段内字节单元偏移地址的二进制位数应是C位。

A 14B 15C 16D 205.十进制数-100的8位二进制数的补码为 D 。

A 10011011B 01100100C 10011101D 100111006.下列各个8位二进制数的补码中,绝对值最大的是 A 。

A 10001000B 11111110C 00000100D 000000017.16位有符号数的补码所表示的十进制数的范围是B。

A -32767~+32768B -32768~+32767C -65535~+65536D 0~655358.对数值83A7H作逻辑非运算后的结果是D。

A 83A8H B、73A8H C、7C59H D、7C58H9.指令“mov cx,[bp+16]”的源操作数采用的段寄存器是 B 。

A CSB SSC DSD ES10.指向程序堆栈区的段寄存器是 B 。

A CSB SSC DSD ES11.有效地址是指 C 。

A 存储器操作数的物理地址B 存储器操作数的段地址C 存储器操作数的偏移地址D 立即数的偏移地址12.寄存器间接寻址方式中,操作数在 C 中。

A 通用寄存器B 段寄存器C 主存单元D 堆栈13.指令“mov ax,es:[bx][si]”源操作数的物理地址是D。

汇编语言课后习题及答案 按章节 超全面

汇编语言课后习题及答案 按章节 超全面

`00第一章课外练习题一、单项选择题:1.从键盘输入的字符,在计算机内存储的是它的(A)(A)二进制编码(B)四进制编码(C)八进制编码(D)十六进制编码2.6位无符号二进制数能表示的最大十进制数是(B)。

(A)64 (B)63 (C)32 (D)31 3.十进制数269变换为十六进制数是(C)。

(A)10B (B)10C (C)10D (D)10E 4.8位的微型计算机系统是以16位来表示地址,则该微机系统有(C)个地址空间。

(A)255 (B)65535 (C)65536 (D)1048576 5.8位有符号二进制数能表示的最大十进制数是(D)。

(A)256 (B)255 (C)128 (D)127 6.十六进制数88H,可表示成下面几种形式,请找出错误的表示(D)。

(A)无符号十进制数136 (B)带符号十进制数-120(C)压缩型BCD十进制数88 (D)8位二进制数-8的补码表示7.有一个数值152,它与十六进制数6A相等,那么该数值是(B)。

(A)二进制数(B)八进制数(C)十进制数(D)四进制数8.7位ASCII总共可表示(C)个符号。

(A)256 (B)127 (C)128 (D)255 9.4B的字长是(C)。

(A)8位(B)16位(C)32位(D)64位二、判断题(判断每题正误,对的在题后括号内划“√”,错的划“×”)1.字节通常用英文单词“Bit”来表示(×)。

2.目前广泛使用的Pentium计算机其字长为5个字节(×)。

3.存储器中将8个相邻的二进制位作为一个单位,这种单位称为字节(√)。

4.微型计算机的字长并不一定是字节的整数倍(×)。

三、填空题1.8位有/无符号整数的表示范围写成16进制形式为(80~~7F)/(00~~FF)。

2.己知:计算机中有一个“01100001”编码,如果把它看作是无符号数,它是十进制什么数(97);如果认为它是BCD,则表示(01100001)BCD;认为它是某个ASCII,则代表(a)字符。

汇编语言课后答案

汇编语言课后答案

汇编语言课后答案第一章. 习题用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH 将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=255将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=4660完成下列十六进制数的运算,并转换为十进制数进行校核:⑴ 3A+B7 (2) 1234+AF (3) ABCD-FE ⑷ 7AB X 6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB X6FH=35325H=217893下列各数均为十进制数,请用8 位二进制补码计算下列各题,并用十六进制数表示其运算结果。

(1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6)-85-(-76)答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H ;CF=0;OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H ;CF=1;OF=0(3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H ;CF=0;OF=0(4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=B=0A1H;CF=0;OF=1(5) (-85)-76=1010 1011B-0100 1100B=10101011B+10110100B=01011111B=5FH;CF=0;OF=1(6) -85-(-76)=1010 1011B-1011 0100B=10101011B+01001100B=B=0F7H;CF=0;OF=0下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答:⑴D8H表示的带符号数为-40 , D8H表示的无符号数为216;(2) FFH 表示的带符号数为-1 ,FFH 表示的无符号数为255。

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

习题一1 无符号数: 11010011=211=D3H,01110111=119=77H,10000011=131=83H,00101111=47=2FH,10101010=170=AAH带符号数:11010011= -45=D3H,01110111=+119=77H,10000011= -125=83H,00101111=+47=2FH,10101010= -86=AAH25E8AH,0BE6H,3DEH,4940H300011101+00110101=01010010=52H=82 01001001+11101000=00110001=31H=49 10111110+01010010=00010000=10H=16 10011010+11110001=10001011=8BH= -117 400101001+01010011=01111100+00000110=1 0000010=82H=8201110011-00100100=01001111-00000110=01001001=49H=4901100110+00011000=01111110+00000110=1 0000100=84H=8410010+01110101=00111+00000110=00111=0207H=2075 000020A3H,FF94H,00003456H,007FH,FFFFEC00H6 无符号数:0~65535,0000H~FFFFH;带符号数:-32768~+32767,8000H~7FFFH7(1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII码,十进制数38的压缩BCD码(2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255(3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码(4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码8(1) 108=01101100B=6CH,补码01101100B,压缩BCD码01000,ASCII码313038H (2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H (3) –15=11110001B=F1H,补码11110001B,ASCII码2D3135H(4) 254=11110B=00FEH,补码11110B,压缩BCD码10100,ASCII码323534H9(1) 56+63=01110111B,CF=0,SF=0,ZF=0,OF=0(2) 83-45=00100110B,CF=0,SF=0,ZF=0,OF=0(3) -74+29=11010011B,CF=0,SF=1,ZF=0,OF=0(4) -92-37=01111111B,CF=1,SF=0,ZF=0,OF=110回车、换行、响铃、ESC键、空格键、、P、p习题二9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节)10 CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP11 字节单元保存8位数,字单元保存16位数。

根据源操作数的属性确定要访问的是字节单元还是字单元。

12 对于字节单元来说,偶地址和奇地址一样;对于字单元而言,最好用偶地址保存,可减少CPU的访存次数。

13 首单元的物理地址=38AE8H,末单元的物理地址=38AE8H+7FFFH=40AE7H16 (1)物理地址=27679H (2) 物理地址=20F92H (3) 物理地址=20F92H(2)和(3)的物理地址是一样的。

说明逻辑地址不唯一,多个逻辑地址可对应到同一个物理单元上。

17 代码段CS:IP的物理地址=55A84H 堆栈段SS:SP的物理地址=4DB65H 数据段DS:BX的物理地址=17678H 附加段ES:DI的物理地址=2BA41H18 当前栈指针所指单元的物理地址是1522CH。

堆栈区中还能保存254个字。

19 执行E 20020 执行U 10021 执行R CX,然后输入10022 执行E DS:0 ‘a’ ‘b’ ‘c’ ‘d’习题三3MOV AX,BX 源操作数为寄存器寻址,EA 无,物理地址无MOV AX,1290H 立即寻址,EA 无,物理地址无MOV AX,[BX] 寄存器间接寻址,EA=1290H, 物理地址=2FBB0HMOV AX,DS:[1290H] 直接寻址,EA=1290H, 物理地址=2FBB0HMOV AX,[BP] 寄存器间接寻址,EA=6756H, 物理地址=26A56HMOV [DI][BX],AX 目的操作数为基址变址寻址,EA=3C06H, 物理地址=32526HMOV ES:[SI],AX 寄存器间接寻址,EA=348AH, 物理地址=50CAAH7MOV AX,[CX] 错。

CX不能为间址寄存器MOV AL,1200H 错。

立即数超出8位寄存器围MOV AL,BX 错。

两个操作数不匹配MOV [SI][DI],AX 错。

两个变址寄存器不能在一起MOV ES:[DX],CX 错。

DX不能为间址寄存器MOV [AX],VALUE 错。

AX不能为间址寄存器MOV COUNT,[SI] 错。

两个操作数不能都是存储单元8(1) MOV AX,BX (2) MOV CL,15 (3) ADD AX,[BX](4) MOV [BX+SI],AL (5) MOV AX,VALUE[SI] (6) SUB AX,DS:[2000H]9(1) ADD AX,[X+4]MOV Y,AX(2) MOV BX,4ADD AX,X[BX]MOV Y,AX(3) MOV BX,4MOV SI,OFFSET XADD AX,[BX+SI]MOV Y,AX10 立即寻址方式中操作数(立即数)和指令一起存放在代码段中。

习题四10(1) DATA SEGMENTX DW 0Y DW 0DATA ENDS(2) STRING DB ’Computer’(3) COUNT DB 100 DUP(?)(4) PI EQU 3.14(5) VALUE LABEL BYTE11 (1)对。

(2)错。

260超出了字节围。

(3)错。

X3是字节型,1234H是字型,不匹配。

(4)对。

(5)错。

缺少DUP。

(6)对。

12 (1)AL=3。

(2)AX=2103H。

(3)DX=TABLE 的偏移地址。

(4)CL=33H(5)BX=TABLE的段地址。

(6)BX=1。

(7)DX= TABLE的偏移地址。

13MOV DX,2012HMOV AX,5D68HMOV CX,1003HMOV BX,49A6HADD AX,BX (SUB AX,BX)ADC DX,CX (SBB DX,CX)14 SUB AX,CXSBB DX,015 MOV AX,extraMOV ES,AX16(1) MOV AL,16ADD AL,XMOV BL,5IMUL BLMOV Z,AX(2) MOV BL,4MOV AL,XIDIV BLSUB AL,YMOV Z,AX(3) MOV AL,XMOV BL,8IMUL BLMOV DX,AXMOV AH,0MOV AL,YMOV BL,16IDIV BLCBWADD DX,AXMOV AH,0MOV AL,WIMUL ALSUB DX,AXMOV Z,DX(4) MOV AL,XADD AL,YMOV BL,XSUB BL,YMOV AH,0IMUL BLMOV Z,AXMOV AL,XIDIV YCBWSUB Z,AX17 Z= (5+22-15)*14= 16818 从伪指令END START处获知程序从START标号开始。

19 (1)减法:(2) 加法:MOVAX,8576HMOV AX,8576H MOVBX,9988HMOV BX,9988HSUBAX,BXADD AX,BX结果:AX=EBEEH 结果:AX=1EFEHCF=1,OF=0,ZF=0,SF=1 CF=1,OF=1,ZF=0,SF=021 (1) MOV AL,56HMOV BL,34HADD AL,BLDAAMOV Y1,AL(2) MOV AX,128HMOV BX,35HSUB AX,BXDASMOV Y2,AL(3) MOV AL,68HMOV BL,23HADD AL,BLMOV BL,45HSUB AL,BLDASMOV Y3,AL22(1) MOV AX,0708HMOV BX,0406HADD AL,BLADD AH,BH ;不用带进位加AAA ;加法调整,含进位调整MOV BX,AXXCHG AH,AL ;高4位调整AAAMOV BH,ALMOV Z1,BX ;保存十位、各位,百位在CF中(2) MOV AX,0905HMOV BX,0207HSUB AL,BLSUB AH,BH ;不用带借位减AAS ;减法调整MOV Z2,AX(3) MOV AX,0102HMOV BX,0006HMUL BX ;乘法先不用调整MOV BX,0303HSUB AX,BXAAS ;减法调整MOV Z3,AX(4) MOV AX,0704HMOV BX,0108HADD AL,BLADD AH,BHAAA ;加法调整MOV BL,6AAD ;除法调整DIV BLMOV BH,AH ;余数保存在BH AND AX,000FHAAA ;商调整MOV Z4,AX ;保存商23.model small.databuff db ?.codestart:mov ax,datamov ds,axmov ah,1 ;键盘输入int 21hsub al,30h ;去掉ASCII码mov buff,almov ah,4chint 21hend start24.model small.codestart:mov ah,1 ;键盘输入int 21hsub al,20h ;变为大写mov dl,almov ah,2int 21hmov ah,4chint 21hend start25.model small.datax db 12hy db 34h.codestart: mov ax,datamov ds,axmov al,xadd al,y ;结果为46Hmov ah,al ;AH=46Hand al,0fh ;AL=06Hmov cl,4rol ah,cl ;AH=64Hand ah,0fh ;AH=04Hadd ax,3030h ;AX=3436Hmov bx,axmov dl,bh ;显示4mov ah,2int 21hmov dl,bl ;显示6int 21hmov ah,4chint 21hend start26data segmentx db'0.000','1.000','1.414','1.732','2.00 0'db'2.236','2.449','2.646','2.828','3.00 0' ;建立字符表y db 5 dup(?) ;存放查到平方根u db 3 ;要查的数data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov al,u ;要查的数mov cl,5mul cl ;u*5=15(号单元开始)mov ah,0mov bx,ax ;地址保存到bxmov si,0let1:mov al,x[bx] ;取出平方根数字mov y[si],al ;存入yinc siinc bxloop let1 ;循环取出5次mov ah,4chint 21hcode endsend start27.model small.datax1 db 'zhang yan $' ;为10个字符宽度x2 db 'li li $'x3 db 'wang lan $'x4 db 'zhao xue $'x5 db 'li jiang $'u db 3 ;要查的学号.codestart:mov ax,datamov ds,axmov al,u ;给出学号mov cl,10mul cl ;u*10=30(号单元开始)mov ah,0mov dx,ax ;地址保存到dxmov ah,9 ;9号功能显示字符串int 21hmov ah,4chint 21hend start28 编程实现公式计算Z=X/4+16Y。

相关文档
最新文档