汇编语言程序

汇编语言程序,第1张

assume cs:code, ds:data

data segment

  buf db 12,89,34,87,45,98,56,76,65,43

  cnt equ $-buf

data ends

code segment

start:

  mov ax, data

  mov ds, ax

  mov si, offset buf

  mov cl, cnt

  dec cl

  mov ch, 0

$0:

  mov al, [si]

  push cx

  mov di, si

@0:

  inc di

  mov dl, [di]

  cmp al, dl

  jle cont

  xchg ax, dx

  mov [si], al

  mov [di], dl

cont:

  loop @0

  pop cx

  inc si

  loop $0

  mov cl, cnt

  mov si, offset buf

$1:

  mov al, [si]

  call print

  inc si

  loop $1

  mov ah, 4ch

  int 21h

print proc near

  push cx

  xor cx, cx

  mov bx, 10

  cbw

q0:

  xor dx, dx

  div bx

  xor dx, 0e30h

  push dx

  inc cx

  cmp ax, 0

  jnz q0

q1:

  pop ax

  int 10h

  loop q1

  mov al, 20h

  int 10h

  pop cx

  ret

print endp

code ends

end start

针对某个字母,“与”上1101 1111,可变换成大写;

针对某个字母,“或”上0010 0000,可变换成小写;

针对某个字母,“异或”上0010 0000,可进行大小写互换。

在要指定代码的存储空间不是一件特别简单的事情,尤其是你想为某个或某几个函数指定具体的地址。

1,编译器只有在最终的Link阶段才会为代码和数据分配内存地址,因此指定代码段的地址一般是通过写一个link脚本来进行的。Link阶段时,编译器的Linker会读取你写的Link脚本,并且按照脚本的规定给代码分配地址。

2,根据ARM开发工具的不同,link脚本的语法和形式也有所不同。ARM MDK,ARM ADS,Eclips+GCC,Linux GCC, ARM Realview等开发工具都支持Link脚本。

如果你英文还可以,建议你直接找到开发工具的Help手册去研究。如果你英语实在不行,也可以把开发工具名称和你代码的具体情况告诉我,我帮你看看。

以上就是关于汇编语言程序全部的内容,包括:汇编语言程序、在汇编语言 程序中大小写字母转换采用了什么算法、在ARM汇编编程中如何指定某段程序的存储地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9332749.html

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

发表评论

登录后才能评论

评论列表(0条)

保存