我是靠谱客的博主 不安铅笔,最近开发中收集的这篇文章主要介绍IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)(沈美明,温冬蝉著)第四章,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

。指令下列指令的错误

(1) MOV AH,BX      源操作数与目的操作数长度不相同

(2)   MOV [BX],[SI]    这是两个内存单元在传递数据,而这在汇编语言中是不允许的

(3)      MOV AX,[SI][DI]     不能用两个变址连用,其中一个应为基址

(4) MOV MYDAT[BX][SI],ES:AX      同(2)

(5) MOV BYTE PTR[BX],1000   必须有一个为寄存器

(6)MOV BX,OFFSET MYDAT[SI]      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     SEGMENT

     FLD1B   DB    'personal computer'

    FLD2B    DB   10 DUP (32)

   FLD3B     DB   20H

FLD4B     DB   01011001B

FLD5B   DB   '32654'

FLD6B   DB   10 DUP (0)

FLD7B    DB   'PART1',DUP 20   (?),'PART2',DUP 50 (?),'PART3',DUP 14 (?)

FLD1W    DW   0FFF0H

FLD2W    DW   01011001B

FLD3W   DW    FLD7B

FLD4W    DW     5,6,7,8,9

FLD5W    DW   5 DUP (0)

FLD6W   DW     (FLD6W-FLD1W)-(FLD7B-FLD1B)

8。PLENTH 的值为22,GE表示该数据段的长度

9。L的值为6

10。(1)MOV AX,OFFSET   LNAME

         (2)MOV SI,WORD PTR CODE_LIST

          (3)CODE_LENGHT    EQU    $-CODE_LIST

11。代码如下:

DATA_SEG   SEGMENT

    DB   5

   DATA_LIST   DW 0FFFFH,0,2,5,4, 5 DUP (?)

DATA_SEG   ENDS

CODE_SEG   SEGMENT

ASSUME CS:CODE_SEG,DS:DATA_SEG

MOV AX,5

MOV MAX,AX

MOV AX,0FFFFH

MOV MIN,AX

CODE_SEG    ENDS

12。(1)10025

    (2)19

    (3)2548

     (4)3

     (5)103

     (6)0FFFFH

     (7)1

      (8)3

13。分别汇编成为:

MOV AX,0AH

MOV BL,0AH

MOV   CL,1

14。(1)(AX)=1      (2)(AX)=2     (3)(CX)=14H   (4)(DX)=32H    (5)(CX)=1]

15。(1)操作符错误      改为:   DATA_SEG    SEGMENT

       (2)缺少段名         在前面加个段名

     (3)引用应该从;开始        把那个“/”改成“;”

     (4)结构混乱    改为:

    MAIN_PROC PROC FAR

       。。。。

MAIN_PROC     ENDP

END   

16。程序框架如下:

DATA_SEG    SEGMENT                              

ORG 0E000H                                               

FIRST_TYPE   EQU THIS WORD          

DATA_GROUP DB 100 DUP(?)              

DATA_SEG   ENDS                                       

STACK_SEG   SEGMENT                            

ALIGN 16                                                      

STACK DB 100 DUP (?)                                

STACK_SEG    ENDS                                     

CODE_SEG SEGMENT

ASSUME   CS:CODE_SEG ,DS:DATA_SEG ,SS:STACK_SEG

ORG 1000H                                                     

START :   MOV AX,DATA_SEG

                 MOV DS,AX

               MOV AX,STACK_SEG

                 MOV SS,AX

               .......

CODE_SEG   ENDS

END START                                                   

17。程序如下:

D_SEG     SEGMENT                               

AUGEND    DD   99251

D_SEG   ENDS

E_SEG   SEGMENT                                    

ADDEND   DD -15926

E_SEG    ENDS

C_SEG     SEGMENT                                   

ASSUME    CS:C_SEG ,   DS:D_SEG,ES:E_SEG

START:   MOV AX,D_SEG

                MOV DS,AX

                MOV AX,E_SEG

                MOV ES,AX

               MOV EAX,DS:AUGEND

              ADD EAX,ES:ADDEND

               MOV   DS:SUM,EAX

C_SEG   ENDS

END   START                                             

18。

19。需要加上PTR伪操作的有:   (2)(3)(4)

最后

以上就是不安铅笔为你收集整理的IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)(沈美明,温冬蝉著)第四章的全部内容,希望文章能够帮你解决IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)(沈美明,温冬蝉著)第四章所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部