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

合集下载

《IBM-PC汇编语言程序设计》(第2版)第3章习题解答及答案

《IBM-PC汇编语言程序设计》(第2版)第3章习题解答及答案

第3章习题答案3.1 给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么?(1)立即寻址;答案:无。

如:MOV AX,5(2)直接寻址;答案:7237H 如:MOV AX,[7237H](3)使用BX的寄存器寻址;答案:无。

因不涉及内存如:MOV AX,BX(4)使用BX的间接寻址;答案:637DH 如:MOV AX,[BX](5)使用BX的寄存器相对寻址答案:D5B4H 如:MOV AX,[BX+ 7237H](6)基址变址寻址答案:8E18H 如:MOV AX,[BX][SI](7)相对基址变址寻址;答案:无效,溢出如:MOV AX,[BX][SI] + 7237H 3.2 试根据以下要求,写出相应的汇编语言指令:(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中;答案:ADD DX,BX(2) 用寄存器BX 和SI 的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中;答案:ADD AL,[BX][SI](3) 用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回到存储器中;答案:ADD [BX+0B2H],CX (4) 用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回到该存储单元中;答案:ADD WORD PTR [0524H],2A59H (5)把数0B5H与(AL)相加,并把结果送回AL中。

答案:ADD AL, 0B5H3.3 写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。

要求使用以下几种寻址方式:(1) 寄存器间接寻址答案:LEA BX, BLOCKADD BX, 5*2MOV DX, [BX](2) 寄存器相对寻址答案:LEA BX, BLOCKMOV DX, [BX+5*2](3) 基址变址寻址答案:LEA BX, BLOCKMOV SI,5*2MOV DX, [BX][SI]3.4 现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56, (20103)=78H,(21200)=2AH,(21201)=4CH, (21202)=B7H, (21203)=65H,试说明下列各条指令执行完后AX寄存器的内容。

IBM-PC汇编语言程序设计课后习题答案(第二版 - 沈美明)

IBM-PC汇编语言程序设计课后习题答案(第二版 - 沈美明)

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位二进制补码计算下列各题,并用十六进制数表示其运算结果。

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)

MOV BX,X ;X 送到 BX 中
ADD BX,6 ;X+6
ADD AX,BX ;(R+9)+(X+6),结果保存在 AX 中
MOV BX,W ; W 送到 BX 中
SUB BX,AX ; W-(R+9)-(X+6),连续减去两个数,相当于减去这两个数的和
MOV Z,BX ;最终结果送到 Z 中
IBM-PC 汇编语言程序设计(第二版)课后习题答案(清华大学出版社) (沈美明,温冬蝉著) 第二章
1.解答:有 256 个 2.解答:如下图.第一个络子为 000B0H 字单元,注意,是字单元,第五个格子为 000B3H 字单元
E5 1E
3C
2A 3.解答: 30022H 字节单元内容: ABH 30024H 字节单元内容: EFH
(2) ADD AL,[BX][SI]
(3) ADD [BX][0B2H], CX
(4) MOV AX,2A59H
ADD [0524H] ,AX
(5) ADD AL ,0B5H
微信:332107782
3.(1)寄存器间接寻址 MOV BX,OFFSET [BLOCK][0AH] MOV DX ,[BX]
(AX)=1234H
LEA AX,TABLE 是把符号地址 TABLE 的有效地址(这里是偏移量)送到指定寄存器 AX
里,指令执行完后,(AX)=0032H
11.执行完指令后,(AX)=1E00H
12. LEA AX,CSTRING
MOV DL,AX
MOV DH,[AX+6]
13.课本上 P51--P53
(12) MOV AX,VAL[BX][SI] 相对基相变址寻址 201F0H

IBM-PC汇编语言程序设计课后习题答案第二版doc

IBM-PC汇编语言程序设计课后习题答案第二版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+01001100B=11110111B=0F7H;CF=0;OF=01.6 下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答:(1) D8H表示的带符号数为 -40,D8H表示的无符号数为216;(2) FFH表示的带符号数为 -1, FFH表示的无符号数为255。

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

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

汇编语言程序设计(第二版)课后习题答案第二章1.解答:有256个2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元E51E3C2A3.解答:30022H字节单元内容:ABH30024H字节单元内容:EFH30021H字单元内容:AB34H30022H字单元内容: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--A4--B2--C3--D12--E9--F11--G10--H13--I8--J7--K6---L1--M15--N14--O第三章1.(1)立即寻址没有(2)直接寻址7237H(3)使用BX的寄存器寻址没有(4)使用BX的间接寻址637DH(5)使用BX的寄存器相对寻址0D5B4H(6)基址变址寻址8E18H(7)相对基址变址004FH2.根据下列要求,写出相应的汇编指令。

