汇编语言(王爽)9章实验8和9

实验8:分析以下程序

assume cs:codesg

codesg segment
    mov ax,4c00h
    int 21h
	start: mov ax,0           
    s: nop                 
       nop                 
       mov di,offset s    
       mov si,offset s2    
       mov ax,cs:[si]    
       mov cs:[di],ax      
   s0: jmp short s       
   s1: mov ax,0
       int 21h
       mov ax,0
   s2: jmp short s1       
       nop
codesg ends

end start

从start开始运行,跳过两个nop,四个mov把s2的字节拷到s处,
s0跳转s,s执行jmp short s1对应的机器码ebf6,意思是跳转-8,
即执行mov ax,4c00h,然后int 21h结束。s1始终未执行。

实验9:
在屏幕中间显示3行welcome to masm!,具体百度。
懒得数数,直接显示在左边。本想用栈+两层循环,把颜色和偏移地址都用栈取,有点麻烦不写了。

assume cs:codesg
data segment
	db 'welcome to masm!'
data ends
codesg segment
    start: 
	mov ax,0b800h  
	mov es,ax
	mov ax,data
	mov ds,ax	
	mov cx,16
	mov sp,cx
	mov si,0
	s:
	mov al,[si]
	mov bx,si
	
	mov es:[1760+si+bx],al
	mov es:[1920+si+bx],al
	mov es:[2080+si+bx],al
	mov al,00000010b
	mov es:[1760+1+si+bx],al
	mov al,00100100b
	mov es:[1921+si+bx],al
	mov al,01110001b
	mov es:[2081+si+bx],al
	
	inc si
	loop s

	mov ax,4c00h
	int 21h
codesg ends

end start

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值