汇编语言课后习题答案---郑晓薇(整理后的)doc资料
汇编语言习题答案
汇编语⾔习题答案第⼀章.习题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章汇编语言基础知识〔习题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.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,若想⽤偏移地址寻到此单元。
汇编语言程序设计课后习题答案
第四章汇编语言程序设计习题答案一、单项选择题1.C2.B3.C4.C5.C6.A7.A8.C9.B10. D11.B12.B13.D14.C15.C16.A17.D18.D19.A20. C21.B22.D23.D24. A二、多项选择题1.ABCEF2.ACE3.AC4.ABCD三、填空题1.PARA2.1,2,60,120, 13.SEGMENT,ENDS4.12005.段内转移,段间转移6.AH7.过程,PROC,RET,NEAR,FAR8.LEA BX,BUF9.1, 410..0504H11.ASM,EXE12.立即寻址,直接寻址四、判断题××××V V V××V五、程序分析题1. 32.12H,3412H3.46H,73H4.(1) 从目的串中查找是否包含字符‘0’,若找到则停止,否则继续重复搜索。
(2) ZF=1, 说明已找到字符ZF=0, 说明未找到字符CX 0,说明中途已找到字符退出CX=0,且ZF=0说明串中无字符‘0’5.1, 0, 3, 2, 5, 4, 7, 6, 9, 86.87H,81H7.44AAH,44D5H8.DEC CX,JNC,JZ9.JNZ L210.ADC DX,0,CLC11.AAS12.STOSB13.1,3,1,2, 214.(2000H)=39H (2001H)=00H将(2000H),(2001H)两相邻单元中存放的未组合型BCD码压缩成组合型BCD码,并存入(2000H)单元,0 (2001H)15.A)2345H,6780HB)将DX、AX中存放的32位二进制数向左移动4位16.0 ,1009H0对数据段内1000H~1008H单元置数,依次送入1,2,4,8,16,32,64,128,0共九个17.20H,10,T18.①$-BUF②ASSUME CS:CODE,DS:DATA③MOV DS,AXMOV AX,0⑤JLE NEXT⑥JNZ NEXT⑦JNZ LOPA⑧BEGIN19.不相同,第一个数据段72H在前,04在后,后一个04H在前,72H在后。
汇编语言程序设计课后答案
汇编语言程序设计课后答案第二章(更新完毕~)1。
在80X86微机的输入输出指令中,I/O端口号通常是由DX寄存器提供的,但是有时也可以在指令中直接指定00---FFH的端口号。
试问,可直接由指令指定的I/0端口数~解答:有256个~~ 书上有原话~~可以找到~~2。
有两个16位字节1EE5H和2A3CH分别存放在80X86微机的存储器的000B0H 和000B3H单元中,请用图表示出它们在存储器里的存放情况。
解答:如下图.第一个络子为000B0H字单元,注意,是字单元~~第五个格子为000B3H字单元~,学计算机的,竟然连个表格也做不好!3. 图在书上,我就不画了,太麻烦~~直接答吧~解答: 30022H字节单元内容: ABH 30024H字节单元内容: EFH 30021H字单元内容: AB34H 30022H字单元内容: CDABH4.对了,看这个的人.,肯定都有那本书,所以,以后我就不抄题目哈~~~解答: 这三个物理地址都是3017AH,正好说明了不同的段地址和偏移地址对应同一物理地址~~5.解答: CS+IP 第一个字的物理地址为: 0AAA40H6.解答: 图,实在不知道怎么画,待我想办法~~ 条件标志OF,SF,ZF,CF,的值依次为:0,0,0,07。
下列操作可使用那些寄存器?(1)加法和减法AX ,BX,CX,DX,当然,还有这几个通用寄存器的高低位了,如AH ,AL ,.等~~(2)循环计数CX(3)乘法和除法DX,AX,AH,AL(4)保存段地址CS ,DS,ES,SS(5)表示运算结果为O FLAGS(6)将要执行的指令地址IP(7) 将要从堆栈取出数据的地址BP,SP,SS8。
可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP9。
一一对应;5--A 4--B 2--C 3--D 12--E 9--F 11--G 10--H 13--I 8--J 7--K 6---L 1--M 15--N 14--O第三章1。
汇编语言课后答案
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) 逻辑与运算规则类似于二进制的乘法。
汇编语言习题解答(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系统中存储器的结构特点。
计算机 汇编语言课本答案
附录:《IBM—PC汇编语言程序设计》习题参考答案第一章.习题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=0 1.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答:(1) D8H表示的带符号数为-40,D8H表示的无符号数为216;(2) FFH表示的带符号数为-1,FFH表示的无符号数为255。
汇编语言程序设计课后习题答案习题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命令。
汇编语言程序设计教程(第二版)习题参考答案
汇编语言程序设计教程(第二版)习题参考答案第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.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)第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)字符。
汇编语言课后习题解答
汇编语言课后习题解答汇编语言作为一种低级编程语言,被广泛应用于计算机系统的底层开发与优化。
在学习汇编语言的过程中,习题解答是一个非常重要的环节,它有助于我们深入理解汇编语言的原理和应用。
本文将针对汇编语言课后习题进行解答和分析。
第一题:需求:写一个汇编程序,从键盘输入两个数,求其和并输出。
解答:```assembly.datanum1 dw ?num2 dw ?sum dw ?.codemain procmov ax, @datamov ds, axmov ah, 1int 21h ;读取第一个数sub al, '0' ;将ASCII码转换为二进制数 mov num1, almov ah, 1int 21h ;读取第二个数sub al, '0' ;将ASCII码转换为二进制数 mov num2, aladd al, num1mov sum, aladd sum, '0' ;将结果转换为ASCII码mov ah, 2mov dl, sumint 21h ;输出结果mov ax, 4C00hint 21h ;程序结束main endpend main```第二题:需求:编写一个汇编程序,判断一个数是否是素数,并输出结果。
解答:```assembly.datanum dw ?.codemain procmov ax, @datamov ds, axmov ah, 1int 21h ;读取一个数sub al, '0' ;将ASCII码转换为二进制数mov num, almov bx, 2 ;用bx寄存器从2开始除mov cx, 0 ;用cx统计除数的个数loop_start:mov dx, 0mov ax, numdiv bx ;用ax除以bx,余数存在dxcmp dx, 0je loop_end ;如果余数为0,则跳出循环inc bx ;除数加1inc cx ;除数个数加1cmp bx, axjg loop_end ;如果除数大于被除数,跳出循环 jmp loop_start ;循环继续loop_end:cmp cx, 0je prime ;如果除数个数为0,则是素数jne not_prime ;否则不是素数prime:mov ah, 2mov dl, 'Y' ;输出判断结果为是素数int 21hjmp exitnot_prime:mov ah, 2mov dl, 'N' ;输出判断结果为不是素数int 21hexit:mov ax, 4C00hint 21hmain endpend main```通过以上两个题目的解答,我们可以看出汇编语言的编写方法和具体步骤。
汇编语言课后答案
汇编语言课后答案第一章. 习题用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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,4940H 300011101+00110101=0101001 0=52H=8201001001+11101000=0011000 1=31H=4910111110+01010010=0001000 0=10H=1610011010+11110001=1000101 1=8BH= -117400101001+01010011=0111110 0+00000110=10000010=82H= 82 01110011-00100100=01001111-00000110=01001001=49H=49 01100110+00011000=0111111 0+00000110=10000100=84H= 840000000100110010+01110101 =0000000110100111+0000011 0=0000001000000111=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码0000000100001000,ASCII码313038H(2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H(3) –15=11110001B=F1H,补码11110001B,ASCII码2D3135H (4)254=0000000011111110B=00F EH,补码0000000011111110B,压缩BCD 码0000001001010100,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, 物理地址=2FBB0H MOV AX,DS:[1290H] 直接寻址,EA=1290H, 物理地址=2FBB0H MOV AX,[BP] 寄存器间接寻址,EA=6756H, 物理地址=26A56H MOV [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) SUBAX,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,8576H MOV AX,8576HMOVBX,9988H MOV BX,9988HSUBAX,BX ADD AX,BX结果:AX=EBEEH 结果:AX=1EFEH CF=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,4ch int 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=3436H mov 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 .000'db'2.236','2.449','2.646','2.828','3 .000' ;建立字符表y db 5 dup(?) ;存放查到平方根u db 3 ;要查的数data endscode segmentassume cs:code,ds:data start: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 ;地址保存到dx mov ah,9 ;9号功能显示字符串int 21hmov ah,4chint 21hend start28 编程实现公式计算Z=X/4+16Y。