assume cs:code;目标 利用jcxz指令 找到第一个为0的字节
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:mov cl,ds:[bx] ;先把数据读到cl寄存器里面
mov ch,0 ;初始cx寄存器的高位字节为0
add cx,1
;当我们找到为0的字节的时候 此时的cl 为0 ch为0
;因为此时的cx为0 loop s 之后 cx会减1 再判断cx是否为0
;所以先给ax加上1 减1刚好 为0 跳出循环
inc bx
loop s
ok:dec bx...
- [游客] 兄弟,现在汇编网似乎不能登录了 加油阿 12/28 17:05
- [tom7370] 兄弟,都一个月了。。。 08/16 18:12
- [tom7370] 怎么没动静了? 08/05 17:18
- [tom7370] 自愧不如啊 07/18 17:22
- [tom7370] 你的学习进度比我快多了哩 我用了将近6个月才学完这本书。。。 不像网站上说的2个月。。。。 07/18 17:20
- [mr_crbn] 啊 我佛了 这个 缩进 我在notepad++ 缩进的好好的, 07/14 14:44
- [mr_crbn] 第3题的第五小题 用到了 [bx+32] 我是实际测试过了 可以用的 就用了 其实不用这种方法 07/12 19:25
- [tom7370] 加油! 07/12 12:03
- [tom7370] 你对第二问的理解似乎不对 题目的意思大概是要你写出指令的执行过程 07/06 09:00
- [mr_crbn] 非常感谢你,我理解的确实不对 我以为一个存储器的是有固定的存储单元,笔记已经改正了 06/30 17:45
- [tom7370] 你还真是牛逼,几天就搞完我几个星期搞完的东西。 07/04 22:33
[2019-07-14 15:29] 汇编语言检测点9.3的作业
阅读全文 |
评论次数(0) |
浏览次数(266) |
所属类型(汇编作业)
[2019-07-14 14:42] 汇编语言检测点9.2的作业
assume cs:code;目标 利用jcxz指令 找到第一个为0的字节
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:mov cl,ds:[bx] ;先把数据读到cl寄存器里面
mov ch,0 ;初始cx寄存器的高位字节为0
jcxz ok ;当cx中的数据为0的时候 进行跳转到 标号ok处
inc bx ;如果上面的cx不等于0 则 bx 自增
jmp short s ;如果Jcxz没有执行 则跳转到标号 s 处
ok:mov dx,bx ;
mov ax,4c00h
int 21...
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:mov cl,ds:[bx] ;先把数据读到cl寄存器里面
mov ch,0 ;初始cx寄存器的高位字节为0
jcxz ok ;当cx中的数据为0的时候 进行跳转到 标号ok处
inc bx ;如果上面的cx不等于0 则 bx 自增
jmp short s ;如果Jcxz没有执行 则跳转到标号 s 处
ok:mov dx,bx ;
mov ax,4c00h
int 21...
阅读全文 |
评论次数(1) |
浏览次数(451) |
所属类型(汇编作业)
[2019-07-14 13:25] 汇编语言检测点9.1的作业
【1】
assume cs:code ;
data segment
dw 0,0
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1];想要指向第一行指令 那吗我们需要
;把bx+1的所指向的值设置为0就行了
mov ax,4c00h
int 21h
code ends
end start ;这是一个无限循环
【2】
assume cs:code
data segment
dd 12345...
assume cs:code ;
data segment
dw 0,0
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1];想要指向第一行指令 那吗我们需要
;把bx+1的所指向的值设置为0就行了
mov ax,4c00h
int 21h
code ends
end start ;这是一个无限循环
【2】
assume cs:code
data segment
dd 12345...
阅读全文 |
评论次数(0) |
浏览次数(269) |
所属类型(汇编作业)
[2019-07-13 17:40] 汇编语言实验八作业
这个实验是真的难 ,写代码写的 脑疼
assume cs:code
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
; 21个数据 一个数据 4个字节 21*4 转换为16进制即可
;表示21年的字符串 0~53 [bx] 下一个数据需要加4
dd 16,22,...
assume cs:code
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
; 21个数据 一个数据 4个字节 21*4 转换为16进制即可
;表示21年的字符串 0~53 [bx] 下一个数据需要加4
dd 16,22,...
阅读全文 |
评论次数(0) |
浏览次数(229) |
所属类型(汇编作业)
[2019-07-13 10:09] 第八章数据处理的基本问题随堂笔记
注:一切以王爽老师的汇编教材为准
大部分机器指令都是进行进行数据处理的指令 分为三大类 读取 写入 运行
三个概念表达数据的位置
立即数(idata)
寄存器
段地址(SA) 和 偏移地址(EA)
bx 和 bp 的区别 bx虽然为通用寄存器 但是实际上bx寄存器在程序中的作用就是表示偏移的而 bx默认 的段地址就是ds 而bp和bx同理 但是它不为通用寄存器 所以在这里只表示 偏移地址 默认的段地址为ss 以上默认段地址 均是在 ds,或ss 没有被初始化的情况下
当然也可以显性给出 如 ds:[sp] ss:[bx]
在没有寄存器的情...
大部分机器指令都是进行进行数据处理的指令 分为三大类 读取 写入 运行
三个概念表达数据的位置
立即数(idata)
寄存器
段地址(SA) 和 偏移地址(EA)
bx 和 bp 的区别 bx虽然为通用寄存器 但是实际上bx寄存器在程序中的作用就是表示偏移的而 bx默认 的段地址就是ds 而bp和bx同理 但是它不为通用寄存器 所以在这里只表示 偏移地址 默认的段地址为ss 以上默认段地址 均是在 ds,或ss 没有被初始化的情况下
当然也可以显性给出 如 ds:[sp] ss:[bx]
在没有寄存器的情...
阅读全文 |
评论次数(0) |
浏览次数(269) |
所属类型(默认类型)
[2019-07-12 21:05] 汇编语言实验六
assume cs:code,ds:data,ss:stack
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
data segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
data ends
code segment
start:mov ax,stack
mov ss,ax
mov ax,16
mov sp,ax ;设置栈顶
mov ax,data
...
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
data segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
data ends
code segment
start:mov ax,stack
mov ss,ax
mov ax,16
mov sp,ax ;设置栈顶
mov ax,data
...
阅读全文 |
评论次数(0) |
浏览次数(258) |
所属类型(汇编作业)
[2019-07-12 17:03] 汇编语言实验五
【1】
assume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
push ds:[0]
push ds:[2]
pop ds:[2]
pop ds:[...
assume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
push ds:[0]
push ds:[2]
pop ds:[2]
pop ds:[...
阅读全文 |
评论次数(1) |
浏览次数(440) |
所属类型(汇编作业)
[2019-07-12 11:42] 接近三天没学习了,说说自己突然不学习的原因
最近学习 学了一小部分就开始浮躁了,主要是,一点一点的学习,一点一点的掌握感觉很麻烦,因为我本身的目标是想学习逆向,所以汇编的掌握是必要的。但是这几天,学着学着慢慢的就开始浮躁了起来。再加上天气炎热。心里就很烦躁,学也学习不进去。老是想着 我能不能不学习汇编就去直接学习关于逆向的,尝试了发现根本不行。慢慢的调整了心态,我又来开始学习了。 嗯 加油!...
阅读全文 |
评论次数(1) |
浏览次数(435) |
所属类型(默认类型)
[2019-07-07 19:31] 汇编语言检测点6.1作业
【1】(带*的就是答案)
assume cs:codesg
codesg segment
dw 0123h, 0456h, 0789h, 0abch, 0defh, 0fedh, 0cbah, 0987h ;定义数据
start: mov ax,0 ;将寄存器ax的内存设置为0
mov ds,ax ;设 ds段寄存器的内容为0
mov bx,0 ;设bx的内容为0
mov cx,8 ;设cx 的内容为8
s:mov ax,[bx] ;循环 mov ax,ds:[bx] 这一指令 把 内存单元0:0的值赋值给ax 偏移随着循环而改变
m...
assume cs:codesg
codesg segment
dw 0123h, 0456h, 0789h, 0abch, 0defh, 0fedh, 0cbah, 0987h ;定义数据
start: mov ax,0 ;将寄存器ax的内存设置为0
mov ds,ax ;设 ds段寄存器的内容为0
mov bx,0 ;设bx的内容为0
mov cx,8 ;设cx 的内容为8
s:mov ax,[bx] ;循环 mov ax,ds:[bx] 这一指令 把 内存单元0:0的值赋值给ax 偏移随着循环而改变
m...
阅读全文 |
评论次数(0) |
浏览次数(271) |
所属类型(汇编作业)
[2019-07-05 12:39] 汇编实验四
【1】【2】
assume cs:code
code segment
mov ax,20h
mov ds,ax
mov cx,64h
mov bx,0h
s:mov ax,bx
mov [bx],ax
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
【3】
assume cs:code
code segment
mov ax,cs cs
mov ds,ax
mov ax,20...
assume cs:code
code segment
mov ax,20h
mov ds,ax
mov cx,64h
mov bx,0h
s:mov ax,bx
mov [bx],ax
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
【3】
assume cs:code
code segment
mov ax,cs cs
mov ds,ax
mov ax,20...
阅读全文 |
评论次数(0) |
浏览次数(259) |
所属类型(汇编作业)