微机原理第四五六章作业文档格式.docx

上传人:b****4 文档编号:8309499 上传时间:2023-05-11 格式:DOCX 页数:23 大小:127.67KB
下载 相关 举报
微机原理第四五六章作业文档格式.docx_第1页
第1页 / 共23页
微机原理第四五六章作业文档格式.docx_第2页
第2页 / 共23页
微机原理第四五六章作业文档格式.docx_第3页
第3页 / 共23页
微机原理第四五六章作业文档格式.docx_第4页
第4页 / 共23页
微机原理第四五六章作业文档格式.docx_第5页
第5页 / 共23页
微机原理第四五六章作业文档格式.docx_第6页
第6页 / 共23页
微机原理第四五六章作业文档格式.docx_第7页
第7页 / 共23页
微机原理第四五六章作业文档格式.docx_第8页
第8页 / 共23页
微机原理第四五六章作业文档格式.docx_第9页
第9页 / 共23页
微机原理第四五六章作业文档格式.docx_第10页
第10页 / 共23页
微机原理第四五六章作业文档格式.docx_第11页
第11页 / 共23页
微机原理第四五六章作业文档格式.docx_第12页
第12页 / 共23页
微机原理第四五六章作业文档格式.docx_第13页
第13页 / 共23页
微机原理第四五六章作业文档格式.docx_第14页
第14页 / 共23页
微机原理第四五六章作业文档格式.docx_第15页
第15页 / 共23页
微机原理第四五六章作业文档格式.docx_第16页
第16页 / 共23页
微机原理第四五六章作业文档格式.docx_第17页
第17页 / 共23页
微机原理第四五六章作业文档格式.docx_第18页
第18页 / 共23页
微机原理第四五六章作业文档格式.docx_第19页
第19页 / 共23页
微机原理第四五六章作业文档格式.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理第四五六章作业文档格式.docx

《微机原理第四五六章作业文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理第四五六章作业文档格式.docx(23页珍藏版)》请在冰点文库上搜索。

微机原理第四五六章作业文档格式.docx

CDSEG,DS:

DTSEG,SS:

STAKSG

START:

AX,DTSEG

MOV 

DS,AX

AL,34H

ADD 

AL,4FH

DATA1,AL

AH,4CH

INT 

21H

CDSEG 

END 

S

4.3. 

将下列文件类型填入空格:

(1).obj 

(2).exe 

(3).crf 

(4).asm 

(5).lst 

(6).map

编辑程序输出的文件有________________;

汇编程序输出的文件有________________;

连接程序输出的文件有________________。

编辑程序输出文件:

(4)

汇编程序输出文件:

(1),(3),(5)

连接程序输出文件:

(2),(6)

4.4 

下面的数据项定义了多少个字节?

DATA_1 

6DUP(4DUP(0FFH))

24字节

4.5. 

对于下面两个数据段,偏移地址为10H和11H的两个字节中的数据是一样的吗?

为什么?

SEGMENT 

ORG 

10H 

10H

72H 

DW 

7204H

04H 

ENDS 

|

不一样.分别是72H,04H和04H,72H.存储字时低8位存在低字节,高8位存在高字节.

4.6. 

下面的数据项设置了多少个字节?

(1)ASC_DATA 

'

1234'

(2)HEX_DATA 

1234H

(1)设置了4个字节 

(2)设置了2个字节

4.7. 

执行下列指令后,AX寄存器中的内容是什么?

TABLE 

10,20,30,40,50

ENTRY 

3

.

BX,OFFSETTABLE

BX,ENTRY

AX,[BX]

(AX)=40

4.8. 

分析下列程序的功能,写出堆栈最满时各单元的地址及内容。

SSEG 

SEGMENT 

STACK'

AT 

1000H 

;

堆栈的段地址为1000H

