汇编语言课后作业
汇编语言课后习题解答

.第1章基础知识检测点1.1(第9页)(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。
(2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。
(3)1KB的存储器可以存储8192(2^13)个bit,1024个Byte。
(4)1GB是1073741824(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)1KB=1024B,8KB=1024B*8=2^N,N=13。
(2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。
(3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。
(4)1GB=1073741824B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。
(5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。
这样的CPU最多可以寻找2的N次方个内存单元。
(一个内存单元=1Byte)。
(6)8根数据总线一次可以传送8位二进制数据(即一个字节)。
(7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。
(8)在存储器中指令和数据没有任何区别,都是二进制信息。
汇编语言课后习题答案 郑晓薇

习题一1 分别将下列二进制数作为无符号数和带符号数转换为十进制和十六进制数11010011,01110111,10000011,00101111 ,10101010查看正确答案无符号数: 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=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+11101000=00110001=31H=4910111110+01010010=00010000=10H=1610011010+11110001=10001011=8BH= -1174 用压缩BCD码计算(结果用二进制、BCD码、十进制表示)29+53,73-24,66+18 ,132+75查看正确答案00101001+01010011=01111100+00000110=10000010=82H=8201110011-00100100=01001111-00000110=01001001=49H=4901100110+00011000=01111110+00000110=10000100=84H=84 0000000100110010+01110101=0000000110100111+00000110=0000001000000111=0207H=2075 符号位扩展(字节扩展为字,字扩展为双字)20A3H,94H ,3456H ,7FH ,EC00H查看正确答案000020A3H,FF94H,00003456H,007FH,FFFFEC00H6 若机器字长为16位,其无符号数表示范围是多少?带符号数表示范围是多少?分别用十进制和十六进制表示。
汇编语言课后习题答案 王爽主编

补全编程,利用jcxz指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。
assume cs:codecode segmentstart: mov ax,2000hmov ds,axmov bx,0s: mov ch,0mov cl,[bx]jcxz ok ;当cx=0时,CS:IP指向OKinc bxjmp short sok: mov dx,bxmov ax ,4c00hint 21hcode endsend start检测点9.3补全编程,利用loop指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。
assume cs:codecode segmentstart: mov ax,2000hmov ds,axmov bx,0s:mov cl,[bx]mov ch,0inc cxinc bxloop sok:dec bxmov dx,bxmov ax,4c00hint 21hcode endsend start书P101,执行loop s时,首先要将(cx)减1。
“loop 标号”相当于dec cxif((cx)≠0) jmp short 标号检测点10.1补全程序,实现从内存1000:0000处开始执行指令。
assume cs:codestack segmentdb 16 dup (0)stack endscode segmentstart: mov ax,stackmov ss,axmov sp,16mov ax, 1000hmov ax, 0push axretfcode endsend start执行reft指令时,相当于进行:pop ippop cs根据栈先进后出原则,应先将段地址cs入栈,再将偏移地址ip入栈。
检测点10.3下面的程序执行后,ax中的数值为多少?内存地址机器码汇编指令执行后情况1000:0 b8 00 00 mov ax,0 ax=0,ip指向1000:31000:3 9a 09 00 00 10 call far ptr s pop cs,pop ip,ip指向1000:91000:8 40 inc ax1000:9 58 s:pop ax ax=8hadd ax,ax ax=10hpop bx bx=1000hadd ax,bx ax=1010h用debug进行跟踪确认,“call far ptr s”是先将该指令后的第一个字节段地址cs=1000h入栈,再将偏移地址ip=8h入栈,最后转到标号处执行指令。
(完整版)扬州大学汇编语言课后习题

练习一1.在计算机内部,计算机能够直接执行的程序语言是。
A. 汇编语言B o C++语言C.机器语言D。
高级语言2. 在堆栈段中,存放栈顶地址的寄存器是oA. IPB. SPC. BXD. BP3. 指令指针寄存器IP用来存放代码段中的偏移地址。
在程序运行的过程中,它始终指向。
A. 下一条指令的首地址B.下一条指令的地址C.当前指令的首地址D.当前指令的地址4. 编译程序的功能是oA.检查源程序中的语法错误和逻辑错误B.将源程序编译成目标程序C.改正源程序中的语法错误D.将高级语言源程序翻译成汇编语言源程序5. 用户为了解决自己的问题,用汇编语言所编写的程序,称为oA.目标程序B.源程序C.可执行程序D.汇编程序6. 计算机中用来存储程序、数据等信息的记忆装置是oA.控制器B.运算器C.CPUD.存储器7. 在宏汇编中,源程序必须通过____________ 生成目标代码,然后用连接程序将其转化为可执行文件,该文件可在系统中运行。
8 当SS =3000H,SP =0100H 时,执行PUSH AX 指令后,堆栈顶部的物理地址是( )A. 30100HB. 30098HC. 30102HD. 300FEH9 设10000010B 分别以原码、补码及反码表示时,则对应的十进制数依次是( )A. -82 、-126、-2B. -2 、-125 、126C. -2 、-126 、-125D. -82 、-125 、12510若寄存器AX、BX、CX DX的内容分别为18, 19, 20, 21时,依次执行PUSH AX PUSH BXPOP CX POP DX后,寄存器CX的内容为 ____________________ o11若物理地址为2D8C0H偏移量为B6A0H则段地址为 ______________ o练习二1. 8086 在基址变址的寻址方式中,基址、变址寄存器分别是( )oA. AX或CX BX或CX B . BX或BP、SI 或DIC. SI 或BX、DX或DI D . CX或DI、CX或SI2. 设(SS)=338AH , (SP)=0450H,执行PUSHBX和PUSHF两条指令后,堆栈顶部的物理地址是()A. 33CECHB. 33CF2HC. 33CF4HD. 33CE8H3. 设(AX)=0C544H,在执行指令ADD AH, AL后,相应的状态为( )。
汇编语言作业及参考答案

汇编语言作业答案1.3什么是汇编语言源程序、汇编程序、目标程序?见教材P41.10数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0Dh、0aH对应的是什么字符?见教材P81.11计算机中有一个“‘编码,如果把它认为是无符号数,它是十进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符?97,61h,a1.13什么是DOS和POM-BIOS?DOS:磁盘操作系统;POM-BIOS:可编程的基本输入输出系统2.3 举例说明CF和OF标志的差异。
见教材P20-212.5 什么是8086中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?请将如下逻辑地址用物理地址表达:(1)FFFFh:0 (2)40h:17h (3)2000h:4500h (4)B821h:4567h见教材P22-23 FFFF0h 417h 24500h BC777h2.6 8086有哪4种逻辑段,各种逻辑段分别是什么用途?见教材P232.10 说明下列指令中源操作数的寻址方式?如果BX=2000H,DI=40H,给出DX的值或有效地址EA的值。
(1)mov dx,[1234h] 直接寻址(2) mov dx,1234h 立即寻址(3) mov dx,bx 寄存器寻址(4) mov dx,[bx] 寄存器间接寻址(5) mov dx,[bx+123h] 寄存器相对寻址(6) mov dx,[dx+di] 基址变址寻址(7) mov dx,[bx+di+1234h] 相对基址变址寻址2.11 已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12 34 56 78H,[21200H]~[21203H]依次存放2A 4C B7 65H,说明下列每条指令执行后AX寄存器的内容。
(1)mov ax,1200h 1200h(2) mov ax,bx 0100h(3) mov ax,[1200h] 2a4ch(4) mov ax,[bx] 1234h(5) mov ax,[bx+1100h] 2a4ch(6) mov ax,[bx+si] 5678h(7) mov ax,[bx][si+1100h] b765h2.15 已知SS=FFAOH、SP=00B0H,画图说明执行下列指令序列时,堆栈区和SP的内容如何变化?mov ax,8057hpush ax SP=00B2 [00B1]=80hmov ax,0f79hpush ax SP=00B2 [00B2]=0f79hpop bx BX=0f79h SP=00B1pop [bx] SP=00B0h2.16给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:mov al ,89h 不影响标志add al, al 见教材P38add al, 9dh 见教材P38cmp al, 0bch 见教材P40sub al, al 见教材P39dec al 见教材P39inc al 见教材P382.17设均为双字数据,分别存放在地址为的存储单元中,他们的运算结果存入单元。
汇编语言第三章课后习题

1..(1)立即寻址没有(2)直接寻址7237H (3)使用BX的寄存器寻址没有(4)使用BX的间接寻址637DH (5)使用BX的寄存器相对寻址0D5F0H (6) 基址变址寻址8E18H (7)相对基址变址004FH 2。
根据下列要求,写出相应的汇编指令。
(1)ADD DX,BX(2) ADD AL,[BX][SI](3) ADD [BX][0B2H], CX(4) MOV AX,2A59H ADD [0524H] ,AX(5) ADD AL ,0B5H3。
(1)寄存器间接寻址MOV BX,OFFSET [BLOCK][0AH]MOV DX ,[BX](2)寄存器相对寻址MOV SI,OAHMOV DX,[BLOCK][SI](3)基址变址寻址MOV BX ,BLOCKMOV SI,OAHMOV DX,[BX][SI]没人来看,还是要写~~4。
现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H, (20102)=56H,(20103)=78 H,(21200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H, 试说明下列各条指令执行完后,AX寄存器的内容。
(1)MOV AX,1200H 1200H(2) MOV AX,BX 0100H(3) MOV AX,[1200] 4C2AH 注意,是字单元!!(4)MOV AX,[BX] 3412H 同上(5)MOV 1100[BX] 4C2AH(6) MOV AX,[BX][SI] 7856H(7) MOV AX,1100[BX][SI] 65B7H5。
(1)7CD9H (2) 1200H (3) 6319H6。
MOV BX,2000HLES DI ,[BX]MOV AX, ES:DI7。
转向地址OBJ的值分别为:(1)064DH (2)0691H (3)05E0H 注意有符号数的符号位~~8。
IBM-PC汇编语言__课后习题答案

第一章基础知识1、用降幂法和除法将下列十进制数转换为二进制数和16进制数。
(1)369 (2)10000 (3)4095 (4)32767答案:(1)1,0111L,0001B;171H (3)1111,1111,1111B1;9FFFH2、将下列二进制数转换为16进制数和十进制效,(1)101101 (2)10000000 (3)]111111********* (4)111111答案:(1)2DH;45D (3)0FFFFH;65535D3、将下列16进制数转换为二进制数和十进制数。
(1)FA (2)5B (3)FFFE (4)12D4答案:(1)1111,1010B;250D (3)1111,1111,1111,1110B;65534D5、下列各数均为十进制数,请用8位二进制补码计算下列各题,并用16进制数表示其运算结果。
(1)(一85)十76 (2)85十(一76) (3)85—76(4)85一(一76) (5)(一85)一76 (6)(一85)一(一76)答案:(1)0F7H (2)9H (4)0A1H (5)5FH (6)0F7H7、下列各数均为用16进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的数或字符的ASCII码时,它们所表示的十进制及字符是什么?(1)4F (2)2B (3)73 (4)59答案:(1)79D; O(大写)(2)43D; +(3)115D;s(小写)(4)89D; Y8、请写出下列字符串的ACSII码。
For example,This is a number 3692.答案46 6F 72 20 65 78 61 6D 70 6C 65 2C 0A 0D 54 68 6973 20 69 73 20 61 20 6E 75 6D 62 65 72 20 33 36 39第二章80x86计算机组织2、有两个16位字LEE5H和2A3CH分别存放在PC机存储器的000B0H和000B3H单元中,请用图表示出它们在存储器里的存放情况。
汇编语言作业及参考答案

汇编语言作业答案1.3什么是汇编语言源程序、汇编程序、目标程序?见教材P41.10数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0Dh、0aH对应的是什么字符?见教材P81.11计算机中有一个“‘编码,如果把它认为是无符号数,它是十进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符?97,61h,a1.13什么是DOS和POM-BIOS?DOS:磁盘操作系统;POM-BIOS:可编程的基本输入输出系统2.3 举例说明CF和OF标志的差异。
见教材P20-212.5 什么是8086中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?请将如下逻辑地址用物理地址表达:(1)FFFFh:0 (2)40h:17h (3)2000h:4500h (4)B821h:4567h见教材P22-23 FFFF0h 417h 24500h BC777h2.6 8086有哪4种逻辑段,各种逻辑段分别是什么用途?见教材P232.10 说明下列指令中源操作数的寻址方式?如果BX=2000H,DI=40H,给出DX的值或有效地址EA的值。
(1)mov dx,[1234h] 直接寻址(2) mov dx,1234h 立即寻址(3) mov dx,bx 寄存器寻址(4) mov dx,[bx] 寄存器间接寻址(5) mov dx,[bx+123h] 寄存器相对寻址(6) mov dx,[dx+di] 基址变址寻址(7) mov dx,[bx+di+1234h] 相对基址变址寻址2.11 已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12 34 56 78H,[21200H]~[21203H]依次存放2A 4C B7 65H,说明下列每条指令执行后AX寄存器的内容。
(1)mov ax,1200h 1200h(2) mov ax,bx 0100h(3) mov ax,[1200h] 2a4ch(4) mov ax,[bx] 1234h(5) mov ax,[bx+1100h] 2a4ch(6) mov ax,[bx+si] 5678h(7) mov ax,[bx][si+1100h] b765h2.15 已知SS=FFAOH、SP=00B0H,画图说明执行下列指令序列时,堆栈区和SP的内容如何变化?mov ax,8057hpush ax SP=00B2 [00B1]=80hmov ax,0f79hpush ax SP=00B2 [00B2]=0f79hpop bx BX=0f79h SP=00B1pop [bx] SP=00B0h2.16给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:mov al ,89h 不影响标志add al, al 见教材P38add al, 9dh 见教材P38cmp al, 0bch 见教材P40sub al, al 见教材P39dec al 见教材P39inc al 见教材P382.17设均为双字数据,分别存放在地址为的存储单元中,他们的运算结果存入单元。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《汇编语言》课后作业
第一次作业
1、编写程序,将AX寄存器中的16位数,每连续4位分成一组,共4组,
然后把这4组数分别放在AL、BL、CL和DL寄存器中。
用Debug工具调试程序,查看每条指令执行后,各寄存器的变化。
第二次作业
1、编写程序求数据段中8个字节型数据的累加和。
部分代码如下。
Assume cs:codesg, ds:datasg
Datasg segment
DB 02H,13H, 02H, 35H, 1AH, 35H, 00H, 12H
DW 0H ;此字型单元用来保存累加和
Datasg ends
第三次作业
1、编写程序,将内存中03FF:0~03FF:F中的16个数据复制到内存
0000:200~0000:20F中。
2、编写程序,利用堆栈将内存中03FF:0~03FF:F中的16个数据逆序复制到
内存0000:200~0000:20F中。
第四次作业
1、编写程序,在命令行窗体中输出如下图案(红底绿字高亮闪烁)。
程序执行效果,请在DOS命令行下运行zy4.exe文件。
第五次作业
1、编写程序,将数据段中的字符串完成大小写转换。
字母字符大写转换成
小写,小写转换成大写,其他字符不变。
如:datasg segment
db '$BaSic!InfOrIon*'
datasg ends
程序执行后,数据段中的字符串变成了’$bAsIC!iNFoRiON*’。
是有debug工具查看数据段内容如下:
1)执行转换前,数据段的内容如下图
2)执行转换后,数据段的内容如下图
选做题(该题不计入课后作业成绩)
1、编写程序,将数据段中的字型数据以10进制的形式显示。
如:data segment
dw 35A6H
data ends
35A6H十进制值为13734,显示为13734,如下图:。