《汇编语言程序设计》1~10章习题答案
1.11.21.31.41.5 (字长 n=8)1.61.7(1) (2) (3) (4) (5)1.8 设补码长度为字节(即为8位)1.9(1) 21-(-18)= 15H-0EEH= 27H (2) 71- 36 = 47H- 24H= 23H (3) -5+ 120 =0FBH+ 78H= 73H (4) -10- 20 =0F6H- 14H=0E2H (5) -85-(-40)=0ABH-0D8H=0D3H 1.1057H,69H,6EH,64H,6FH,77H,73H,20H,39H,35H, 56H,69H,73H,75H,61H,6CH,20H,62H,61H,73H,69H,63HP26第二章习题·答案2.6 见P19堆栈:内存中以”先入后出”为原则存取、最大空间为64KB 的存储区域称之为堆栈栈底:栈区最高地址单元的前一个单元为栈底2.72.84017H:000AH=4017AH 4015H:002AH=4017AH 4010H:007AH=4017AH 说明了同一个物理地址可以用多个逻辑地址表示。
3.1(1) 寄存器寻址(2) 寄存器间接寻址, 物理地址=30700H(3) 变址寻址/寄存器相对寻址,物理地址=31804H(4) 基址寻址/寄存器相对寻址,物理地址=41700H(5) 基址变址寻址, 物理地址=30800H(6) 相对基址变址寻址, 物理地址=42504H3.2(1) 错:源不能是基址基址寻址。
(2) 错:源和目不能同时为内存单元。
(3) 错:直接给出的移位位数不能是3。
(4) 错:取反指令只能有一个操作数。
(5) 错:不能将立即数直接送入段寄存器。
(6) 错:目不能是段寄存器CS。
(7) 错:第一个操作数不能是立即数。
(8) 当VALUE1为字变量时,对;否则为错:源和目的类型(长度)不一致。
(9) 错:源和目不能同时为段寄存器。
(10)对。
(11)错:出栈指令的目不能是立即数。
(12)错:输入指令的目必须是累加器,源必须是小于0FFH的端口地址或者是存放端口地址DX寄存器。
(13)错:源不能是立即数。
(14)错:寄存器CX不能用于寄存器间接寻址。
3.3 MOV AX,84A0H ;所有的标志位保持不变ADD AX,9460H ;AF=0,CF=1,OF=1,SF=0,ZF=0,PF=1。
3.4(1) SUB AX,AX;或用XOR AX,AX;或用 MOV AX,0;或用 AND AX,0(2) MOV CL,4ROR BL,CL ;也可以用 ROL BL,CL(3) ①若都为字节变量,程序如下:②若都为字变量,程序如下:MOV AL,N1 MOV AX,N1CBW CWDIDIV N2 IDIV N2MOV M1,AL MOV M1,AXMOV M2,AH MOV M2,DX(4) AND BX,0F7AFH;0F7AFH =1111 0111 1010 1111B(5) XOR AX,4020H ; 4020H =0100 0000 0010 0000B(6) TEST DX,0201H ; 0201H =0000 0010 0000 0001B(7) OR CX,13.5(1) MOV BX,OFFSET BLOCK+(6-1)*2MOV AX,[BX](2) MOV BX,OFFSET BLOCK ;也可以用LEA BX,BLOCKMOV AX,10[BX](3) LEA BX,BLOCKMOV SI,0MOV AX,10[BX+SI](4)MOV AX,BLOCK+103.6(1) (BX)= 009AH (3) (BX)= 8071H (4) (BX)= 10F7H(2) (BX)= 0061H (5) (BX)=0FF1CH3.7(AX)=8D00H,(CX)=0004H3.8(1) JCXZ L2(2) L1: JCXZ L2DEC CXCMPSBJZ L1L2:3.9 MOV CL,3MOV BX,4DABH ;(BX)= 4DABHROL BX,1 ;(BX)= 9B56HROR BX,CL ;(BX)=0D36AH3.10 MOV AX,BCD1ADD AL,BYTE PTR BCD2DAAMOV BYTE PTR BCD3,ALMOV AL,AHADC AL,BYTE PTR BCD2+2DAAMOV BYTE PTR BCD3+2,AL程序段执行完后,BCD3单元的值如左示:3.11 CLDLEA SI,STRING1LEA DI,DESTINMOV CX,20 ;也可以这样 MOV CX,20/2REP MOVSB ; REP MOVSW 3.12MOV AX,XCMP AX,50JG N_HIGHSUB AX,YJO OVERFLOW;求绝对值JNS L ;正数转NEG AX ;负数的补码求补=绝对值L: MOV RESULT,AX3.13设变量单元为字长(1) MOV AX,WSUB AX,ZSUB AX,XMOV Z,AX(2) MOV AX,WADD AX,XADD AX,6SUB AX,RSUB AX,9MOV Z,AX(3) MOV AX,WMUL AX,XADD Y,64.1BLOCK DB 20H,30H,40H,50H,60H,70H,80H,90HBLOCK DW 3020H,5040H,7060H,9080HBLOCK DD 50403020H,90807060H4.2 (1) DATA1 DB 86H,27H,23H,00H,24H,1AH(2) DATA2 DW 0B430H,1062H(3) DATA3 DB 4 DUP(20H),20,0,6 DUP(1,2)(4) X EQU THIS BYTE ;或者用 Y EQU THIS WORDY DW 0010H,4241H ;X DB 10H,00H,41H,42H(5) TITLE 标题SUBTIT 子标题(6).386(7).80864.34.4 DATA SEGMENTINFOR1 DB 7FHINFOR2 DB ‘EXAMPLE’INFOR3 DW 65535INFOR4 DB 42H,31H ;也可以用INFOR4 DW 3142HINFOR5 EQU INFOR3- INFOR2DATA ENDS 4.5 (1) 29(2) 0(3) 0E6H或者FFE6H(4) 1034.6 (1) BX=(0002H)(2) AL=( 02H)(3) CX=(0001H)(4) DL=( 0AH)4.7(1) 0030H,003AH(2) 10H=16(3) 02H4.8D_SEG SEGMENT PARA STACKFLD1 DB 0,256,A ;①256超过一个字节,②A无定义FLD2 DW A400H,60H ;A400H无定义FLD3 DB THIS IS COMPUTER ;字符串定义不对FLD3 DW 0,4000H,'ABCD' ; 'ABCD'定义超长D_SEG ENDSC_SEG SEGMENT PARA 'CODE'ASSUME CS:C_SEG DS:D_SEG ;缺少逗号MAIN PROC FAR...LEA SI,FLD1S1: MOV DI,OFFSET FLD2MOV AX,[SI]MOV [DI],4200H ;类型不确定...MAIN ENDPC_SEG ENDSEND MAINP115 第五章习题·答案5.1D SEGMENT PARA STACKarray db 1,9,0,255,99,2 ;具体数据由编程者自行设定max db ?min db ?D ENDSC SEGMENTASSUME CS:C,DS:DMAIN PROC FARPUSH DSXOR AX,AXPUSH AX mov ah,[si] mov al,ah l: inc sicmp ah,[si] jae imov ah,[si] jmp ei: cmp al,[si] jbe emov al,[si] e: loop l(1) (2) (3)5.2设数组的数据为字节型的有符号数,和为字型的。
①按COM文件格式编写的程序如下:C SEGMENTASSUME CS:C,DS:CORG 100HB: JMP Sa db 1,9,0,-1,99,2 ;具体数据由编程者自行设定m dw ?S: PUSH DSXOR AX,AXPUSH AXMOV AX,CSMOV DS,AXxor dx,dxmov cx,m-alea si,al: mov al,[si]cbwadd dx,axinc siloop lmov m,dxRETC ENDSEND B②按EXE文件格式编写的程序如下:D SEGMENT PARA STACKa db 1,9,0,-1,99,2 ;具体数据由编程者自行设定m dw ?D ENDSC SEGMENTASSUME CS:C,DS:Ds PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DMOV DS,AXxor dx,dxmov cx,m-alea si,al: mov al,[si]cbwadd dx,axinc siloop lmov m,dxRETS ENDPC ENDSEND S5.3为计算 1+2*3+3*4+4*5+5*6+6*7+7*8+8*9+9*10+10*11+11*12+12*13+13*14+14*15的值。
5.4设数组中的元素为字节型的有符号数,结果为字型。
D SEGMENTa db -3, 5,-6,8 ;具体数据由编程者自行设定b db 7,-1, 9,2 ;具体数据由编程者自行设定n dw ? ;根据上面a和b的值运算结果为:0ffc0h=-40h=-64 D ENDSC SEGMENTASSUME CS:C,DS:Ds PROC FARMOV AX,DMOV DS,AXlea si,amov di,offset bsub dx,dx mov cx,b-al: mov al,[si]imul byte ptr [di] add dx,axinc siinc diloop lmov n,dxMOV AX,4C00HINT 21HS ENDPC ENDSEND S5.5①程序的结构不一样(略);②最终生成的文件不一样(略)。
P143 第六章习题·答案6.1C SEGMENTASSUME CS:C s PROC FARmov bh,31h l: mov bl,31hl1: mov cx,4l2: mov dl,' ' mov ah,2int 21hloop l2mov dl,bhmov ah,2int 21hmov dl,'*' mov ah,2int 21hmov dl,blmov ah,2int 21hinc blcmp bl,3ah jne l1mov dl,0dh mov ah,2int 21hmov dl,0ah mov ah,2int 21hinc bhcmp bh,3ah jne lMOV AX,4C00H INT 21HS ENDPC ENDSEND S 6.2 (CX)=000AH=10,(AL)=08H=86.3D SEGMENTDATA_W dW -3, 5,0,-6,8,9;具体数据由编程者自行设定COUT1 db 0COUT2 db 0COUT3 db 0D ENDSC SEGMENTASSUME CS:C,DS:Ds PROC FARMOV AX,DMOV DS,AXlea si,DATA_Wmov cx,(COUT1-DATA_W)/2l: mov ax,[si]cmp ax,0jng l1inc cout1jmp short nl1: je l2inc cout2jmp short nl2: inc cout3n: add si,2loop lMOV AX,4C00HINT 21HS ENDPC ENDSEND S6.4设被处理的数为无符号数D_SEG SEGMENTVAR DB 50H,35H,46H,0F1H,10H LEN EQU $-VARMAX DB ?MIN DB ?SUM DW ?D_SEG ENDSC SEGMENTASSUME CS:C,DS:D_SEGs PROC FARMOV AX,D_SEGMOV DS,AXlea si,VARmov ah,[si]mov al,[si]inc simov cx,LENdec cxl: cmp ah,[si]jae l1mov ah,[si]jmp short nl1: cmp al,[si]jbe nmov al,[si]n: INC siloop lmov MAX,ahmov MIN,aladd al,ahmov ah,0jnc n1inc ahn1: mov SUM,axMOV AX,4C00HINT 21HS ENDPC ENDSEND S 6.5设被处理的数为字节型的无符号数(程序与P116的5.4类似)D SEGMENTa db 3,5,6,8 ;具体数据由编程者自行设定b db 7,1,9,2 ;具体数据由编程者自行设定C dw ? ;根据上面a和b的值运算结果为:=96=60hD ENDSC1 SEGMENTASSUME CS:C1,DS:Ds PROC FARMOV AX,DMOV DS,AXlea si,amov di,offset bsub dx,dxmov cx,b-al: mov al,[si]mul byte ptr [di]add dx,axinc siinc diloop lmov C,dxMOV AX,4C00HINT 21HS ENDPC1 ENDSEND S6.6设被处理的数为字节型的有无符号数D SEGMENTa db 3, 5, 6, 8 ;具体数据由编程者自行设定db -2, 4, 7, 9 ;具体数据由编程者自行设定db 6,-1,-5,-6 ;具体数据由编程者自行设定db -3, 2,-4, 7 ;具体数据由编程者自行设定b db 7, 1, 9, 2 ;具体数据由编程者自行设定c dw ?, ?, ?, ?;根据上面a和b的值运算后c的值分别为:;96=60h,71=47h,-16(10h)=0FFF0h,-41(29h)=0FFD7h D ENDSC1 SEGMENTASSUME CS:C1,DS:Ds PROC FARMOV AX,DMOV DS,AXlea si,alea bx,cmov ch,c-bl: mov di,offset bsub dx,dxmov cl,c-bl1: mov al,[si]imul byte ptr [di]add dx,axinc siinc didec cljnz l1mov [bx],dxadd dx,2dec chjnz lMOV AX,4C00HINT 21HS ENDPC1 ENDSEND S 6.7设字符串的长度小于100个字符。
新版汇编语言程序设计习题答案(钱晓捷主编)电子教案
新版汇编语言程序设计习题答案(钱晓捷主编)新版汇编语言程序设计习题答案(钱晓捷主编)第一章汇编语言基础知识1.1、简述计算机系统的硬件组成及各部分作用1.2、明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB1.3、什么是汇编语言源程序、汇编程序、目标程序?1.4、汇编语言与高级语言相比有什么优缺点?1.5、将下列十六进制数转换为二进制和十进制表示(1)FFH (2)0H (3)5EH (4)EFH(5)2EH (6)10H (7)1FH (8)ABH1.6、将下列十进制数转换为BCD码表示(1)12 (2)24 (3)68 (4)127(5)128 (6)255 (7)1234 (8)24581.7、将下列BCD码转换为十进制数(1)10010001 (2)10001001 (3)00110110 (4)10010000(5)00001000 (6)10010111 (7)10000001 (8)000000101.8、将下列十进制数分别用8位二进制数的原码、反码和补码表示(1)0 (2)-127 (3)127 (4)-57(5)126 (6)-126 (7)-128 (8)681.9、完成下列二进制数的运算(1)1011+1001 (2)1011-1001 (3)1011×1001 (4)10111000÷1001(5)1011 ∧~1011 (8)1011 ⊕ 1001 1001(6)1011 ∨1001(7)1.10 数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0dh、0ah对应的是什么字符?1.11、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是10进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符?1.12、简述Intel 80x86系列微处理器在指令集方面的发展。
32位汇编语言习题及答案(全部)(钱晓捷版)
简答题1.1 简答题-1 (1)哪个处理器的指令系统成为Intel 80x86系列处 哪个处理器的指令系统成为Intel 80x86系列处 理器的基本指令集? 理器的基本指令集? • 8086 什么是通用寄存器? (3)什么是通用寄存器? • 一般指处理器最常使用的整数寄存器,可用于保存 一般指处理器最常使用的整数寄存器, 整数数据、 整数数据、地址等 最高有效位MSB是指哪一位? MSB是指哪一位 (6)最高有效位MSB是指哪一位? • 数据的最高位,例如对8、16、32位数据,MSB依次 数据的最高位,例如对8 16、32位数据 MSB依次 位数据, 指D7、D15和D31位
DS是数据段寄存器名 DS是数据段寄存器名 6364b 6364b是数字开头 @data是汇编语言使用预定义符号 是汇编语言使用预定义符号, @data是汇编语言使用预定义符号,表示数据段地址 flat是表示平展存储模型的关键字 flat是表示平展存储模型的关键字
10
习题解答
习题1.16 习题1.16
32位汇编语言习题解答 32位汇编语言习题解答
课件制作: 课件制作: 钱晓捷
钱晓捷,32位汇编语言程序设计,机械工业出版社 钱晓捷,32位汇编语言程序设计, 位汇编语言程序设计
第1章习题:汇编语言基础 章习题:
简答题( 1.1 简答题(1、3、6、7、8) 判断题( 1.2 判断题(1、6、7、8、9) 填空题 10) 1.3 填空题(3、4、5、7、10) 13、 15、 1.9、1.13、1.15、1.16
3
习题解答
简答题1.1 简答题-2 (7)汇编语言中的标识符与高级语言的变量和常量名 的组成原则有本质的区别吗? 的组成原则有本质的区别吗? • 没有 汇编语言的标识符大小写不敏感意味着什么? (8)汇编语言的标识符大小写不敏感意味着什么? • 表示字母大小写不同、但表示同一个符号 表示字母大小写不同、
汇编语言程序设计课后习题答案(第二版 沈美明)(无删减)
首页入门学习程序员计算机考研计算机电子书下载硬件知识网络知识专业课程答案下载视频教程下载第一章作者:佚名来源:网络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.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。
《汇编语言程序设计》习题答案(第二版,沈美明,温冬婵,清华大学出版社)
1 汇编语言程序设计(第二版)第二章1、 答:直接由指令指定的I/O 端口数为256个。
2、答:3、答:字节单元:(30022H ) = AB H ,(30024H ) = EF H字单元: (30021H ) = AB34 H ,(30022H ) = CDAB H 。
4、答:3017:000A 的存储单元的物理地址是3017AH ,3015:002A 的存储单元的物理地址是3017AH ,3010:007A 的存储单元的物理地址是3017AH 。
5、答:该程序的第一个字的物理地址是0AAA40H 。
6、答:条件标志OF 、SF 、ZF 、CF 的值依次分别为0、0、0、0。
7、答:(1)AX 、BX 、CX 、DX 、AH 、AL 、BH 、BL 、CH 、CL 、DH 、DL 、 SP 、BP 、DI 、SI (注意:学生尽量不要用SP 参与加减运算)(2)CX(3)DX 、AX 、AH 、AL(4)CS 、DS 、ES 、SS(5)FLAGS(6)IP(7)SS 、SP 、BP8、答:可以用来指示存储器地址的寄存器有BX 、SP 、BP 、DI 、SI 、IP 、CS 、DS 、ES 、SS 。
9、答:唯一正确的是D 。
第三章1。
.(1)立即寻址 没有(2)直接寻址 7237H(3)使用BX 的寄存器寻址 没有(4)使用BX 的间接寻址 637DH(5)使用BX 的寄存器相对寻址 0D5F0H(6) 基址变址寻址 8E18H(7)相对基址变址 004FH2 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)=78H,(21200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX 寄存器的内容。
汇编语言程序设计习题答案
《汇编语言程序设计》——王向慧马海波编著(中国水利水电出版社)部分习题答案(如发现错误请发送邮件到yadxty@田原)第一章1.1 指令:指令是规定处理器完成某种特定操作的命令代码,指令一般包含操作码和操作数两部分,操作码说明该指令的功能及所要完成的操作,操作数指出该操作对象及结果的存储位置。
程序:程序是让计算机完成某些操作、实现某种功能的有序的指令集合。
1.2 答案在书上P2 1.1.21.3 P41.4 对的,P3最上面一句话,面向机器(硬件)的低级语言。
1.5 答案:P3 表1-1上面的一段话1.6 对1.7 C A1.8 B1.9 D1.10~1.14 略1.15 1011+0100=11111010-0111=00111010×0101=11001000101010÷0110=01111.16 略1.17 X=40=0010 1000Y=120=0111 1000Z=-18=1110 1110[X]补+[Y]补=0010 1000+0111 1000=1010 0000 溢出[X]补+[Z]补=0010 1000+1110 1110=01001100 未溢出[Y]补-[Z]补=0111 1000-1110 1110=1 0001 0100 溢出[Z]补-[X]补=1110 1110-0010 1000=11000110 未溢出1.18 A1.19 A1.20 B1.21记住:A=41H=65a=61H=970=30H=48其他略1.22无符号整数8位补码整数压缩BCD码ASC码35H 53 53 35 ‘5’32H 50 50 32 ‘2’5AH 90 90 无效‘Z’72H 114 114 72 ‘r’1.23答:16位补码表示的整数无符号数00FFH 255 255FFFFH -1 65535519H 1035 103511111111B -1(8位负数补码扩展到16位表示,在原8位补码最高位前补8个1,书上P9页中间段落)255(无符号数扩展,前面补8个0)2.1 略2.2 略2.3 intel80x86系列微型机开机启动时,首先进入实模式,这种模式下可寻址的内存空间最大范围是00000H~FFFFFH,使用20根地址线。
32位汇编语言程序设计部分课后习题答案
习题解答
1.3 填空题-1
(3)IA-32处理器有8个32位通用寄存器,其中EAX, ___,___和EDX,可以分成16位和8位操作;还有另 外4个是___,___,___,和___。 • EBX,ECX,ESI,EDI,EBP,ESP (4)寄存器EDX是___位的,其中低16位的名称是____, 还可以分成两个8位的寄存器,其中D0~D7和D8~ D15部分可以分别用名称____和____表示。 • 32,DX,DL,DH (5)IA-32处理器有___个段寄存器,它们都是_____ 位的。 • 6,16
17
习题解答
2.3 填空题-2
(3)定义字节变量的伪指令助记符是______,获取变 量名所具有的偏移地址的操作符是_______。 • BYTE,OFFSET (8)指令“MOV EAX, OFFSET MSG”的目的操作数和 源操作数分别采用______和_______寻址方式。 • 寄存器寻址,立即数寻址 (9)已知ESI=04000H,EBX=20H,指令“MOV EAX, [ESI+EBX*2+8]”中访问的有效地址是__________。 • 04000H+20H×2+8=04048H
3
习题解答
1.1 简答题-2
(7)汇编语言中的标识符与高级语言的变量和常量名 的组成原则有本质的区别吗? • 没有 (8)汇编语言的标识符大小写不敏感意味着什么? • 表示字母大小写不同、但表示同一个符号
4
习题解答
1.2 判断题
1)EAX也被称为累加器,因为它使用最频繁。 • 对,EAX中的A来自英文累加器(Accumulator) 6)处理器的传送指令MOV属于汇编语言的执行性语句 •对 7)汇编语言的语句由明显的4部分组成,不需要分隔 符区别。 • 错,使用了分隔符才有了明显的4部分 8)MASM汇编语言的注释用分号开始,不能用中文分号 • 对,源程序中的分隔符以及各种标识符都是英文 9)程序终止执行也就意味着汇编结束,所以两者含义 相同。 • 错,两者完全是两个概念
《汇编语言》各章习题答案
汇编语言各章习题答案习题一答案:1.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=AAH1.2 5E8AH,0BE6H,3DEH,4940H1.3 00011101+00110101=01010010=52H=8201001001+11101000=00110001=31H=4910111110+01010010=00010000=10H=1610011010+11110001=10001011=8BH= -1171.4 00101001+01010011=01111100+00000110=10000010=82H=8201110011-00100100=01001111-00000110=01001001=49H=4901100110+00011000=01111110+00000110=10000100=84H=840000000100110010+01110101=0000000110100111+00000110=0000001000000111=0207H=2071.5 000020A3H,FF94H,00003456H,007FH,FFFFEC00H1.6无符号数:0~65535,0000H~FFFFH;带符号数:-32768~+32767,8000H~7FFFH 1.7 (1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII码,十进制数38的压缩BCD码(2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255(3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码(4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码1.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=00FEH,补码0000000011111110B,压缩BCD码0000001001010100,ASCII码323534H1.9(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=11.10回车、换行、响铃、ESC键、空格键、@、P、p习题二答案:2.9最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节)2.10CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP2.11字节单元保存8位数,字单元保存16位数。
汇编语言程序设计课后习题答案(第二版_沈美明)(无删减)
汇编语言程序设计课后习题答案(第二版_沈美明)(无删减)第一章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。
在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。
