陕西科技大学科目期末考试复习计算机接口技术复习 - 图文(5)

2019-05-24 20:40

SUB BX,AX ;被除数/8-被除数/32,结果在BX中 MOV CL,2 ;设置移位位数2 SHR AX,CL ;被乘数除以4(累计除128),结果在AX中 ADD BX,AX ;被除数/8-被除数/32+被除数/128,结果在BX中 MOV AL,[BX+1] ;数据段中BX+1为偏移地址的字单元内容送AX XCHG AL,[BX+2] ;数据段中BX+2为偏移地址的字单元内容与AX的内容交换 MOV [BX+1],AL ;数据段中BX+2为偏移地址的字单元内容送BX+1为偏移地址的字单元 (6)将BX中的四位压缩BCD数用非压缩BCD数形式顺序放在AL、BL、CL、DL中的程 MOV CL,2 ;设置移位位数2 SHR AX,CL ;被乘数除以4(累计除512),结果在AX中 SUB BX,AX ;被除数/8-被除数/32+被除数/128-被除数/512,结果在BX中 (4) 将AX中间8位,BX低四位,DX高四位拼成一个新字的程序段是: AND DX,0F000H ;将DX的低12位清零,高4位不变 AND AX,0FF0H ;将AX的低4位清零,高4位清零,中间8位不变 AND BX,0FH ;将BX的高12位清零,低4位不变 ADD AX,BX ADD AX,DX ;按要求组成一个新字,结果放在AX中。 (5) 将数据段中以BX为偏移地址的连续四个单元的内容颠倒过来的程序段是: MOV AL,[BX] ;数据段中BX为偏移地址的字单元内容送AX 序段是: MOV DL,BL ;四位压缩BCD数的低位字节送DL AND DL,0FH ;DL的高4位清零,得四位非压缩BCD数的最低位,放入DL中 MOV CL,4 ;设置移位位数4 SHR BX,CL ;BX中的数据逻辑右移4位,使四位压缩BCD数的次低位位于BL的低4位 MOV CH,BL ;将BL的内容暂存到CH中保留 AND CH,0FH ;CH的高4位清零,得四位非压缩BCD数的次低位,放CH中 MOV CL,4 ;设置移位位数4 SHR BX,CL ;BX中的数据逻辑右移4位,使四位压缩BCD数的次高位位于BL的低4位 MOV AL,BL ;将BL的内容暂存到AL中保留 XCHG AL,[BX+3] ;数据段中BX+3为偏移地址的字单元内容与AX的内容交换 AND BL,0FH ;BL的高4位清零,得四位非压缩BCD数的次高位,放BL中 MOV [BX],AL ;数据段中BX+3为偏移地址的字单元内容送BX为偏移地址的字单元 MOV CL,4 ;设置移位位数4 共 8 页,第 !语法错误,2 页 学生答题注意:勿超黑线两端;注意字迹工整。 共 8 页,第 !语法错误,2 页

SHR AL,CL ;使四位压缩BCD数的最高位位于AL的低4位,得四位非压缩BCD数的次高

;位,放入BL中

(18)SUB AL, W_OP3+7 (19)MOV AX,BX SHL 2 (20)MOV BX,W_OP3 AND 8FD7H

答:1. (1)PUSH OP1 错,OP1为字节类型,栈操作不能按字节进行,应改为:PUS

MOV CL,CH ;将四位非压缩BCD数的次低位移入CL中

H WORD PTR OP1

(2)POP [W_OP4] 正确。

(3)MOV AX, WORD PTR [SI][DI] 错,源操作数寻址方式有问题。 应改为: MOV BX, SI

MOV AX, WORD PTR [BX][DI]

(4)MOV AX,WORD PTR ES:BX错,若源操作数为寄存器寻址是不能加段说明及属性修改的。

显然,原意应为寄存器间接寻址,故应改为: MOV AX,WORD PTR ES:[BX]

1.假设OP1,OP2是已经用DB定义的变量, W_OP3和W_OP4是已经用DW定义的变量,判断下列指令书写是否正确?如有错误,指出错在何处?并写出正确的指令(或程序段)实现原错误指令期望实现的操作((19)、(20)不改)。

(1)PUSH OP1 (2)POP [W_OP4]

(3)MOV AX, WORD PTR [SI][DI] (4)MOV AX,WORD PTR ES:BX (5)MOV BYTE PTR [BX], 1000 (6)MOV BX, OFFSET [SI+200H] (7)MOV OP2,[BX] (8)CMP HIGH W_OP3, 25 (9)CMP OP1, OP2 (10)CMP AX, OP2

(11)MOV W_OP3[BX+4*3][DI], SP (12)ADD W_OP3, W_OP4 (13)MOV AX, W_OP3[DX] (14)MOV OP1, LOW DS (15)MOV SP, OP2[BX][SI] (16)MOV AX, W_OP3+W_OP4 (17)MOV AX,W_OP3-W_OP4+100

共 8 页,第 !语法错误,2 页 学生答题注意:勿超黑线两端;注意字迹工整。 共 8 页,第 !语法错误,2 页

(5)MOV BYTE PTR [BX], 1000 错,源操作数为字类型,目的操作数为字节类型,二者不一

致。应改为: MOV WORD PTR [BX], 1000

(6)MOV BX, OFFSET [SI+200H] 错,OFFSET运算应在汇编时完成,但[SI+200H]在执行指令时才可获得。应改为: LEA BX,[SI+200H] (7)MOV OP2,[BX] 错,源操作数和目的操作数均为内存单元,不允许。

应改为: MOV AL, [BX]

MOV OP2, AL

(8)CMP HIGH W_OP3, 25错,目的操作数中使用HIGH来分离存储器操作数,这是不允许的。

应改为: CMP BYTE PTR W_OP3+1,25

