微机原理第三次作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档