exam503.asm

来自「我在汇编课上完成的一些作业(上机常见习题)和汇编课本上的几个例题」· 汇编 代码 · 共 58 行

ASM
58
字号
;将DAI为首地址N个连续字节单元的内容,
;依次搬移到以DA2为首地址的连续单元
data segment
         org $+40h
     da0 db 100 dup(?)
         org $+40h
     da1 dw da0+8
     da2 dw da0+3
     count dw 02h              ;100H/2
data ends
stack1 segment para stack
       dw 80h dup(0)
stack1 ends
coseg segment
      assume cs:coseg, ds:data, ss:stack1
move: mov ax, data
      mov ds, ax
      mov es, ax
      mov cx, count            ;取搬移字节数
      mov si, da1              ;取源数据块首地址
      mov di, da2              ;取目的数据块首地址
      cmp si, di               ;比较两首地址的大小
      jz next                  ;相等不用搬移,退出
      ja low1                  ;源数据块首地址高
      add si, cx
      add di, cx
hig: std                       ;由高向低搬移
     rep movsw
     jmp next
low1: cld                      ;由低到高搬移
      rep movsw
next: mov ah, 4ch
      int 21h
coseg ends
      end move
;程序的简化格式指令代码
;.model small
;.stack 200h
;.data
;  x db -18
;  y db ?
;.code
;start: mov ax, @data
;       mov ds, ax
;       mov al, x
;       cmp al, 0
;       jge loop1
;       mov al, -1
;       mov y, al
;       ret
;loop1: je loop2
;       mov al, 1
;       mov y, al
;       ret
;loop2: mov al, 0
;       mov y, al
;       ret
;end start

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?