(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,(2 1200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX寄存器的内容。

最新IBM-PC汇编语言程序设计答案第2版1

最新IBM-PC汇编语言程序设计答案第2版1

I B M-P C汇编语言程序设计答案第2版1附录:《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.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位二进制补码计算下列各题,并用十六进制数表示其运算结果。

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

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

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,试求出其它每个变量的偏移量。

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

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

汇编语言程序设计(第二版)课后习题答案IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)(沈美明,温冬蝉著)/down/581895/ak1773--------------------------汇编语言-[基础知识]-[自我总结]2007-03-13 21:06汇编语言计算机存储信息的基本单元是:[一个二进制位]在存储器里以 [字节] 为单位存储信息—————————————————————————会给每个 [字节单元]一个唯一的 [存储器地址]————————————这里的 [存储器地址] 即为:[物理地址]------(书写格式用十六进制表示)[每个字节]==[存储器地址]==[物理地址]==[操作数地址]物理地址(操作数地址)=段基地址*16d + 偏移地址偏移地址==有效地址(EA)EA(effective address)=基址+(变址*比例因子)+位移量立即寻址:MOV AX,0126H..........将0126送入AX -||-没有[物理地址]没有[有效地址]寄存器寻址:MOV AX,BX.............BX的内容传送到AX -||-没有[物理地址]没有[有效地址]寄存器直接寻址:MOV AX,[0126H]........将数据段中的0126单元的内容送AX寄存器间接寻址:MOV AX,[BX]...........BX所指示的地址中的内容送AX--------------------------------第1章答案--------------------------------第2章答案类别:ibm-pc汇编语言程序设计(第二版)课后习题答案 | 评论(47)| 浏览(5203) [首页] [上一页] [1] [2] 3文章分类默认分类(5) 计算机科学技术(14) 文学(2) ibm-pc汇编语言程序设计(第二版)课后习题答案(11) 计算机图形学(5) c++课程设计(2)艺术(6) 广告(1)文章存档2008年04月(1) 2007年09月(1) 2007年06月(4) 2007年04月(5)2007年03月(1) 2007年01月(6) 2006年12月(5) 2006年11月(23)最新文章评论匿名网友不错今天没有白来 sunny841007不管有没有用拿了就先谢谢了匿名网友我说怎么就只有第10章答案而已郁闷啊殇高手,遍得太牛B了。

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大...

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大...

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)(沈美明,温冬蝉著)第六章答案2006-11-04 22:022、答:(1) NAME1 NAMELIST < >(2) MOV AX,DATA ;假设结构变量NAME1定义在数据段DATA中MOV DS,AXMOV ES,AX;MOV AH,10LEA DX,NAME1INT 21H;MOV CL,NAME1.ACTLENMOV CH,0LEA SI,INLEA DI,DISPFILECLDREP MOVSB6、答:SKIPLINES PROC NEARPUSH CXPUSH DXMOV CX,AXNEXT:MOV AH,2MOV DL,0AHINT 21HMOV AH,2MOV DL,0DHINT 21HLOOP NEXTPOP DXPOP CXRETSKIPLINES ENDP7、答:dseg segmentnum dw 76,69,84,90,73,88,99,63,100,80n dw 10s6 dw 0s7 dw 0s8 dw 0s9 dw 0dseg endscode segmentmain proc farassume cs:code, ds:dseg start:push dssub ax, axpush axmov ax, dsegmov ds, axcall sub1retmain endpsub1 proc nearpush axpush bxpush cxpush simov si, 0mov cx, nnext:mov ax, num[si]mov bx, 10div blmov bl, alcbwsub bx, 6sal bx, 1inc s6[bx]add si,2loop nextpop sipop cxpop bxpop axretsub1 endpend start8、答:data segmentmaxlen db 40n db ?table db 40 dup (?)char db 'a' ; 查找字符’a’evenaddr dw 3 dup (?)data endscode segmentassume cs:code, ds:datamain proc farstart:push dsmov ax, 0push axmov ax, datamov ds, axlea dx, maxlenmov ah, 0ahint 21h ; 从键盘接收字符串mov addr, offset tablemov addr+2, offset nmov addr+4, offset charmov bx, offset addr ; 通过地址表传送变量地址call count ; 计算CHAR的出现次数call display ; 显示retmain endpcount proc near ; count子程序push sipush dipush axpush cxmov si, [bx+2]mov cl, byte ptr[si]mov ch, 0mov si, [bx+4]mov al, byte ptr[si]mov bx, 0again:cmp al, byte ptr[di]jne l1inc bxl1: inc diloop againpop cxpop axpop dipop siretcount endpdisplay proc near ; display子程序call crlf ; 显示回车和换行mov dl, charmov ah, 2int 21hmov dl, 20hmov ah, 2int 21hmov al, bland al, 0fhadd al, 30hcmp al, 3ahjl printadd al, 7print:mov dl, alint 21hcall crlfretdisplay endpcrlf proc near ; crlf子程序mov dl, 0dhmov ah, 2int 21hmov dl, 0ahmov ah, 2int 21hretcrlf endpcode endsend start。