128DUP(?

TOS 

LABEL 

WORD

;

-------------------------------------------

DSEG 

32DUP(?

CSEG 

ASSUME 

CS:

CSEG,DSSEG,SS:

SSEG

AX,SSEG

SS,AX

AX,DSEG

DS,AX

AX,4321H

CALL 

HTOA

RETN:

AH,4CH

INT 

HTOA 

NEAR

CMP 

AX,15

JLE 

B1

PUSH 

AX

BP

BP,SP

BX,[BP+2]

AND 

BX,0FH

[BP+2],BX

POP 

CL,4

SHR 

AX,CL

B1:

B2:

AL,30H

JL 

PRT

AL,07

PRT:

DL,AL

AH,2

RET

-----------------------------------------

END 

START

1000:

0F2H

B1

0F4H

3

0F6H

0F8H

2

0FAH 

0FCH 

1

0FEH 

RETN

100H 

4.9下面是将内存一字节数据高4位和低4位互换并放回原位置的程序,找出错误并改正。

DATASEGMENT

DD1DB23H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEASI,OFFSETDD1

MOVAL,[SI]

MOVCL,4

RCRAL,CL

MOV[SI],AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

【解答】程序第8行错误:

LEASI,OFFSETDD1,应去掉OFFSET;

程序第10行错误:

RCRAL,CL,应使用ROR或ROL,改为RORAL,CL

4.10 

编写程序,比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示"

MATCH"

,若不同则显示"

NOMATCH"

datarea 

segment

string1 

db 

asfioa'

string2 

xcviyoaf'

mess1 

MATCH'

'

$'

mess2 

NOMATCH'

datarea 

ends

prognam 

segment

assumecs:

prognam,ds:

datarea

main 

proc 

far 

start:

push 

ds

sub 

ax,ax

push 

ax

mov 

ax,datarea

ds,ax

es,ax

begin:

mov 

cx,string2-string1

bx,mess1-string2

cmp 

bx,cx

jnz 

dispno

lea 

dx,addr

si,string1

di,string2

repe 

cmpsb

jne 

ah,9

lea 

dx,mess1

int 

21h

ret

dispno:

ah,9

dx,mess2

int 

ret

main 

endp

prognam 

end 

start

4.11根据字节变量control中的各位被置位情况控制程序转移到8个远过程中的一个。

【解答】

SUBSTABLEDWSUBR1

DWSUBR2

DWSUBR3

DWSUBR4

DWSUBR5

DWSUBR6

DWSUBR7

DWSUBR8

CONTROLDB40H

SS_SEGSEGMENTSTACK

DB100DUP(0)

SS_SEGENDS

ASSUMECS:

CODE,DS:

DATA,SS:

SS_SEG

MAINPROCFAR

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVBX,OFFSETSUBSTABLE

MOVAL,CONTROL

DIVERT:

RCRAL,1

JCGETAG

ADDBX,2

JMPSHORTDIVERT

GETAG:

CALL[BX]

RET

MAINENDP

SUBR1PROC

…………

RET

SUBR1ENDP

SUBR8PROC

SUBR8ENDP

ENDMAIN

4.12编写一个程序,接收从键盘输入的10个十进制数字,输入回车符则停止输入,然后将这些数字加密后(用XLAT指令变换)存入内存缓冲区BUFFER。

加密表为;

输入数字:

0,1,2,3,4,5,6,7,8,9

密码数字:

7,5,9,1,3,6,8,0,2,4

Datasegment

scode 

7,5,9,1,3,6,8,0,2,4

buffer 

10dup(?

Dataends

Codesegment

ax,Data

si,0

cx,10

bx,scode

input:

ah,01

cmp 

al,0ah

jz 

exit

and 

al,0fh

xlat

buffer[si],al

inc 

si

loop 

input

exit:

movah,4ch

int21h

Codeends

Endstart

4.13从键盘输入一系列字符,以回车符结束,编程统计其中非数字字符的个数。

BLOCKDB100DUP(?

COUNTDB?

ASSUMEDS:

DATA,CS:

CODE

MOVAX,DATA

MOVDS,AX

MOVDL,0

LEASI,BLOCK

LP:

MOVAH,1

CMPAL,0DH

JZEXIT

MOV[SI],AL

CMPAL,30H

JAENEXT

CMPAL,39H

JBENEXT

INCDL

NEXT:

INCSI

JMPLP

EXIT:

MOVCOUNT,DL

INT21H

4.14请用16进制和10进制分别显示内存单元中一个字节的有符号数。

DATA1DB088H

DATA2DB4DUP(0)

STACKSEGMENTSTACK

DB100DUP(?

STACKENDS

STACK

MAINPROCFAR

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

HEXN:

MOVAL,DATA1

MOVCL,4

SHRAL,CL

CALLDISPL1

MOVAL,DATA1

ANDAL,0FH

DECN:

MOVAL,DATA1

SHLAL,1

JNCEEE

MOVDL,'

-'

MOVAH,2

NEGAL

JMPDECN0

EEE:

DECN0:

LEABX,DATA2

XORSI,SI

MOVDL,10

DECN1:

XORAH,AH

DIVDL

MOV[BX+SI],AH

ANDAL,0FFH

JZAAA

JMPDECN1

AAA:

DECSI

JZBBB

MOVAL,BYTEPTR[BX+SI]

JMPAAA

BBB:

MOVAL,BYTEPTR[BX]

CALLDISPL1

MAINENDP

DISPL1PROC

ADDAL,30H

CMPAL,39H

JNACCC

ADDAL,07H

CCC:

MOVDL,AL

POPAX

DISPL1ENDP

4.15在数据段中以buffer单元开始连续存放10个8位二进制无符号数,将其中最大数找出来,存于max单元中,试编程。

datasegment

bufferdb27,17,100,65,12,36,79,41,88,3

maxdb?

dataends

ss_segsegmentstack

db100dup(0)

ss_segends

codesegment

assumecs:

code,ds:

data,ss:

ss_seg

mainprocfar

movax,data

movds,ax

movcx,9

movbx,0

moval,buffer[bx]

main1:

addbx,2

cmpal,buffer[bx]

jgenext

moval,buffer[bx]

next:

loopmain1

movmax,al

movax,4c00h

int21h

mainendp

codeends

endmain

4.16在数据段longdata中存放32位二进制无符号数(低位在前),将该变量以16进制形式显示输出,试编程。

LONGDATADD0123ABC

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

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

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