欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    IBMPC汇编语言程序设计第二版课后习题答案清华大学Word格式文档下载.docx

    • 资源ID:8533700       资源大小:26.17KB        全文页数:30页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    IBMPC汇编语言程序设计第二版课后习题答案清华大学Word格式文档下载.docx

    1、(5 MOV AX,BX 寄存器间接寻址(6 MOV AX,ES:BX 直接寻址21100H(7 MOV AX,BP 寄存器间接寻址20010H(8MOV AX,SI 同上200A0H(9 MOV AX,BX+10 寄存器相对寻址20110H(10MOV 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 是把符号地址TA

    2、BLE里的内容送到AX里,指令执行完后,(AX=1234HLEA AX,TABLE 是把符号地址TABLE 的有效地址(这里是偏移量送到指定寄存器AX里,指令执行完后,(AX=0032H11。执行完指令后,(AX=1E00H12。 LEA AX,CSTRINGMOV DL,AXMOV DH,AX+613。这个,图,很麻烦了,所以就不画了大家可以看一下课本上P51-P53,很清楚,看完了这道韪也会了14。LES BX,2000MOV AX,ES:BX注意:一开始我写的是: MOV AX,ES:8000H,后来看到题目里要求写两条指令,所以一条就不行了,就要画蛇添足15。运算结果 SF,ZF,CF

    3、,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-XMOV 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,结

    4、果保存在AX中MOV BX,W ; W送到BX中SUB BX,AX ; W-(R+9-(X+6,连续减去两个数,相当于减去这两个数的和MOV Z,BX ;最终结果送到Z中(3MOV AX,W ;把W送到AXIMUL X ;W*X 注意:低十六位保存在AX里,高十六位保存在DX里MOV BX,Y ;把Y送到BX 里Y+6IDIV BX ;(W*X/(Y+6 注意:商保存在AX里,余数保存在DX里把商送到Z中,MOV R,DX ;把余数送到R中(4把W送到AX中W-XCWD ;把AX中的十六位带符号数扩展成为32位,低十六位保存在AX 中,高十六位保;在DX中MOV BX,5 ;把5送到BX中(W

    5、-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 0MOV CL,4 1234H 0 0 0ROL AX,CL 2341H 1 0 0DEC AX 2340H 1 0 0MOV CX,4 2340H 1 0 0MUL CX 8918H 0

    6、0 0INT 20H程序结束后,(AX=8918H (DX=0000H19。指令执行完后AX的内容执行完后CF ,SF,ZF和OF的值MOV AX,0 0 0010DEC AX FFFFH 0100ADD AX,7FFFH 7FFEH0000ADD AX,2 8000H 0101NOT AX 7FFFH 0101SUB AX,0FFFFH 8000H1101ADD AX,8000H 0000H1011SUB AX,1 FFFFH 1101AND AX,58D1H 58D1HSAL AX,1 B1A2H 0101SAR AX,1 D8D1H 0100NEG AX 272FH 1000ROR AX

    7、,1 9397H 100120。(1MOV AX,DATAXADD DATAY,AX(2MOV AX,DATAXMOV AX,DATAX+2ADD DATAY+2 ,AX(3本組指令的作用是:BX -DATAX+DATAY+1(CF的值 帶進位加法(4MOV AX,DATAXMUL DATAY ;結果的高十六位保存在DX裏,低十六位保存在AX裏(5MOV AX,DATAXMOV DX,DATAX+2MUL DWORD DATAY ;結果的高三十二位保存在EDX裏,低三十二位保存在EAX裏這裏所用的DWORD為一屬性操作符,在第四章會學到(6MOV AX,DATAXDIV 17H ;結果商保存在

    8、AL中,余數在AH中(7MOV AX,DATAXCDWDIV DATAY21。NEG DXNEG AXSBB DX,022。MOV AX,A ;把雙字長數的低字放到AX中MOV DX,A+2 ;把雙字長數的高字放到DX中TEST DX,8000H ;測試雙字長數的符號JZ RIGHT ;如果是非負數,則直接保存NEG DX ;如果是負數,則求補RIGHT: MOV B ,AXMOV B+2,DXIBM-PC汇编语言程序设计(第二版课后习题答案(清华大学出版社(沈美明,温冬蝉著第三章答案23-382006-11-02 22:58 IBM-PC汇编语言程序设计(第二版课后习题答案23。每條指令單獨

    9、執行完後的結果依次為:(1 9AH (261H (30FBH (41CH (50 (60E3H24。執行指令序列後,BX的內容為:0DAH25。(1把53D乘以2的程序:MOV AX,35H ;53D=35HSHL AX ,1(2把53除以2 的程序:MOV AX,35HSHR AX,1其他的同理26。這段程序完成的功能是:把DX:AX中的雙字數據左移4位(相當於乘以16D27。各條指令單獨執行後,DX的值依次為:(1 5CH (217H (305C8H (472H (52017H (60CDH (70172H (805CCH(90DCH28。該程序段執行完後,BX寄存器的內容是:C02DH2

    10、9。(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中的第三

    11、和第四個字節裝入AX的程序實現:LEA SI ,CONAME+3LODSW(4把AX寄存器的內容存入從PRLINE+5開始的字節中的程序實現:LEA DI ,PRLINE+5STOSW(5檢查CONAME字符串中有無空格字符,如有把它偉送給BH寄存器的程序實現:LEA DI,CONAME ;把CONAME中第一個字符偏移地址放入DI中把重複次數放到CX中MOV AL,20H ;把空格符的ASCII值放入AL中從低到高REPNE SCASB ;比較MOV BH,DI-1R ;把檢查到的空格符送到BH中30。MOV CX,12H ;把重複次數放到CX中。這裏用十六進制表示MOV SI,0 ;初始化

    12、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 ;MOV CX,9 ;把重複次數放入CX

    13、中依次檢查STUDENT-ADDR中的字符是否為_,找到第一个停下来CMP AX ,STUDENT_ADDRSI ;LOOPNZ CHECK(3在STUDENT_ADDR中查找最后一个”_“的程序实现:和第二題不同的就是這次是從右到左查詢,所以SI的初始化為9MOV AX,2DHMOV SI ,9MOV CX,9CHECK :CMP AX,STUDENT_ADDRSIDEC SI(4程序實現:MOV AL,2OH ;LEA DI ,STUDENT_NAME ;把STUDENT_NAME中第一个字符偏移地址放到DI中MOV CX,30 ;把重复次数放到CX中让DI从低位移到高位REPZ SCAS

    14、B ;如果有不是空格符的,就退出JZ STORE ;如果全是空格符,就转到STORE中用*代替空格STORE:MOV AL 2AHMOV CX ,30注意,这里是把前面从低到高移动的DI再从高到低移上去(5程序实现:把STUDENT_NAME 移到PRINT_LINE的前30个字节中LEA SI, STUDENT_NAMELEA DI,PRINT_LINE把STUDENT_ADDR移到PRINT_LINE的后9个字节中LEA SI ,STUDENT_ADDR+9 LEA DI,PRINT_LINE+132 MOV CX,9STD32。程序实现:。LEA SI,OLDSLEA DI,NEWSMO

    15、V CX,5REPZ CMPSBJNZ NEW_LESS33。(1CMP DX,CXJA EXCEED (2CMP BX,AXJG EXCEED(3CMP CX,0JZ ZERO(4CMP BX,AXJO OVERFLOW (5CMP BX,AXJLE EQ_SMA (6 CMP DX,CXJBE EQ_CX34。(1跳转到:L1(2跳转到L1(3跳转到L2(4跳转到L5(5跳转到L535。(1可以引起转移到L1的指令有: NB ,BE ,NL ,LE(2可以引起转移到L1的指令有:(3可以引起转移到L1的指令有: B,BE ,L , LE(4可以引起转移到L1的指令有: NB ,NBE ,N

    16、L ,NLE(5可以引起转移到L1的指令有:(6可以引起转移到L1的指令有:同(3(7可以引起转移到L1的指令有:36。37。程序流程图就不画了,呵呵,程序如下MOV AL,STAUSSI ;把要测试的字节放到AL中AND AL,2AH ;把第一,三,五位为一其他位为0的数-2AH,与这个字节比较,结果放到AL中JZ ROUTINE_4 ;如果结果为0,则三位都为0XOR AL,2AH ;前面相与的结果再与2AH异或JZ ROUTINE_1 ;如果结果为0,则三位都为1BSF BL,AL ;BSR BL ,ALCMP BL,CL如果向前和向后测试后,第一个1 的位置相同,说明只有一个1,则异或

    17、运算前有AL中有两个1 JE ROUTINE_2ROUTINE_1注:本题还有其他解法,请大家自己试试38。(1当括号内是:LOOP时,循环四次,程序结束后(AX=05 (BX= 16 (CX=0 (DX=0(2当括号内是: LOOPE 时,不循环,程序结束后(AX=02 (BX=04 (CX=03 (DX=02(3当括号内是:LOOPNE 时:循环三次,程序结束后(AX=04 (BX=11 (CX=01 (DX=0IBM-PC汇编语言程序设计(第二版课后习题答案(清华大学出版社(沈美明,温冬蝉著第三章答案39-522006-11-02 23:0239。图,就不画了,呵呵自己看一下课本,P10

    18、140.。(10000 3100H (25100H (37100H41。(1目的地址:2004H 内容依次为: 56H F4H 23H 98H(2目的地址: 384CH 内容依次为: 91H 34H F2H 01H(3目的地址:寄存器,无物理地址 内容依次为:92H 6DH A2H 4CH 42。(1PUSH AX(SP-(SP-2(SP+1-(AH (SP-(AL(2POP ESI(ESI-(ESP+3,(ESP+2,(ESP+1, (ESP(ESP-(ESP+4(3PUSH BX-(BX+1 (SP-(BX(4 PUSHAD-(EAX(ESP-4-(ECX(ESP-8-(EDX(ESP-1

    19、2-(EBX(ESP-16-(ESP ;这里指的是指令执行前的ESP (ESP-20-(EBP(ESP-24-(ESI(ESP-28-(EDI-(ESP-32(5POP DS(DS-(SP+1,(SP-(SP+2(6 PUSH 4-(SP-2-0-443。(1 2CE FF93H (2 24B 76A0H(3909 0804H (4 6F 13ADH44。(10FFFF FFFCH (20FFFF FFF8H(30000 0007H (40000 0099H 45。(EAX=0 (EBX=25d46。(AX=3d (DX=7d47。ADD ECX,EDXADD ECX,ESIMOV EDI ,

    20、ECX48。 IMUL BX,DX,100H执行的操作是:(BX-(DX*100H49。MOV AL,BLCBWIDIV CLIMUL 2MOV DX,AX50。JMP DI 是直接跳转,执行的操作是:(IP-(IP+(DIJMP DI是间接跳转,执行的操作是:-(IP+(DI跳转到DI中所指向的内存单元中的指令地址51。假设数组名为NUMBERS,程序如下MOV BX,0 ;后面用到MOV CX,100H ;把循环次数放入CXMOV AL,42HCHECK 用来实现查找功能 CMP AL ,NUMBERSSIJB STORE1 ;大于42H的数的个数存入UPJA STORE2 ;小于42H的

    21、的数的个数存入DOWN中LOOP CHECK ;相等继续循环STORE1 INC BL ;找到一个大于42 的数,BL值增加1MOV UP,BLLOOP CHECKSTORE2 INC BHMOV DOWN ,BH52。图,也不用画了呵呵好了,本章结束# #IBM-PC汇编语言程序设计(第二版课后习题答案(清华大学出版社(沈美明,温冬蝉著第四章答案2006-11-04 21:591。指令下列指令的错误(1 MOV AH,BX 源操作数与目的操作数长度不相同(2 MOV BX,SI 这是两个内存单元在传递数据,而这在汇编语言中是不允许的(3 MOV AX,SIDI 不能用两个变址连用,其中一个应

    22、为基址(4 MOV MYDATBXSI,ES:AX 同(2(5 MOV BYTE PTRBX,1000 必须有一个为寄存器(6MOV BX,OFFSET MYDATSI OFFSET 不能与复杂操作数相连(7MOV CS,AX 不能对CS赋值(8MOV ECX,AX 操作数类型不同(1合法(2非法(3非法(4非法(1非法,操作数类型不同(2合法(3非法,不允许两个内存单元直接传递数据,你把人家CPU放哪了?呵(4合法(5合法(6合法(7非法,必须有一个寄存器把CPU放哪了?(8非法,两个内存单元地址相加没有意义(9合法(10非法,同(3(1两内存单元传递数据(2操作数类型不同(3跳转指令只能跳

    23、转到符号地址(4转移指令后不能为变量,只能为标号(5格式不对,应为 NEAR PTR 。图,就不画了(1DW 5150H(2MOV AX,5150HMOV ADDRESS ,AX等,写出几个就可以DATASG SEGMENTFLD1B DB personal computerFLD2B DB 10 DUP (32FLD3B DB 20HFLD4B DB 01011001BFLD5B DB 32654FLD6B DB 10 DUP (0FLD7B DB PART1,DUP 20 (?,PART2,DUP 50 (?PART3,DUP 14 (? FLD1W DW 0FFF0HFLD2W DW 0

    24、1011001BFLD3W DW FLD7BFLD4W DW 5,6,7,8,9FLD5W DW 5 DUP (0FLD6W DW (FLD6W-FLD1W-(FLD7B-FLD1B 8。PLENTH 的值为22,GE表示该数据段的长度L的值为7(1MOV AX,OFFSET LNAME(2MOV SI,WORD PTR CODE_LIST(3CODE_LENGHT EQU $-CODE_LIST 11。代码如下:DATA_SEG SEGMENTDB 5DATA_LIST DW 0FFFFH,0,2,5,4, 5 DUP (? DATA_SEG ENDSCODE_SEG SEGMENTASSUME CS:CODE_SEG,DS:DATA_SEGMOV AX,5MOV MAX,AXMOV AX,0FFFFHMOV MIN,AXCODE_SEG ENDS(11002


    注意事项

    本文(IBMPC汇编语言程序设计第二版课后习题答案清华大学Word格式文档下载.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开