汇编语言程序设计(第二版)课后习题答案-精品资料

汇编语言程序设计(第二版)课后习题答案-精品资料

汇编语言程序设计(第二版)课后习题答案第二章1.解答:有256个2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元E51E3C2A3.解答:30022H字节单元内容:ABH30024H字节单元内容:EFH30021H字单元内容:AB34H30022H字单元内容: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--A4--B2--C3--D12--E9--F11--G10--H13--I8--J7--K6---L1--M15--N14--O第三章1.(1)立即寻址没有(2)直接寻址7237H(3)使用BX的寄存器寻址没有(4)使用BX的间接寻址637DH(5)使用BX的寄存器相对寻址0D5B4H(6)基址变址寻址8E18H(7)相对基址变址004FH2.根据下列要求,写出相应的汇编指令。

(1)ADD DX,BX(2)ADDAL,[BX][SI](3)ADD[BX][0B2H],CX(4)MOV AX,2A59H ADD[0524H],AX(5)ADDAL,0B5H3.(1)寄存器间接寻址MOVBX,OFFSET[BLOCK][0AH]MOV DX,[BX](2)寄存器相对寻址MOV SI,OAHMOVDX,[BLOCK][SI](3)基址变址寻址MOVBX,BLOCKMOVSI,OAHMOVDX,[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寄存器的内容。

IBMPC汇编语言程序设计第二版答案

IBMPC汇编语言程序设计第二版答案

IBMPC汇编语言程序设计第二版答案在IBMPC汇编语言程序设计第二版中,你将学习到关于汇编语言的基本概念和技巧,以及如何在IBMPC上进行程序设计。

本文将为你提供该教材的答案,以帮助你更好地理解和掌握相关知识。

第一章:引言本章主要介绍了汇编语言的概念和历史背景,以及为什么学习汇编语言在计算机科学领域中至关重要。

课后习题包括:1. 解释汇编语言的概念和作用。

2. 证明学习汇编语言的重要性。

第二章:基本概念本章讨论了汇编语言的基本概念,包括寄存器、内存、指令、操作数等。

课后习题包括:1. 列出IBMPC的主要寄存器及其作用。

2. 解释内存和指令的概念。

3. 指出指令中的操作数是什么以及如何使用它们。

第三章:汇编语言程序的结构本章介绍了汇编语言程序的结构,包括程序开始和结束的标记、数据段和代码段的定义等。

课后习题包括:1. 解释并举例说明程序开始和结束标记的作用。

2. 编写一个简单的汇编语言程序,包含数据段和代码段的定义。

第四章:数据传送和运算指令本章详细讨论了数据传送和运算指令,并提供了具体的例子和实践习题。

课后习题包括:1. 解释MOV指令的功能和用法。

2. 使用ADD指令完成两个数相加的程序。

第五章:程序控制指令本章讲解了程序控制指令,如条件和无条件转移指令、循环指令等。

课后习题包括:1. 说明条件转移指令如何工作。

2. 使用循环指令编写一个计算阶乘的程序。

第六章:子程序本章介绍了子程序的概念和使用方法,以及如何传递参数和返回值。

课后习题包括:1. 解释子程序的作用和优势。

2. 编写一个带有参数和返回值的子程序。

第七章:栈与堆栈本章详细讨论了栈的概念和操作,以及堆栈的使用方法。

课后习题包括:1. 说明栈和堆栈的区别。

2. 编写一个使用堆栈实现函数调用的程序。

第八章:位操作与逻辑运算本章介绍了位操作和逻辑运算的指令,以及如何使用它们进行位级别的操作。

课后习题包括:1. 解释位操作指令的功能和应用。

IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明))

IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明))

第五章5、1 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

答:程序段如下:BEGIN: MOV AH, 1 ;从键盘输入一个字符的DOS调用INT 21HCMP AL, ‘a’ ;输入字符<‘a’不?JB STOPCMP AL, ‘z’ ;输入字符>‘z’不?JA STOPSUB AL, 20H ;转换为大写字母,用AND AL, 1101 1111B也可MOV DL, AL ;显示一个字符的DOS调用MOV AH, 2INT 21HJMP BEGINSTOP: RET5、2 编写程序,从键盘接收一个小写字母,然后找出它的前导字符与后续字符,再按顺序显示这三个字符。

