微机原理或汇编语言

微机原理或汇编语言,第1张

type指令,是取变量类型 byte-1, word-2, dword-4

res的定义是db,为byte,所以是1, table的定义是dw - word,所以是2, dword (dd),则为4

length指令,是取变量定义中dup的数值,所以3的答案是100

size指令,是求length 和type的乘积,所以4是200

而5,array的定义中,没有dup,所以结果是1

微机原理主要讲微机的组成、各功能器件的作用及操作控制方式(包括时序)、监控程序等;汇编语言主要讲数的进制、各种进制的相互转化、数在计算机中的表示方式、机器指令码及其简记的汇编码、各种汇编语言指令(包括伪指令)及其功能介绍、汇编语言编程等。

微机原理和汇编语言是密不可分的,常常是相互穿插。

操作如下:

按下图中表格的数据为例。A1到A8单元格为排名的数据;B1到B8单元格显示名次。

1;光标点下B1单元格,再输入公式:=RANK(A1,A$1:A$8)

2;按回车键,B1单元格即显示名次的数字;

3;光标点下B1单元格,然后,移到单元格右下角,光标呈黑色+字;

4;然后,点住不放手,下拉到B8单元格;

5;放开鼠标,B3到B8单元格即显示对应的名次。

以上是按数据由高到低排名,若是按数据由低到高排名的话,操作同上,只是公式改为=RANK(A1,A$1:A$8,1)

data segment

  buf1 db 1,3,4,5,7,9

  n1 equ $-buf1

  buf2 db 2,4,6,8,10,12

  n2 equ $-buf2

  buf3 db n1+n2 dup(0)

data ends

code segment

assume cs:code, ds:data

start:

  mov ax, data

  mov ds, ax

  lea si, buf1

  lea di, buf2

  lea bx, buf3

  mov cx, 0 ;ch->index for buf1

            ;cl->index for buf2

$1:

  cmp ch, n1

  jz  $8

  cmp cl, n2

  jz $9

  mov al,[si]

  cmp al,[di]

  ja $2

  jb $3

  mov [bx], al

  inc bx

  inc si

  inc di

  inc ch

  inc cl

  jmp $1

$2:

  mov al, [di]

  mov [bx],al

  inc cl

  inc bx

  inc di

  jmp $1

$3:

  mov [bx], al

  inc ch

  inc bx

  inc si

  jmp $1

$8:

  cmp cl, n2

  jz $10

  mov al,[di]

  mov [bx],al

  inc bx

  inc di

  inc cl

  jmp $8

$9:

  cmp ch,n1

  jz $10

  mov al,[si]

  mov [bx],al

  inc si

  inc bx

  inc ch

  jmp $9

$10:

  mov ah,4ch

  int 21h

code ends

  end start

用C51编程,这是C语言,不是汇编语言的,根本不是一回事的。而微机原理中讲的编程通常是用汇编语言,而汇编语言是不通用的,针对不同的单片机或CPU,语句是不同的,微机原理用的汇编语句是针对8086的或80286,80386等,而51单片机的汇编语句是针对51系列单片机的。

微机原理讲80x86 CPU的汇编语言,单片机讲某种单片机(通常是8051)的汇编语言,两种CPU的体系结构、应用场合完全不同

80x86用在PC机上,通用寄存器多些,寻址方式、寻址范围多些,CPU内部复杂些,先进结构(流水线、超标量、分支预测)多些,对操作系统的支持(段页式寻址、进程内存保护)多些

8051比80x86简单多了,但是对工业场合的支持多些,比如CPU内部直接集成了串口,总线上时序也比80x86简单、干净

这是一段86汇编程序,其功能是通过系统调用从键盘获取一个输入字符,再通过系统调用将该字符输出显示。程序注释如下:

;

MOV AX, 2000H ; 16进制2000送AX寄存器

MOV DS,AX ; AX寄存器内容送DS寄存器

; 以上两指令将数据段寄存器DS设为2000H

;

MOV AH,1 ; 系统功能号 1 送AH寄存器

INT 21H ; 启动系统调用

; 以上两指令实现读键盘,输入值在AL寄存器

;

MOV [100H],AL ; 输入值存入DS段100H位置

MOⅤ DL,[100H] ; DS段100H单元内容送DL

; 以上两指令将要输出显示字符送DL寄存器。

;

MOV AH,2 ; 系统功能号 2 送AH寄存器

INT 21H ; 启动系统调用

; 以上两指令将DL寄存器内容输出显示。

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/langman/528327.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-02
下一篇2023-07-02

发表评论

登录后才能评论

评论列表(0条)

    保存