实验考试专用汇编程序Word文档下载推荐.docx

上传人:b****1 文档编号:422812 上传时间:2023-04-28 格式:DOCX 页数:32 大小:19.88KB
下载 相关 举报
实验考试专用汇编程序Word文档下载推荐.docx_第1页
第1页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第2页
第2页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第3页
第3页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第4页
第4页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第5页
第5页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第6页
第6页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第7页
第7页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第8页
第8页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第9页
第9页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第10页
第10页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第11页
第11页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第12页
第12页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第13页
第13页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第14页
第14页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第15页
第15页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第16页
第16页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第17页
第17页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第18页
第18页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第19页
第19页 / 共32页
实验考试专用汇编程序Word文档下载推荐.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

实验考试专用汇编程序Word文档下载推荐.docx

《实验考试专用汇编程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验考试专用汇编程序Word文档下载推荐.docx(32页珍藏版)》请在冰点文库上搜索。

实验考试专用汇编程序Word文档下载推荐.docx

sxdw1

mxdw20

gcdw1

dataends

code,ds:

data

movax,data

movcx,gc

movax,sx

movbx,mx

subbx,ax

idivcx

incbx

movcx,mx

imulbx

shrax,1

3、利用debug工具测试和掌握教材习题中的各种指令在各种寻址方式下的使用方法和结果;

dw3412h

dw7856h

dw4c2ah

dw65b7h

mainprocfar

movsi,0002h

movbx,0000h

movax,1200h;

立即寻址方式

movax,bx;

寄存器寻址方式

movax,ds:

[0002h];

直接寻址方式

movax,[bx];

寄存器间接寻址方式

movax,0004[bx];

寄存器相对寻址方式

movax,[bx][si];

基址变址寻址方式

movax,0004[bx][si];

相对基址变址寻址方式

mainendp

4、

datareasegment

datareaends

code,ds:

datarea

movax,0

decax

addax,7fffh

addax,2

notax

subax,0ffffh

addax,8000h

subax,1

andax,58d1h

salax,1

sarax,1

negax

rorax,1

5、zw+(z-x)

xdw1111h

wdw2222h

zdw3333h

movax,datarea

movds,ax

movax,z

subax,x

addax,w

movz,ax

6、zw-(x+6)-(r+9)

xdw0004h

wdw0022h

zdw?

rdw0002h

movbx,x

addbx,6

movcx,r

addcx,9

movax,w

subax,bx

subax,cx

7、z(w*x)/(y+6),r余数

wdw0005h

ydw0002h

rdw?

movbx,y

imulx

idivbx

movz,ax

movr,dx

8、z((w-x)/5*y)*2

xdw0002h

wdw0007h

ydw0003h

cwd

movbx,5

imuly

shlax,1

rcldx,1

9、试写出对存放在dx和ax中双字长数,求补的指令序列

xdw4567h

ydw0123h

movdx,x

movax,y

negdx

negax

sbbdx,0

10、试编写程序,求出双字长的绝对值。

该数存放在a和a+2单元中。

要求结果存放在b和b+2单元中。

adw0123h

dw9567h

bdw?

dw?

movax,a

movdx,[a+2]

cmpdx,0

jnszhenshu;

不是负数则转走

notdx

notax

addax,1

adcdx,0

zhenshu:

movb,ax

mov[b+2],dx

11、设x和y均为16位无符号数,试写程序求表达式16x+y的值,要求将结果存放在存储单元z处。

xdw0001h

ydw0110h

zdw?

cwd

movax,x

movbx,16d

mulbx

addax,y

movbx,z

mov[bx],ax

mov[bx+2],dx

12、比较ax、bx和cx(或三个从buff位置连续的数据)中带符号的数据,将大者存放于ax中,小者存放于cx,中者存放于bx。

xdw0ffffh

ydw0934h

zdw1223h

movax,[x]

movbx,[y]

movcx,[z]

cmpax,bx

jlaction4

jnlaction1

action4:

xchgax,bx

action1:

cmpax,cx

jlaction5

jnlaction2

action5:

xchgax,cx

action2:

cmpbx,cx

jlaction6

jnlaction3

action6:

xchgbx,cx

action3:

13、试编写一个统计学生成绩的程序。

分别统计分数在60分以下的,60-69段,70-79段,80-89段,90-99段和100段的人数,并分别将它们存放在result开始的存储单元中。

datasegsegment

butdb0dh,0ah,'

theresult$'

gradedw76,69,84,90,73,88,99,63,100,80

s6db0

s7db0

s8db0

s9db0

s10db0

datasegends

csegsegment

mainprocfar

cseg,ds:

dataseg

pushds

subax,ax

pushax

movax,dataseg

movds,ax

movcx,10

callcount

calldisp

movah,1

int21h

ret

mainendp

countprocnear

movsi,0

next:

movax,grade[si]

movbl,10

divbl

movbl,al

movbh,0

subbx,6

cmpbx,0

jaenext1

next1:

incs6[bx]

addsi,2

loopnext

countendp

dispprocnear

leasi,s6

movcx,5

loop1:

movdx,offsetbut

movdl,[si]

adddl,30h

movah,2

incsi

looploop1

dispendp

csegends

14、试编写一个将16#数转换为对应ASCII码的程序。

valuedw1a2bh

assumeds:

data,cs:

movch,4

movbx,value

label_1:

movcl,4

rolbx,cl

moval,bl

andal,0fh

addal,30h

cmpal,3ah

jllabel_2

addal,7h

label_2:

movah,00

pushbx

movbl,10

divbl;

余数在ah,商在al

movdx,ax

adddx,3030h;

转化成十\个位对应的ascii码

movah,2

movdl,dh

popbx

decch

jnzlabel_1

mainendp

end

15、不利用乘法指令实现乘法的程序;

datasegment

xdw30d

ydw10d

movcx,x

l1:

addax,bx

loopl1

16、将内存中的数据块中(buff为起始地址)奇数和偶数分别存入以addr1和addr2开始的存储块中,并分别统计其中的奇、偶数,将统计结果存放在result开始的两个字存储单元中;

buffdw6,35,99,17,80,69,50,33

addr1dw8dup(?

addr2dw8dup(?

resultdw0,0

movcx,8d

movsi,0;

clearsi

movdi,0;

cleardi

movbx,0

movdx,0

testbuff[si],0001h

jel2

movax,buff[si]

movaddr2[bx],ax

addsi,2

addbx,2

incdl

deccx

jmpl1

l2:

movaddr1[di],ax

adddi,2

incdh

movsi,0

movbyteptrresult[si],dh

movbyteptrresult[si],dl

17、对在附加段中的首地址为list的字数组进行从大到小的排序;

************************************************

datassegment

numdw8;

str1db'

beforesort:

str2db0ah,0dh,2dup(20h),'

aftersort:

'

'

datasends

esdatasegment

listdw4,2,5,6,1,7,8,3

esdataends

codessegment

codes,ds:

datas,es:

esdata

start:

movax,datas

movax,esdata

moves,ax

排序前,输出帮助查看结果

leadx,str1

movah,9

movcx,num

leasi,list

next3:

movdx,wordptres:

[si]

adddl,30h

movdl,'

'

loopnext3

************************************

deccx;

cx为要排序的数据个数减1,因为是依次拿第n个数跟n后面的数作比较

leadi,list

next2:

;

外循环

movax,cx

movsi,di

内循环

movbx,wordptres:

[si]

cmpwordptres:

[di],bx;

前面的数跟后面的数作比较

jnldayu;

大于则跳到dayu处,小于则交换两数的值放回存储单元

[di]

movwordptres:

[di],bx

[si],dx

dayu:

decax

cmpax,0

jnznext1;

cmpcx,0

jnznext2;

************************************

排序后,输出帮助查看结果

leadx,str2

next4:

loopnext4

codesends

18、通过寄存器传递参数的子程序设计10#数到16#数的转换程序的实现(从键盘获取一个10#数,然后把该数以16#的形式在屏幕上显示出来)。

decihexsegment

decihex

repeat:

calldecibin

callcrlf

callbinihex

jmprepeat

decibinprocnear

newchar:

movah,1

subal,30h

jlexit

cmpal,09d

jgexit

cbw

movcx,10d

mulcx

addbx,ax

jmpnewchar

exit:

ret

decibinendp

binihexprocnear

rotate:

jlprintit

printit:

movdl,al

jnzrotate

binihexendp

crlfprocnear

movdl,0dh

movdl,0ah

crlfendp

deci

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

当前位置:首页 > 解决方案 > 商业计划

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

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