答:程序段如下:BEGIN: MOV AH, 1 ;从键盘输入一个字符的DOS调用INT 21HCMP AL, ‘a’ ;输入字符<‘a’不?JB STOPCMP AL, ‘z’ ;输入字符>‘z’不?DEC AL ;得到前导字符MOV DL, AL ;准备显示三个字符MOV CX, 3DISPLAY: MOV AH, 2 ;显示一个字符的DOS调用INT 21HINC DLLOOP DISPLAYSTOP: RET5、3 将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL与DL中。

答:程序段如下:DSEG SEGMENTSTORE DB 4 DUP (?)DSEG ENDS┇BEGIN: MOV CL, 4 ;右移四次MOV CH, 4 ;循环四次LEA BX, STOREA10: MOV DX, AXAND DX, 0FH ;取AX的低四位MOV [BX], DL ;低四位存入STORE中INC BXSHR AX, CL ;右移四次JNZ A10 ;循环四次完了码?B10: MOV DL, STORE ;四组数分别放在AL、BL、CL与DL中MOV CL, STORE+1MOV BL, STORE+2MOV AL, STORE+3STOP: RET5、4 试编写一程序,要求比较两个字符串STRING1与STRING2所含字符就是否完全相同,若相同则显示‘MATCH’, 若不相同则显示‘NO MATCH’。

《IBM-PC汇编语言程序设计》教案及答案(第二版)

《IBM-PC汇编语言程序设计》教案及答案(第二版)

《汇编语言程序设计》教案附:习题参考答案《IBM-PC汇编语言程序设计》(第2版)沈美明、温冬婵编著教案编写时间:20XX年8月18日前言1.汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。

2.汇编语言程序设计是高等院校电子计算机硬、软件及应用专业学生必修的核心课程之一。

它不仅是计算机原理、操作系统等其它核心课程的必要先修课,而且对于训练学生掌握程序设计技术、熟悉上机操作和程序调试技术都有重要作用。

3.本教材共有十一章,其内容安排如下:(1).第一、二章为汇编语言所用的基础知识。

(2).第三章详细介绍80x86系列CPU的指令系统和寻址方式。

(3).第四章介绍伪操作、汇编语言程序格式及汇编语言的上机过程。

(4).第五、六章说明循环、分支、子程序结构和程序设计的基本方法。

(5).第七章说明宏汇编、重复汇编及条件汇编的设计方法。

(6).第八章叙述输入/输出程序设计方法,重点说明中断原理、中断过程及中断程序设计方式。

(7).第九章说明BIOS和DOS系统功能调用的使用方法。

(8).第十~十一章分别说明图形显示、发声及磁盘文件存储的程序设计方法,同时提供各种程序设计方法和程序实例。

附:教学参考书1.沈美明、温冬婵编著,IBM–PC汇编语言程序设计(第2版),清华大学出版社,20XX年(教材)2.沈美明、温冬婵编著,IBM–PC汇编语言程序设计,清华大学出版社,1991年3.沈美明、温冬婵编著,IBM–PC汇编语言程序设计—例题习题集,清华大学出版社,1991年6月4.沈美明、温冬婵、张赤红编著,IBM–PC汇编语言程序设计—实验教程,清华大学出版社,1992年5.周明德,微型计算机IBM PC/XT(0520系列)系统原理及应用(修订版),清华大学出版社,19916.郑学坚、周斌,微型计算机原理及应用(第二版),清华大学出版社,19957.王士元、吴芝芳,IBM PC/XT[长城0520] 接口技术及其应用,南开大学出版社,19908.杨素行,微型计算机系统原理及应用,清华大学出版社,19959.戴梅萼、史嘉权,微型计算机技术及应用—从16位到32位(第二版),清华大学出版社,199610.张昆藏,IBM PC/XT微型计算机接口技术,清华大学出版社,199111.孟绍光,李维星,高档微机组成原理及接口技术(80386/80486/Pentium),学苑出版社,199312.吴秀清,周荷琴,微型计算机原理与接口技术,中国科学技术大学出版社目录第 1 章基础知识 (6)1.1进位计数制与不同基数的数之间的转换 (6)1.2二进制数和十六进制数的运算 (8)1.3计算机中数和字符的表示 (8)1.4几种基本的逻辑运算 (9)第 2 章80X86计算机组织 (10)2.180X86微处理器 (10)2.2基于微处理器的计算机系统构成 (11)2.3中央处理机 (11)2.4存储器 (13)2.5外部设备 (15)第 3 章80X86的指令系统和寻址方式 (16)3.180X86的寻址方式 (16)3.2程序占有的空间和执行时间 (18)3.380X86的指令系统 (19)第 4 章汇编语言程序格式 (41)4.1汇编程序功能 (41)4.2伪操作 (41)4.3汇编语言程序格式 (46)4.4汇编语言程序的上机过程 (50)第 5 章循环与分支程序设计 (53)5.1循环程序设计 (53)5.2分支程序设计 (54)5.3如何在实模式下发挥80386及其后继机型的优势 (54)第 6 章子程序结构 (56)6.1子程序的设计方法 (56)6.2子程序的嵌套 (58)6.3子程序举例 (58)第7 章高级汇编语言技术 (59)7.1宏汇编 (59)7.2重复汇编 (60)7.3条件汇编 (61)第8 章输入/输出程序设计 (63)8.1I/O设备的数据传送方式 (63)8.2程序直接控制I/O方式 (64)8.3中断传送方式 (64)第9 章BIOS和DOS中断 (68)9.1键盘I/O (69)9.2显示器I/O (71)9.3打印机I/O (72)9.4串行通信口I/O (73)第10 章图形与发声系统的程序设计 (75)10.1显示方式 (75)10.2视频显示存储器 (75)10.3EGA/VGA图形程序设计 (76)10.4通用发声程序 (77)10.5乐曲程序 (79)第11 章磁盘文件存取技术 (80)11.1磁盘的记录方式 (80)11.2文件代号式磁盘存取 (82)11.3字符设备的文件代号式I/O (83)11.4BIOS磁盘存取功能 (83)附录:《IBM—PC汇编语言程序设计》习题参考答案 (85)第一章.习题 (85)第二章.习题 (86)第三章.习题 (88)第四章.习题 (106)第五章.习题 (113)第六章.习题 (136)第七章.习题 (153)第八章.习题 (161)第九章.习题 (168)第十章.习题 (172)第十一章.习题 (186)第 1 章 基础知识【教学目的】本章内容是本课程的基础,通过本章学习,使学生明确汇编语言程序设计的学科性质、基本内容和学习意义,掌握数制的转换、数据的编码,了解本门课程的教学要求和学习方法。

