




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章1.1 (如果十六进制数的最高位是字母(如:A,B),则应在其前面加0(零),如本题(3)(1) 369D=1 0111 0001B=171H(2) 10000D=10 0111 0001 0000B=2710H(3) 4095D=1111 1111 1111B=0FFFH(4) 32767D=111 1111 1111 1111B=7FFFH1.2(1) 10 1101B=2DH=45D(2) 1000 0000B=80H=128D(3) 1111 1111 1111 1111B=0FFFFH=65535D(4) 1111 1111B=0FFH=255D1.3(1) 0FAH=1111
2、 1010B=250D(2) 5BH=101 1011B=91D(3) 0FFFEH=1111 1111 1111 1110B=65534D(4) 1234H=1 0010 0011 0100B=4660D1.4(1) 3AH+0B7H=0F1H(2) 1234H+0AFH=12E3H(3) 0ABCDH0FEH=0AACFH(5) 7AB6FH=35325H1.5(1) (-85D)+76D=1010 1011B+0100 1100B=1111 0111B=0F7H(2) 85D+(-76D)=0101 0101B+1011 0100B=0000 1001B=09H(3) 85D76D=01
3、01 0101B+1011 0100B=0000 1001B=09H(4) 85D(-76D)=0101 0101B+0100 1100B=1010 0001B=0A1H(5) (-85D) 76D=1010 1010B+1011 0100B=0101 1111B=5FH(6) -85D(-76D)=1010 1011B +0100 1100B=1111 0111B=0F7H1.6(1) 0D8H如果它被看作带符号数,则它表示 40D;如果它被看作无符号数,则它216D。(2) 0FFH如果它被看作带符号数,则它表示1D;如果它被看作无符号数,则它255D。1.7(1) 4FH, 79D, O
4、(2) 2BH, 43D, +(3) 73H, 115D, s(4) 59H, 89D, Y1.8(1) For example,46H 6FH 72H 20H 65H 78H 61H 6DH 70H 6CH 65H 2CH(2) This is a number 3692.54H 68H 69H 73H 20H 69H 73H 20H 61H 20H 6EH 75H 6DH 62H 65H 72H 20H 33H 36H 39H 32H 2EH第二章2.1256个2.2 E5H 000B0H 1EH 000B1H 000B2H 3CH 000B3H 2AH 000B4H2.3 30022H和
5、30024H字节单元的内容分别为 (30022H)=0ABH (30024H)=0EFH30021H和30022H字单元的内容分别为 (30021H)=0AB34H (30022H)=0CDABH2.4逻辑地址为3017:000A的存储单元的物理地址为3017AH。逻辑地址为3015:002A的存储单元的物理地址为3017AH。逻辑地址为3010:007A的存储单元的物理地址为3017AH。2.50AAA40H2.7(1) AX, BX, CX, DX, SI, DI(2) CX(3) AX, BX, CX, DX, SI, DI(4) CS, DS, SS, ES(5) FLAGS(6) C
6、S, IP(7) SS, SP, BP2.8指示存储器地址的寄存器如下所示 段 偏移 CS IP SS SP, BP DS BX, DI, SI ES DI2.91.(M) 2.(C) 3.(D) 4.(B) 5.(A) 6.(L) 7.(K) 8.(J)9.(F) 10.(H) 11.(G) 12.(E) 13.(I) 14.(O) 15.(N)第三章1。.(1)立即寻址 没有(2)直接寻址 7237H(3)使用BX的寄存器寻址 没有(4)使用BX的间接寻址 637DH(5)使用BX的寄存器相对寻址 0D5F0H(6) 基址变址寻址 8E18H(7)相对基址变址 004FH2。根据下列要求,
7、写出相应的汇编指令。(1)ADD DX,BX(2) ADD AL,BXSI(3) ADD BX0B2H, CX(4) MOV AX,2A59H ADD 0524H ,AX(5) ADD AL ,0B5H3。(1)寄存器间接寻址 MOV BX,OFFSET BLOCK0AHMOV DX ,BX(2)寄存器相对寻址MOV SI,OAHMOV DX,BLOCKSI(3)基址变址寻址MOV BX ,BLOCKMOV SI,OAHMOV DX,BXSI4。现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(201
8、03)=78H,(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 1100BX 4C2AH(6) MOV AX,BXSI 7856H(7) MOV AX,1100BXSI 65B7H 5。(1) 7CD9H (2) 1200H (3) 6319H6。 MOV BX,2000H LES DI ,BX MOV A
9、X, ES:DI 7。转向地址OBJ的值分别为:(1)064DH (2)0691H (3)05E0H 注意有符号数的符号位8。(1) MOV AX,0ABH 立即数寻址 无物理地址 (2)MOV AX,BX 寄存器寻址 同上 (3)MOV AX,100 直接寻址 20100H (4)MOV AX,VAL 直接寻址 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 寄存器相对寻址
10、20110H (10)MOV AX,VALBX 同上 20150H (11) MOV AX,BXSI 基址变址寻址 201A0H (12) MOV AX,VALBXSI 相对基相变址寻址 201F0H9。(1)的指令: MOV AX, BX0CH MOV ZREO ,AX(2) 的指令: MOV AX,ARRAYBX MOV ZREO,AX10。 MOV AX,TABLE 是把符号地址TABLE里的内容送到AX里,指令执行完后,(AX)=1234H LEA AX,TABLE 是把符号地址TABLE 的有效地址(这里是偏移量)送到指定寄存器AX里,指 令执行完后,(AX)=0032H11。执行完
11、指令后,(AX)=1E00H12。 LEA AX,CSTRING MOV DL,AX MOV DH,AX+613。这个,图,很麻烦了,所以就不画了大家可以看一下课本上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。 接上
12、表(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送到AX SUB AX,X ;Z-X ADD AX,W ;W+(Z-X) MOV Z,AX ;结果保存在Z中(2). MOV AX,R ;R送到AX中 ADD AX,9 ;R+9 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),连续减去两个数,相当于减去这两个数的和
13、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位
14、,除数为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 0MOV CL,4 1234H 0 0 0ROL AX,CL 2341H 1 0 0DEC AX 2340H 1 0 0MOV CX,4 2340H 1 0 0 MUL CX 8D00H 0 0 0INT
15、 20H程序结束后,(AX)=8918H (DX)=0000H19。指令 执行完后AX的内容 执行完后CF ,SF,ZF和OF的值MOV AX,0 0 0010DEC AX FFFFH 0100ADD AX,7FFFH 7FFEH 0000ADD AX,2 8000H 0101NOT AX 7FFFH 0101SUB AX,0FFFFH 8000H 1101ADD AX,8000H 0000H 1011SUB AX,1 FFFFH 1101AND AX,58D1H 58D1H 0000SAL AX,1 B1A2H 0101SAR AX,1 D8D1H 0100NEG AX 272FH 1000
16、 ROR AX,1 9397H 100120。(1)MOV AX,DATAX ADD DATAY,AX(2)MOV AX,DATAX ADD DATAY,AX MOV AX,DATAX+2 ADD DATAY+2 ,AX(3)本組指令的作用是:BX -DATAX+DATAY+1(CF的值) 帶進位加法(4)MOV AX,DATAX MUL DATAY ;結果的高十六位保存在DX裏,低十六位保存在AX裏(5)MOV AX,DATAX MOV DX,DATAX+2 MUL DWORD DATAY ;結果的高三十二位保存在EDX裏,低三十二位保存在EAX裏 ;這裏所用的DWORD為一屬性操作符,在第
17、四章會學到(6)MOV AX,DATAX DIV 17H ;結果商保存在AL中,余數在AH中(7)MOV AX,DATAX CDW DIV DATAY21。NEG DX NEG AX SBB DX,022。MOV AX,A ;把雙字長數的低字放到AX中MOV DX,A+2 ;把雙字長數的高字放到DX中TEST DX,8000H ;測試雙字長數的符號JZ RIGHT ;如果是非負數,則直接保存NEG DX ;如果是負數,則求補 NEG AXSBB DX,0RIGHT: MOV B ,AX MOV B+2,DX23。每條指令單獨執行完後的結果依次為:(1) 9AH (2)61H (3)0FBH (
18、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
19、中的字符串伟送到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的
20、程序實現:LEA SI ,CONAME+3LODSW(4)把AX寄存器的內容存入從PRLINE+5開始的字節中的程序實現:LEA DI ,PRLINE+5STOSW(5)檢查CONAME字符串中有無空格字符,如有把它偉送給BH寄存器的程序實現:LEA DI,CONAME ;把CONAME中第一個字符偏移地址放入DI中MOV CX,20 ;把重複次數放到CX中MOV AL,20H ;把空格符的ASCII值放入AL中CLD ;從低到高REPNE SCASB ;比較MOV BH,DI-1R ;把檢查到的空格符送到BH中30。MOV CX,12H ;把重複次數放到CX中。這裏用十六進制表示MOV SI
21、,0 ;初始化SIMOV AX,26H ;把&字符的ASCII值放入AXCHECK: CMP AX,STRINGSI ;依次查找INC SILOOPNE CHECK ;找到了就退出MOV AX,20H ;把空格符的ASCII值勤放入AX中MOV STRINGSI-1,AX ;用空格符代替&31。(1)用空格符清除PRINT_LINE域的程序实现:MOV AL,20HLEA DI ,PRINT_LINEMOV CX,132CLDREP STOSB(2)在STUDENT_ADDR中查找 第一个_的程序实现:MOV AX,2DH ;把“”的ASCII值放入AX MOV SI,0 ;初始化SIMOV
22、CX,9 ;把重複次數放入CX中;依次檢查STUDENT-ADDR中的字符是否為_,找到第一个停下来CHECK:CMP AX ,STUDENT_ADDRSI ;INC SILOOPNZ CHECK(3)在STUDENT_ADDR中查找最后一个”_“的程序实现:;和第二題不同的就是這次是從右到左查詢,所以SI的初始化為9MOV AX,2DHMOV SI ,9MOV CX,9CHECK :CMP AX,STUDENT_ADDRSIDEC SILOOPNZ CHECK(4)程序實現:MOV AL,2OH ;把空格符的ASCII值放入AL中LEA DI ,STUDENT_NAME ;把STUDENT_
23、NAME中第一个字符偏移地址放到DI中MOV CX,30 ;把重复次数放到CX中CLD ;让DI从低位移到高位REPZ SCASB ;如果有不是空格符的,就退出JZ STORE ;如果全是空格符,就转到STORE中;用*代替空格STORE:MOV AL 2AHMOV CX ,30STD ;注意,这里是把前面从低到高移动的DI再从高到低移上去REP STOSB(5)程序实现:;把STUDENT_NAME 移到PRINT_LINE的前30个字节中LEA SI, STUDENT_NAMELEA DI,PRINT_LINEMOV CX ,30CLDREP MOVSB;把STUDENT_ADDR移到PR
24、INT_LINE的后9个字节中LEA SI ,STUDENT_ADDR+9LEA DI,PRINT_LINE+132MOV CX,9STDREP MOVSB32。程序实现: 。LEA SI,OLDSLEA DI,NEWSMOV CX,5REPZ CMPSBJNZ NEW_LESS 。33。(1)CMP DX,CX JA EXCEED(2)CMP BX,AX JG EXCEED(3)CMP CX,0 JZ ZERO(4)CMP BX,AX JO OVERFLOW(5)CMP BX,AX JLE EQ_SMA(6) CMP DX,CX JBE EQ_CX34。(1)跳转到:L1 (2)跳转到L1
25、(3)跳转到L2 (4)跳转到L5 (5)跳转到L535。(1)可以引起转移到L1的指令有: NB ,BE ,NL ,LE(2)可以引起转移到L1的指令有: 同上(3)可以引起转移到L1的指令有: B,BE ,L , LE(4)可以引起转移到L1的指令有: NB ,NBE ,NL ,NLE(5)可以引起转移到L1的指令有: 同上(6)可以引起转移 到L1的指令有: 同(3)(7)可以引起转移 到L1的指令有: 同上 36。37。 程序流程图就不画了,呵呵,程序如下MOV AL,STAUSSI ;把要测试的字节放到AL中AND AL,2AH ;把第一,三,五位为一其他位为0的数-2AH,与这个字
26、节比较,结果 ;放到AL中 JZ ROUTINE_4 ;如果结果为0,则三位都为0XOR AL,2AH ; 前面相与的结果再与2AH异或JZ ROUTINE_1 ;如果结果为0,则三位都为1BSF BL,AL ;BSR BL ,ALCMP BL,CL;如果向前和向后测试后,第一个1 的位置相同,说明只有一个1,则异或运算前有AL中有两个1JE ROUTINE_2ROUTINE_1注:本题还有其他解法,请大家自己试试38。(1)当括号内是:LOOP时,循环四次,程序结束后(AX)=05 (BX)= 16 (CX)=0 (DX)=0(2) 当括号内是: LOOPE 时,不循环,程序结束后(AX)=
27、02 (BX)=04 (CX)=03 (DX)=02(3)当括号内是:LOOPNE 时:循环三次,程序结束后(AX)=04 (BX)=11 (CX)=01 (DX)=039。图,就不画了,呵呵自己看一下课本,P10140.。(1)0000 3100H (2)5100H (3)7100H41。(1)目的地址:2004H 内容依次为: 56H F4H 23H 98H (2)目的地址: 384CH 内容依次为: 91H 34H F2H 01H (3)目的地址: 寄存器,无物理地址 内容依次为:92H 6DH A2H 4CH42。(1)PUSH AX(SP)-(SP)-2 (SP+1)-(AH) (S
28、P)-(AL)(2)POP ESI (ESI)-(ESP)+3,(ESP)+2,(ESP)+1, (ESP) (ESP)-(ESP)+4(3)PUSH BX(SP)-(SP)-2 (SP+1)-(BX+1) (SP)-(BX)(4) PUSHAD (ESP)-(EAX) (ESP-4)-(ECX) (ESP-8)-(EDX) (ESP-12)-(EBX) (ESP-16)-(ESP) ;这里指的是指令执行前的ESP (ESP-20)-(EBP) (ESP-24)-(ESI) (ESP-28)-(EDI) (ESP)-(ESP)-32(5)POP DS(DS)-(SP)+1,(SP)(SP)-(
29、SP)+2(6) PUSH 4(SP)-(SP)-2(SP+1)-0(SP)-443。(1) 2CE FF93H (2) 24B 76A0H (3)909 0804H (4) 6F 13ADH44。(1)0FFFF FFFCH (2)0FFFF FFF8H (3)0000 0007H (4)0000 0099H45。 (EAX)=0 (EBX)=25d46。 (AX)=3d (DX)=7d47。ADD ECX,EDX ADD ECX,ESI MOV EDI ,ECX48。 IMUL BX,DX,100H执行的操作是: (BX)-(DX)*100H49。程序实现:MOV AL,BLCBWIDIV
30、 CLIMUL 2MOV DX,AX50。JMP DI 是直接跳转,执行的操作是: (IP)-(IP)+(DI)JMP DI是间接跳转,执行的操作是: (IP)-(IP)+(DI)跳转到DI中所指向的内存单元中的指令地址51。假设数组名为NUMBERS,程序如下MOV BX,0 ;后面用到MOV CX,100H ;把循环次数放入CXMOV AL,42HMOV SI,0 ;初始化SI;CHECK 用来实现查找功能CHECK : CMP AL ,NUMBERSSIINC SIJB STORE1 ;大于42H的数的个数存入UPJA STORE2 ;小于42H的的数的个数存入DOWN中LOOP CHE
31、CK ;相等继续循环STORE1 INC BL ;找到一个大于42 的数,BL值增加1 MOV UP,BL LOOP CHECKSTORE2 INC BH MOV DOWN ,BH LOOP CHECK第四章1。指令下列指令的错误(1) MOV AH,BX 源操作数与目的操作数长度不相同(2) MOV BX,SI 这是两个内存单元在传递数据,而这在汇编语言中是不允许的(3) MOV AX,SIDI 不能用两个变址连用,其中一个应为基址(4) MOV MYDATBXSI,ES:AX 同(2)(5) MOV BYTE PTRBX,1000 必须有一个为寄存器(6)MOV BX,OFFSET MYD
32、ATSI OFFSET 不能与复杂操作数相连(7)MOV CS,AX 不能对CS赋值(8)MOV ECX,AX 操作数类型不同2。(1)合法 (2)非法 (3)非法 (4)非法3。(1)非法,操作数类型不同 (2)合法 (3)非法,不允许两个内存单元直接传递数据,你把人家CPU放哪了?呵 (4)合法 (5)合法 (6)合法(7) 非法,必须有一个寄存器把CPU放哪了?(8)非法,两个内存单元地址相加没有意义 (9)合法 (10)非法,同(3)4。(1)两内存单元传递数据 (2)操作数类型不同 (3)跳转指令只能跳转到符号地址 (4)转移指令后不能为变量,只能为标号 (5)格式不对, 应为 NEAR PTR 。5。图,就不画了6。(1)DW 5150H(2)MOV AX,5150H MOV ADDRESS ,AX等,写出几个就可以7。DATASG SEGMEN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年拔罐器合作协议书
- 2025年数显读卡仪合作协议书
- 2025年娱乐、游览用船舶合作协议书
- 社区活动组织及场地租赁协议
- 电子合同登记协议
- 智慧城市规划与设计合同
- 航空航天行业航天器动力系统方案
- IT行业软件开发工程师出生日期及工作证明(6篇)
- 商业办公空间装修设计与施工一体化协议
- 合作研发创新科技产品协议
- 旅行社企业章程范本
- 2025年宁波余姚市直属企业招招聘笔试参考题库含答案解析
- 《心理健康测试》课件
- 输变电工程监督检查标准化清单-质监站检查
- GB/T 26718-2024城市轨道交通安全防范系统技术要求
- 《心房颤动》课件
- 静脉输液操作考试流程
- 校园艺术团指导教师聘用合同
- 护理记录与交班制度
- 2024-2030年中国海外医疗中介服务行业运行现状及投资潜力分析报告
- 幼儿园应急疏散演练
评论
0/150
提交评论