鱼C论坛

 找回密码
 立即注册
查看: 5813|回复: 26

[技术交流] 考验你的汇编基本功(1)

[复制链接]
发表于 2011-12-28 19:32:00 | 显示全部楼层
本帖最后由 api 于 2011-12-28 19:33 编辑
  1. assume cs:code
  2. code segment
  3. start:mov ax,2000h
  4.         mov ds,ax
  5.         mov dl,'a'
  6.         mov cx,1ah
  7. s0:   mov ds:[bx],dl
  8.         inc dl
  9.         inc bl
  10.         loop s0
  11. ;<<<<<<<存入字节a-z到2000:0-19h中<<<<<<<<<<<<<<<<<<<<<<<<         
  12.          
  13.         mov ax,3000h
  14.         mov es,ax
  15.         mov bx,19h
  16.         mov si,0
  17.         mov cx,1ah
  18. s1:   mov dl,[bx]
  19.         and dl,11011111b
  20.         mov es:[si],dl
  21.         dec bl
  22.         inc si
  23.         loop s1
  24. ;<<<<<<<把2000:0-19h逆序存入3000:0-19h中<<<<<<<<<<<<<<<<<
  25.          
  26.         mov ax,4000h
  27.         mov es,ax
  28.         mov si,0
  29.         mov di,0
  30.         mov cx,1ah
  31.         cld
  32.         rep movsb
  33.         mov ax,3000h
  34.         mov ds,ax
  35.         mov si,0
  36.         mov di,0
  37.         mov cx,1ah
  38. s2:   mov dl,[si]
  39.         add es:[di],dl
  40.         inc si
  41.         inc di
  42.         loop s2
  43. ;<<<<<<<依次把2000:0—19h和3000:0—19h的值相加<<<<<<<<<<<<<
  44.          
  45.         mov ax,4c00h
  46.         int 21h
  47.          
  48. code ends
  49. end start
复制代码
我也来试试  :lol
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-30 13:53:54 | 显示全部楼层

我也不理解你想问什么,我这个程序除了第一个是把字母写入2000:0地址外,后面都是从2000:0这个地址复制过去的,所以bl是不可能写成61h的。你把我这代码运行后再看看2000:0 3000:0 4000:0开始的前26个数据就明白了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-30 19:15:27 | 显示全部楼层
seuer126 发表于 2011-12-30 16:18
有个小问题想向你请教一下,呵呵,在你的程序中,你在做第三个题目的要求时,cld和movsb 这两个指令有什 ...

标志寄存器第10位是DF,方向标志位,在串处理指令中,控制每次操作后SI,DI的增减。
DF=0 每次操作后SI,DI递增
DF=1 每次操作后SI,DI递减
串传送指令  格式:movsb
功能:执行movsb指令相当于进行下面几步操作:
(1)((es)*16+(di))=((ds)*16+(si))
(2)如果DF=0则(si)=(si)+1  (di)=(di)+1
    如果DF=1则(si)=(si)-1   (di)=(di)-1
cld指令:将标志寄存器的DF位置0
std指令:将标志寄存器的DF位置1
movsb增减的次数根据cx中的值决定

寄存器在同个程序可以多次使用,如果要保存寄存器中的值可以用栈存放
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-2 05:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表