清华大学汇编语言(沈美明,温冬婵)课后答案

清华大学汇编语言(沈美明,温冬婵)课后答案

汇编语言程序设计(第二版)(清华大学IBM-PC 汇编语言程序设计(第二版)沈美明温冬婵编著)第二章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。

.第三章2、答:(1)ADD DX, BX(2)ADD AL, [BX][SI](3)ADD [BX+0B2H], CX(4)ADD [0524H], 2A59H(5)ADD AL, 0B5H3、答:(1)MOV BX, OFFSET BLOCK + 0AHMOV DX, [BX](2)MOV BX, 0AHMOV DX, BLOCK[BX](3)MOV BX, OFFSET BLOCKMOV SI, 0AHMOV DX, [BX][SI]4、答:(1)1200H(2)0100H(3)4C2AH(4)3412H(5)4C2AH(6)7856H(7)65B7H6、答:MOV BX, 2000HLES DI, [BX]MOV AX, ES : [DI]7、答:(1)064DH(2)0691H(3)05ECH9、答:(1)MOV AX, [ BX+0CH ]MOV ZERO, AX(2)MOV AX, ARRAY[BX]MOV ZERO, AX10、答:(1)(AX)= 1234H(2)(AX)= 0032H11、答:(AX)= 1E00H12、答:LEA BX, CSTRINGMOV DL, [BX]MOV DH, [BX+6]13、答:14、答:LES BX, [2000]MOV AX, ES:[BX]16、答:(1)74D4H SF=0 ZF=0 CF=0 OF=0 (2)A5C1H SF=1 ZF=0 CF=0 OF=1 (3)3240H SF=0 ZF=0 CF=1 OF=0 (4)0000H SF=0 ZF=1 CF=1 OF=0 17、答:(1)0C754H SF=1 ZF=0 CF=1 OF=0 (2)12B0H SF=0 ZF=0 CF=0 OF=0 (3)45B0H SF=0 ZF=0 CF=0 OF=1 (4)9F24H SF=1 ZF=0 CF=0 OF=0 21、答:(1)MOV AX, ZSUB AX, XADD AX, WMOV Z, AX(2)MOV BX, XADD BX, 6MOV CX, RADD CX, 9MOV AX, WSUB AX, BXSUB AX, CXMOV Z, AX(3)MOV AX, W IMUL XMOV BX, YADD BX, 6IDIV BXMOV Z, AXMOV R, DX22、答:NEG DXNEG AXSBB DX, 016、答:MOV AX, AMOV DX, A+2 TEST DX, 8000H JZ STORE ; 为正NEG DXNEG AXSBB DX, 0STORE : MOV B, AX MOV B+2, DX17、答:(1)MOV AL, SSUB AL, 6DASADD AL, VDAAMOV U, AL(2)MOV AL, ZSUB AL, UDASMOV U, ALMOV AL, XADD AL, WDAASUB AL, UDASMOV U, AL23、答:(1)(BX)= 9AH (2)(BX)= 61H (3)(BX)= 0FBH (4)(BX)= 1CH (5)(BX)= 0 (6)(BX)= 0E3H 26、答:把(DX)(AX)中的双字左移四位(乘以16)。