(16)MOV AX, W_OP3+W_OP4错,两个标识符相加无意义。应改为: MOV AX, W_OP1

ADD AX,

(9)CMP OP1, OP2错,源操作数和目的操作数均为内存单元,不允许。

应改为: MOV AL, OP2 CMP AL, OP1

(18)SUB AL, W_OP3+7错,两个操作数类型不一致。应改为: SUB AL, BYTE PTR W_OP

(10)CMP AX, OP2错,源操作数为字节类型,目的操作数为字类型,二者不一致。

应改为: CMP AX, WORD PTR OP2 (11)MOV W_OP3[BX+4*3][DI], SP正确。

(12)ADD W_OP3, W_OP4错,源操作数和目的操作数均为内存单元,不允许。

应改为: MOV AX, W_OP4 ADD W_OP3, AX

(13)MOV AX, W_OP3[DX] 错,不能用DX寄存器间接寻址。

应改为: MOV BX, DX MOV AX, W_OP3[BX]

(14)MOV OP1, LOW DS错,源操作数中使用LOW来分离寄存器操作数,这是不允许的。

应改为: MOV WORD PTR OP1,DS

3+7

(19)MOV AX,BX SHL 2错,SHL只能对常量进行运算,左边不能使用寄存器

(20)MOV BX,W_OP3 AND 8FD7H错,AND只能对常量进行运算,左边不能使用变量

W_OP2

(17)MOV AX,W_OP3-W_OP4+100正确,源操作数为两个标识符(地址)相减再加一数,汇编

时得到一个数。

4.设已定义数据段 DATA SEGMENT ??

VAR2 DW 10H,7889H ??

VAR5 DB 20H,0 ADRR DW VAR2,VAR5 DATA ENDS

为使ADRR字存储单元中存放内容为“0010H”,ADRR+2字存储单元中存放内容为“0020H”,上述省略号位置应分别填写一条什么语句?说明理由。 答:为使ADRR字存储单元中存放内容为“0010H”,ADRR+2字存储单元中存

放内容为“0020H”,上述省略号位置应分别填写ORG 10H 和 ORG 20H,

(15)MOV SP, OP2[BX][SI] 错,源操作数为字节类型,目的操作数为字类型,二者不一致。应

改为:MOV SP, WORD PTR OP2[BX][SI]

或者分别填写语句

VAR1 DB 10H DUP(?) 和 VAR3 6 DUP(?)

共 8 页,第 !语法错误,2 页 学生答题注意:勿超黑线两端;注意字迹工整。 共 8 页,第 !语法错误,2 页

5.下面的数据段中,有数据为‘4100H’的字存储单元有几个?它们的偏移量分别是多少? DATA SEGMENT DA1 DB 0 ORG 41H DA2 DB 0,‘A’,41H,0,41H ADR DW DA1,DA2 DATA ENDS 答:给出的数据段中,有数据‘4100H’的字存储单元有3个,它们的偏移量分别是41H、 44H、47H。 答:所求程序框架为: Data SEGMENT AT 0E000H Arr_w LABEL WORD Arr_b DB 100 DUP(?) Data ENDS Sta_seg SEGMENT PARA ‘STACK’ DB 80 DUP(?) Top LABEL WORD 7.试用数据定义语句DB或DW改写下述两语句中的某一个,使它们在存储器中有完全相同的存储情况。 VAR1 DB ‘abcdefghij’ VAR2 DW 6162H,6364H,6566H,6768H,696AH ASSUME CS:Code,DS:data,SS:sta_seg 答:将第一个伪指令语句改写为VAR1 DW ‘ab’,‘cd’,‘ef’,‘gh’,‘ij’,第二个伪指令语句不变。或第一个伪指令语句不变,而将第二个伪指令语句改写为: VAR2 DB 61H,62H,63H,64H,65H,66H,67H,68H,69H,6AH 9.按下面的要求写出程序的框架 (1)数据段的位置从0E000H开始,数据段中定义一个100字节的数组,其类型属性既是字又是字节; (2)堆栈段从小段开始,段组名(类别名)为STACK; (3)代码段中指定段寄存器,指定主程序从1000H开始,给有关段寄存器赋值; (4)程序结束。 共 8 页,第 !语法错误,2 页 学生答题注意:勿超黑线两端;注意字迹工整。 共 8 页,第 !语法错误,2 页 Sta_seg ENDS Code SEGMENT ORG 1000H Start: MOV AX, data MOV DS, AX MOV AX,Sta_seg MOV SS, AX MOV SP, OFFSET Top ??

MOV AH, 4CH INT 21H Code ENDS END Start 10.编写一个程序,要求运行时屏幕显示‘BELL’,同时响铃一次(响铃的ASCII码为07)。 MOV DL, 4CH MOV AH, 2 INT 21H MOV DL, 7 MOV AH, 2 INT 21H 答:所求程序为: MOV AH, 4CH Code SEGMENT INT 21H ASSUME CS:code Code ENDS Start: MOV DL, 42H END Start MOV AH, 2 11.假设在数据段X_SEG、附加段Y_SEG和堆栈段Z_SEG中分别定义了字变量 INT 21H MOV DL, 45H MOV AH, 2 INT 21H MOV DL, 4CH MOV AH, 2 INT 21H X、Y和Z,试编制一完整的程序计算 X+Y+Z,并将结果送X。 答:所求程序为: X_SEG SEGMENT X DW 12eH X_SEG ENDS Y_SEG SEGMENT Y DW 4d2H 共 8 页,第 !语法错误,2 页 学生答题注意:勿超黑线两端;注意字迹工整。 共 8 页,第 !语法错误,2 页


陕西科技大学科目期末考试复习计算机接口技术复习 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:苏教版小学三年级下册语文第六单元作业练习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: