微机原理第三次作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三次作业电科1001 刘兴达2010016404
有n个无符号字节数据,存放在100H开始的数据区buf中,试编程求其中“1”的个数,并存于500H开始字单元num中。
data1 segment …data‟;数据段
org 100H
buf db 25h,23,33,1,2,23, 1, 34, 56, 1, 2, 34
len db $-x1
org 500H
num dw ?
data1 ends
data1 segment;数据段
org 100H
buf db25h,23,33,1,2,23, 1, 34, 56, 1, 2, 34
len db$-buf
org 500H
num dw?
data1 ends
stack1 segment stack 'stack';堆栈段
SA VE DW 100 DUP(?)
stack1 ends
code segment'code';代码段
assume cs:code,ds:data1,ss:stack1
Begin: mov ax, data1 ;建立数据段
mov ds, ax
mov ax, stack1 ;建立堆栈段
mov ss, ax
mov bx,0
mov cl,len
xor ax,ax
lop:cmp buf[bx],1
jz next
jnz next2
next:add ax,1
jmp next2
next2:inc bx
loop lop
mov num,ax ;你的代码
code ends
end begin
在内存数据区buf中存有20个无符号字节数据,要求把其中的奇数、偶数分开,分别送至同一数据段的二个缓冲区,奇数缓冲区自100H开始的odd变量中,偶数缓冲区自200H开始的even变量中。要求使用数据段定义变量。
data1 segment …data‟;数据段
buf db 25h,23,33,1,2,23, 1, 34, 56, 1, 2, 34,……….
org 100H
odd db 20 dup(?)
org 200H
even db 20 dup(?)
data1 ends
data1 segment;数据段
buf db25h,23,33,1,2,23, 1, 34, 56, 1, 2, 34,6,89,64,4,3,2,8,12.
org 100H
odd db 20 dup(?)
org 200H
eve db 20 dup(?)
a d
b 2
data1 ends
stack1 segment stack 'stack';堆栈段
SA VE DW 100 DUP(?)
stack1 ends
code segment'code';代码段
assume cs:code,ds:data1,ss:stack1
Begin: mov ax, data1 ;建立数据段
mov ds, ax
mov ax, stack1 ;建立堆栈段
mov ss, ax
mov bx,0
mov dx,0
mov cx,0
mov cl,20
lop:mov al,buf[bx]
cbw
div a
cmp ah,0
je next1
jne next2
next1:add cx,1
jmp next3
next2:add dx,1
jmp next3
next3:inc bx
loop lop
;你的代码code ends
end begin