《IBM-PC汇编语言程序设计》答案(第二版)

《IBM-PC汇编语言程序设计》答案(第二版)

(9) 物理地址 (F)
I.把若干个模块连接起来成为可执行文件的系统程序。
(10) 汇编语言 (H)
J.保存各逻辑段的起始地址的寄存器,8086/8088 机有四个:CS、DS、
SS、ES。
(11) 机器语言 (G)
K.控制操作的标志,如 DF 位。
(12) 汇编程序 (E)
L.记录指令操作结果的标志,共 6 位:OF、SF、ZF、AF、PF、CF。
31FF0
数据寄存器等 CX
41FF0
代码段
AX、DX,乘数和除数用其他寄 2.6 题的存储器分段示意图
存器或存储器
(4) 保存段地址
段寄存器
(5) 表示运算结果为 0
ZF=1
(6) 将要执行的指令地址
CS:IP
(7) 将要从堆栈取出数据的地址 SS:SP
答:答案见题目的右边。
2.8 那些寄存器可以用来指示存储器地址? 答:BX、BP、SI、DI、堆栈操作时的 SP、对应的段地址、386 及其后继机型的 Exx。
(4) 32767=111 1111 1111 1111B=7FFFH
(4) 32767
1.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=255
1.3 将下列十六进制数转换为二进制数和十进制数:
(1) FA

ibmpc汇编语言(第二版)第四章课后详细习题答案

ibmpc汇编语言(第二版)第四章课后详细习题答案

4.1 指出下列指令的错误:(1) MOV AH, BX ;寄存器类型不匹配(2) MOV [BX], [SI] ;不能都是存储器操作数(3) MOV AX, [SI][DI] ;[SI]和[DI]不能一起使用(4) MOV MYDAT [BX][SI], ES:AX ;AX寄存器不能使用段超越(5) MOV BYTE PTR [BX], 1000 ;1000超过了一个字节的范围(6) MOV BX, OFFSET MYDAT [SI] ;MYDAT [SI]已经是偏移位置,不能再使用OFFSET(7) MOV CS, AX ;CS不能用作目的寄存器(8) MOV ECX, AX ;两个操作数的数据类型不同答:见注释。

4.2 下面哪些指令是非法的?(假设OP1,OP2是已经用DB定义的变量)(1) CMP 15, BX ;错,立即数不能作为目的操作数(2) CMP OP1, 25(3) CMP OP1, OP2 ;错,不能都是存储器操作数(4) CMP AX, OP1 ;错,类型不匹配,应为CMP ax, word ptrop1答:见注释。

4.3 假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列哪些指令是非法的?它们的错误是什么?(1) MOV BP, AL ;错,寄存器类型不匹配(2) MOV WORD_OP [BX+4*3][DI], SP(3) MOV WORD_OP1, WORD_OP2 ;错,不能都是存储器操作数(4) MOV AX, WORD_OP1[DX] ;错,DX不能用于存储器寻址(5) MOV SAVE_WORD, DS(6) MOV SP, SS:DATA_WORD [BX][SI](7) MOV [BX][SI], 2 ;错,[BX][SI]未指出数据类型(8) MOV AX, WORD_OP1+WORD_OP2(9) MOV AX, WORD_OP1-WORD_OP2+100(10)MOV WORD_OP1, WORD_OP1-WORD_OP2答:见注释。

汇报答案

汇报答案

IBM-PC汇编语言程序设计(第二版)课后习题答案23。

每條指令單獨執行完後的結果依次為:(1)9AH (2)61H (3)0FBH (4)1CH (5)0 (6)0E3H24。

執行指令序列後,BX的內容為:0DAH25。

(1)把53D乘以2的程序:MOV AX,35H ;53D=35HSHL AX ,1(2)把53除以2 的程序:MOV AX,35HSHR AX,1其他的同理~~26。

這段程序完成的功能是:把DX:AX中的雙字數據左移4位(相當於乘以16D)27。

各條指令單獨執行後,DX的值依次為:(1)5CH (2)17H (3)05C8H (4)72H (5)2017H (6)0CDH (7)0172H (8)05CCH (9)0DCH28。

該程序段執行完後,BX寄存器的內容是:C02DH29。

(1)从左到右把CONMAE中的字符串伟送到PRLINE的程序实现:LEA SI,CONAME ;把CONAME中第一个字节的偏移地址送到SI中LEA DI,PRLINE ;把PRLINE中第一个字节的偏移地址送到DI中MOV CX,20 ;把重复次数放到CX里CLD ;让SI DI从低地址指向高地址(即从左到右传送)REP MOVSB ;传送(2)从右到左把CONMAE中的字符串传送到PRLINE中的程序实现:LEA SI ,CONAMELEA DI,PRLINEMOV CX,20STD ;和上面唯一不同的就是这次是从右到左,所以要从高地址批向低地址REP MOVSB(3)把CONAME中的第三和第四個字節裝入AX的程序實現:LEA SI ,[CONAME+3]LODSW(4)把AX寄存器的內容存入從PRLINE+5開始的字節中的程序實現:LEA DI ,[PRLINE+5]STOSW(5)檢查CONAME字符串中有無空格字符,如有把它偉送給BH寄存器的程序實現:LEA DI,CONAME ;把CONAME中第一個字符偏移地址放入DI中MOV CX,20 ;把重複次數放到CX中MOV AL,20H ;把空格符的ASCII值放入AL中CLD ;從低到高REPNE SCASB ;比較MOV BH,[DI-1]R ;把檢查到的空格符送到BH中30。

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

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)(沈美明,温冬蝉著)第三章答案1-222006-12-07 11:501。

.(1)立即寻址没有(2)直接寻址7237H(3)使用BX的寄存器寻址没有(4)使用BX的间接寻址637DH(5)使用BX的寄存器相对寻址0D5F0H(6) 基址变址寻址8E18H(7)相对基址变址004FH2。

根据下列要求,写出相应的汇编指令。

(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,(2010 1)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(20 201)=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。

(1)MOV AX,0ABH 立即数寻址无物理地址(2)MOV AX,BX 寄存器寻址同上(3)MOV AX,[100] 直接寻址20100H(4)MOV AX,V AL 直接寻址20050H(5) MOV AX,[BX] 寄存器间接寻址20100H(6) MOV AX,ES:[BX] 直接寻址21100H(7) MOV AX,[BP] 寄存器间接寻址20010H(8)MOV AX,[SI] 同上200A0H(9) MOV AX,[BX+10] 寄存器相对寻址20110H(10)MOV AX,V AL[BX] 同上20150H(11) MOV AX,[BX][SI] 基址变址寻址201A0H(12) MOV AX,V AL[BX][SI] 相对基相变址寻址201F0H9。

(1)的指令:MOV AX, [BX][0CH] MOV ZREO ,AX(2) 的指令:MOV AX,ARRAY[BX] MOV ZREO,AX10。

MOV AX,TABLE 是把符号地址TABLE里的内容送到AX里,指令执行完后,(AX)=1234HLEA AX,TABLE 是把符号地址TABLE 的有效地址(这里是偏移量)送到指定寄存器AX里,指令执行完后,(AX)=0032H11。

执行完指令后,(AX)=1E00H12。

LEA AX,CSTRINGMOV DL,AXMOV DH,[AX+6]13。

这个,,图,很麻烦了,所以就不画了~~大家可以看一下课本上P51--P53,很清楚,看完了这道韪也会了~~~14。

LES BX,[2000]MOV AX,ES:[BX]注意:一开始我写的是:MOV AX,ES:[8000H],后来看到题目里要求写两条指令,所以一条就不行了,就要画蛇添足~~~15。

运算结果SF,ZF,CF,OF各位的值(从左至右依次往下~)(1)74D4H 0 0 0 0(2) A5C1H 1 0 0 1(3) 4240 H 0 0 1 0(4) 0000 H 0 1 1 016。

接上表~(1) 5D14 0 0 0 0(2) A870 1 0 0 1(3) D870 1 0 0 0(4) 34E4 0 0 1 017。

(1).MOV AX,Z ;把Z送到AXSUB AX,X ;Z-XADD AX,W ;W+(Z-X)MOV Z,AX ;结果保存在Z中(2). MOV AX,R ;R送到AX中ADD AX,9 ;R+9MOV BX,X ;X送到BX中ADD BX,6 ;X+6ADD AX,BX ;(R+9)+(X+6),结果保存在AX中MOV BX,W ;W送到BX中SUB BX,AX ;W-(R+9)-(X+6),连续减去两个数,相当于减去这两个数的和~~MOV Z,BX ;最终结果送到Z中(3)MOV AX,W ;把W送到AXIMUL X ;W*X 注意:低十六位保存在AX里,高十六位保存在DX 里MOV BX,Y ;把Y送到BX 里ADD BX,6 ;Y+6IDIV BX ;(W*X)/(Y+6) 注意:商保存在AX里,余数保存在DX里MOV Z,AX ;把商送到Z中,MOV R,DX ;把余数送到R中(4)MOV AX,W ;把W送到AX 中SUB AX,X ;W-XCWD ;把AX中的十六位带符号数扩展成为32位,低十六位保存在AX中,高十六位保;在DX 中MOV BX,5 ;把5送到BX 中IDIV BX ;(W-X)/5 被除数为32位,除数为16位商为16位IMUL Y ;上一步结果再乖以Y,积为32位MOV BX,2 ;把2送到BX中IMUL BX ;上一步乘法所得的积再乘以2,各为64位MOV Z,EAX ;把结果中低32位放入Z双字单元中MOV [Z+4],EDX ;把结果中高32位放入Z+4双字单元中18。

指令本条指令执行完后AX的内容执行完后CF,SF,ZF的值MOV AX,1234H 1234H 0 0 0 MOV CL,4 1234H0 0 0ROL AX,CL 2341H1 0 0DEC AX 2340H1 0 0MOV CX,4 2340H1 0 0MUL CX 8918H0 0 0INT 20H程序结束后,(AX)=8918H (DX)=0000H19。

指令执行完后AX的内容执行完后CF ,SF,ZF和OF的值MOV AX,0 00010DEC AX FFFFH0100ADD AX,7FFFH 7FFEH0000ADD AX,2 8000H0101NOT AX 7FFFH0101SUB AX,0FFFFH 8000H1101ADD AX,8000H 0000H1011SUB AX,1 FFFFH1101AND AX,58D1H 58D1H0000SAL AX,1 B1A2H0101SAR AX,1 D8D1H0100NEG AX 272FH1000ROR AX,1 9397H100120。

(1)MOV AX,DA TAXADD DATAY,AX(2)MOV AX,DA TAXADD DATAY,AXMOV AX,[DA TAX+2]ADD [DA TAY+2] ,AX(3)本組指令的作用是:BX <------[DA TAX]+[DA TAY]+[1](CF的值) 帶進位加法~(4)MOV AX,DA TAXMUL DA TAY ;結果的高十六位保存在DX裏,低十六位保存在AX裏(5)MOV AX,DA TAXMOV DX,[DA TAX+2]MUL DWORD DATAY ;結果的高三十二位保存在EDX裏,低三十二位保存在EAX 裏;這裏所用的DWORD為一屬性操作符,在第四章會學到~~(6)MOV AX,DA TAXDIV17H ;結果商保存在AL中,余數在AH中(7)MOV AX,DA TAXCDWDIV DA TAY21。

NEG DXNEG AXSBB DX,022。

MOV AX,A ;把雙字長數的低字放到AX中MOV DX,[A+2] ;把雙字長數的高字放到DX中TEST DX,8000H ;測試雙字長數的符號JZ RIGHT ;如果是非負數,則直接保存NEG DX ;如果是負數,則求補NEG AXSBB DX,0RIGHT:MOV B ,AXMOV [B+2],DX2006-12-07 11:4823。

每條指令單獨執行完後的結果依次為:(1)9AH (2)61H (3)0FBH (4)1CH (5)0 (6)0E3H24。

執行指令序列後,BX的內容為:0DAH25。

(1)把53D乘以2的程序:MOV AX,35H ;53D=35HSHL AX ,1(2)把53除以2 的程序:MOV AX,35H SHR AX,1其他的同理~~26。

這段程序完成的功能是:把DX:AX中的雙字數據左移4位(相當於乘以16D)27。

各條指令單獨執行後,DX的值依次為:(1)5CH (2)17H (3)05C8H (4)72H (5)2017H (6)0CDH (7)0172H (8)05CCH(9)0DCH28。

該程序段執行完後,BX寄存器的內容是:C02DH29。

(1)从左到右把CONMAE中的字符串伟送到PRLINE的程序实现:LEA SI,CONAME ;把CONAME中第一个字节的偏移地址送到SI中LEA DI,PRLINE ;把PRLINE中第一个字节的偏移地址送到DI中MOV CX,20 ;把重复次数放到CX里CLD ;让SI DI 从低地址指向高地址(即从左到右传送)REP MOVSB ;传送(2)从右到左把CONMAE中的字符串传送到PRLINE中的程序实现:LEA SI ,CONAMELEA DI,PRLINEMOV CX,20STD ;和上面唯一不同的就是这次是从右到左,所以要从高地址批向低地址REP MOVSB(3)把CONAME中的第三和第四個字節裝入AX 的程序實現:LEA SI ,[CONAME+3]LODSW(4)把AX寄存器的內容存入從PRLINE+5開始的字節中的程序實現:LEA DI ,[PRLINE+5]STOSW(5)檢查CONAME字符串中有無空格字符,如有把它偉送給BH寄存器的程序實現:LEA DI,CONAME ;把CONAME中第一個字符偏移地址放入DI中MOV CX,20 ;把重複次數放到CX中MOV AL,20H ;把空格符的ASCII值放入AL中CLD;從低到高REPNE SCASB ;比較MOV BH,[DI-1]R ;把檢查到的空格符送到BH中30。

相关文档
最新文档