第四章作业微机原理的.docx
- 文档编号:17279492
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:18
- 大小:536.54KB
第四章作业微机原理的.docx
《第四章作业微机原理的.docx》由会员分享,可在线阅读,更多相关《第四章作业微机原理的.docx(18页珍藏版)》请在冰点文库上搜索。
第四章作业微机原理的
第四章作业微机原理的
部门:
xxx
时间:
xxx
整理范文,仅供参考,可下载自行编辑
4.1在下列程序运行后,给相应的寄存器佶存储器单元填入运行的结果。
moval,10h
movcx,1000h
movbx,2000h
mov[cx],al
xchgcx,bx
movdh,[bx]
movdl,01h
xchgcx,bx
mov[bx],dl
hlt
结果:
Ds:
1000=10h
Ds:
2000=01h
Cx=1000h
Bx=2000h
Dx=1001h
Al=10h
4.11自0500h单元开始,有10个无符号数,编写程序,求这十个数的和<用八位数运算指令),把和放到050a和050b单元中(和用两个字节表示>,且高位在050b单元。
b5E2RGbCAP
datasegment
numdb1ah,2ah,34h,56h,7bh,7ch,27h,38h,49h,6eh
;theresultis02DB
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movbl,0
movsi,050ah
mov[si],bl
movsi,050bh
mov[si],bl
movsi,0500h
movdi,0
movbx,050ah
movcx,10
loop1:
moval,num[di]
mov[si],al
movah,[si]
add[bx],ah
incsi
incdi
adcbyteptr[bx+1],0
clc
looploop1
movax,4c00h
int21h
codeends
endstart
4.4利用变址寄存器,编写一段程序,把自1000h单元开始的100个数传到自1070h开始的存储区中。
p1EanqFDPw
datasegment
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movcx,99
movsi,1000h
movdi,1070h
loop1:
movax,[si]
mov[di],ax
incsi
incdi
looploop1
movax,4c00h
int21h
codeends
endstart
4.17若在存储器中有数a,b,c,d<他们连续存放),编写一个程序实现下列算式:
datasegment
numdw001ah,0026h,002ch,0045h
。
theresultis7665
resultdw1dup(0>
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movsi,0
movcx,3
movbx,000ah
movax,num[si]
loop1:
mulbx
incsi
incsi
addax,num[si]
looploop1
movresult,ax
movax,4c00h
int21h
codeends
endstart
4.18在0100H单元和010aH单元开始,存放两个各为10个字节的BCD数<
地址最低处放的是最低字节),求他们的和,且把和存入0114H开始的存储单元
中。
datasegment
num1db0a1h,0a2h,0a3h,0a4h,0a5h,0b1h,0b2h,0b3h,0b4h,0b5hDXDiTa9E3d
num2db0c1h,0c2h,0c3h,0c4h,0c5h,0d1h,0d2h,0d3h,0d4h,0d5hRTCrpUDGiT
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
clc
movbx,0114h
movsi,0
movdi,0
movcx,10
loop1:
movah,num1[si]
mov[di+0100h],ah
moval,num2[si]
mov[di+010ah],al
adcah,al
mov[bx],ah
incsi
incdi
incbx
looploop1
moval,0
mov[bx],al
adcbyteptr[bx],0
movax,4c00h
int21h
codeends
endstart
结果如图:
018B89878583B669676562.
4.20在0200H单元中开始放有数A(低位在前>:
NA=95437862310456289101
在020AH单元中开始放有数B:
NB=78964238154078218450
求两数之差,且把值送入自0200H开始的存储区。
datasegment
nadb95h,43h,78h,62h,31h,04h,56h,28h,91h,01h
nbdb78h,96h,42h,38h,15h,40h,78h,21h,84h,50h
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
clc
movbx,0200h
movsi,0
movdi,0
movcx,10
loop1:
movah,na[si]
mov[di+0200h],ah
moval,nb[si]
mov[di+020ah],al
sbbah,al
mov[bx],ah
incsi
incdi
incbx
looploop1
moval,0
mov[bx],al
sbbbyteptr[bx],0
movax,4c00h
int21h
codeends
endstart
结果为负数:
FFB10D06DDC41C2A35AD1D
4.37若自0500H单元开始有1000个带符号数,把它们的最小值找出来,并且
放在1000H单元中。
datasegment
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movcx,1000
moval,0
movsi,0500h
loop1:
cmpal,[si]
jlnext
moval,[si]
next:
incsi
looploop1
movsi,1000h
mov[si],al
movax,4c00h
int21h
codeends
endstart
4.56若自STRING单元开始存放一个字符串<以字符$结尾),编写一个程序
,统计这个字符串的长度<不包括$字符),并把字符串的长度放在STRING
单元,把整个字符串下移两个存储单元。
datasegment
STRINGdb'abcdefghijklmn$'
lengdw0
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movsi,0
next:
movcl,STRING[si]
incsi
cmpcl,'$'
jnenext
decsi
movax,si
movcx,si
inccx
inccx
incsi
loop1:
movbl,STRING[si]
movSTRING[si+2],bl
decsi
looploop1
movwordptrSTRING,ax
movax,4c00h
int21h
codeends
endstart
4.70编写一个24为无符号数相乘的程序。
datasegment
num1dw0012h,3456h
num2dw0065h,4321h
resultdw4dup(0>
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movax,num1+2
movsi,num2+2
mulsi
movresult+6,ax
movresult+4,dx
movax,num1
mulsi
addresult+4,ax
adcresult+2,dx
movax,num1+2
movsi,num2
mulsi
addresult+4,ax
adcresult+2,dx
lahf
movch,ah
movax,num1
mulsi
addresult+2,ax
adcresult,dx
movah,ch
sahf
adcresult,0
movax,4c00h
int21h
codeends
endstart
4.75若自STRING开始有一个字符串<以#号作为字符串的结束标志),编写一个程序,查找此字符串中有没有字符$,有多少个$<放在NUMBER单元中,没有$则其为0,否则即为$的个数);且把每一个$字符所存放的地址存入自POINTR开始的连续的存储单元中。
5PCzVD7HxA
datasegment
STRINGdb'$ab$cde$fghij$klm$n#'
NUMBERDw0
POINTRDw0
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movsi,0
movdi,0
next:
movcl,STRING[si]
leabx,STRING[si]
incsi
cmpcl,'#'
jeover
cmpcl,'$'
jefound
jmpnext
found:
movPOINTR[di],bx
incdi
jmpnext
over:
movNUMBER,di
movax,4c00h
int21h
codeends
endstart
申明:
所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 作业 微机 原理