微机原理习题答案3、4(2)

2019-01-19 16:51

PLENTH EQU $-PARTNO 问PLENTH的值为多少? 它表示什么意义? 【解】:PLENTH的值为22,它表示数据的个数。 4.6有符号定义语句如下:

BUFF DB 1,2,3,‘123’ EBUFF DB 0

L EQU EBUFF-BUFF 问L的值是多少? 【解】:PLENTH的值为6。

4.7 假设程序中的数据定义如下: LNAME DB 30 DUP(?) ADDRESS DB 30 DUP(?) CITY DB 15 DUP(?) CODE-LIST DB 1,7,8,3,2

⑴ 用一条MOV指令将LNAME的偏移地址放入AX。

⑵ 用一条指令将CODE_LIST的头两个字节的内容放入SI。

⑶ 写一条伪操作使CODE_LENGHT的值等于CODE_LIST域的实际长度。 【解】: ⑴ 用一条MOV指令将LNAME的偏移地址放入AX。 MOV AX, OFFSET LANME

⑵ 用一条指令将CODE_LIST的头两个字节的内容放入SI。

MOV SI, WORD PTR CODE_LSIT

⑶ 写一条伪操作使CODE_LENGHT的值等于CODE_LIST域的实际长度。

CODE_LENGHT EQU CITY-CODE_LIST

4.8试写出一个完整的数据段DATA_SEG,它把整数5赋予一个字节,并把整数-1,0,2,5和4放在10字数组DATA_LIST的头5个单元中。然后,写出完整的代码段,其功能为:把DATA_LIST中头5个数中的最大值和最小值分别存入MAX和MIN单元中。 【解】:参考程序如下:

DATA_SEG SEGMENT DB1 DB 5

DATA_LIST DB -1, 0, 2, 5, 4, 5 DUP(?) COUNT DB 5 MAX DB ? MIN DB ? DATA_SEG ENDS CODE_SEG SEGMENT

ASSUME CS:CODE_SEG, DS:DATA_SEG START PROC FAR PUSH DS MOV AX, 0 PUSH AX

MOV AX, DATA_SEG MOV DS, AX

LEA BX, DATA_LIST MOV CX, COUNT-1

MOV AL, [BX] MOV AH, [BX+1] LOOP1: INC BX CMP AH, AL JAE LOOP1 XCHG AH, AL LOOP2 INC BX

CMP AH, [BX] JAE LIS

XCHG AH, [BX] JMP LOP2

LIS: CMP AL , [BX] JBE LOP2

XCHG AL, [BX] LOOP2

MOV MAX, AH MOV MIN, AL RET START ENDP CODE_SEG ENDS

END START 4.9给出等值语句如下:

ALPHA EQU 100 BETA EQU 25 GAMMA EQU 2 下列表达式的值是多少?

⑴ ALPHA*100+BETA ⑵ ALPHA MOD GAMMA+BETA ⑶ (ALPHA+2)*BETA-2 ⑷ (BETA/3) MOD 5

⑸ (ALPHA+3)*(BETA MOD GAMMA) ⑹ ALPHA GE GAMMA ⑺ BETA AND 7 ⑻ GAMMA OR 3 【解】: ⑴ ALPHA*100+BETA 100×10025=10025 ⑵ ALPHA MOD GAMMA+BETA 100/(25+2)=19

⑶ (ALPHA+2)*BETA-2 (100+2)*25=2548 ⑷ (BETA/3) MOD 5 (25/3) MOD 5=3

⑸ (ALPHA+3)*(BETA MOD GAMMA) (100+3)*(25 MOD 2)=103 ⑹ ALPHA GE GAMMA 100 GZ GAMMA=0FFFFH ⑺ BETA AND 7 25 AND 7=1 ⑻ GAMMA OR 3 2 OR 3=3

4.10对于下面的数据定义,三条MOV指令分别汇编成什么?(可用立即数方式表示)

TABLEA DW 10 DUP(?) TABLEB DB 10 DUP(?) TABLEC DB ’1234’ ┇ MOV AX,LENGTH TABLEA

MOV BL,LENGTH TABLEB MOV CL,LENGTH TABLEC 【解】: MOV AX,LENGTH TABLEA MOV AX, OOOAH

MOV BL,LENGTH TABLEB MOV BL, 0AH MOV CL,LENGTH TABLEC MOV CL, O1H

4.11对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?

FLDB DB ? TABLEA DW 20 DUP(?) TABLEB DB ‘ABCD’ ⑴ MOV AX,TYPE FLDB ⑵ MOV AX,TYPE

TABLEA

⑶ MOV CX,LENGTH TABLEA ⑷ MOV DX,SIZE TABLEA ⑸ MOV CX,LENGTH TABLEB (1) MOV AX,TYPE FLDB 【解】: (AX)= 1 (2) MOV AX,TYPE TABLEA (AX)= 2 (3) MOV CX,LENGTH TABLEA (CX)= 20 (4) MOV DX,SIZE TABLEA (DX)= 40 (5) MOV CX,LENGTH TABLEB (CX)= 1

4.12编写在屏幕上显示字符串‘THIS IS TEXT DISPLAY PROGRAM.’的程序。 【解】:分析:只需将欲显示字符串的ASCII码存放到字节变量数据区(字节变量数据区一定要以‘$’结束),用9号功能调用即可显示该字符串。)参考程序如下: SSEG SEGMENT STACK ‘STACK’ DB 32 DUP(?) SSEG ENDS DSEG SEGMENT

STRB DB ‘THIS IS TEXT DISPLAY PROGRAM $’ DSEG EDNS CSEG SEGMENT START PROC FAR START EDNP FAR

ASSUME CS:CSEG, SS:SSEG, DS:DSEG PUSH DS MOV AX, 0 PUSH AX

MOV AX, DESG MOV DS, AX

MOV DX, OFFSET STRB MOV AH, 9 INT 21H RET CSEG ENDS

END START

4.13 编写程序,接收从键盘输入的10个十进制数字,输入中遇见回车符则停止输入,各个数经过BCD码处理,以十六进制数显示在屏幕上。


微机原理习题答案3、4(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:南开 15春学期《计算机科学导论》在线作业 答案

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

马上注册会员

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